Bobby Coleman
Software developer. C# by day at Digitech Computer, Rust by night building things I want to use every day, most recently a terminal emulator.
About
I like tools that stay out of the way: native, fast, configured in a text file, and quiet on the network. Most of my time lately goes into desktop software in Rust, which means a lot of GPU rendering, PTYs, filesystem watchers, and the odd Objective-C bridge.
When I'm not shipping OmniPTY I'm usually working through a compilers or systems book, poking at Zed's UI framework, or automating something small that annoyed me twice.
Work
Digitech Computer
Software Developer, C# / .NET
My full-time job. I build and maintain C# applications at Digitech Computer, which is where most of my professional experience lives: .NET services, data-heavy business software, and the long tail of keeping production systems reliable.
OmniPTY
OmniPTY
A native terminal for macOS and Linux, written entirely in Rust. Formerly Oxide; renamed in 0.9.0.
OmniPTY is a GPU-rendered terminal built on GPUI (Zed's UI framework) and Alacritty's PTY and VT parser. The things you'd normally bolt on with plugins and dotfiles, a file tree, tmux-style workspaces, a powerline prompt, a vim copy mode, are built in and configured in one TOML file that reloads when you save. No account, no AI, no telemetry. The only thing it asks the network is whether GitHub has a newer release.
- Real terminal. Full VT emulation: truecolor, wide glyphs, bracketed paste, SGR mouse, OSC 8 links, OSC 52 clipboard. vim, htop and tmux just work.
- Inline images. kitty graphics, iTerm2 and sixel protocols. Pictures live in the scrollback like text and render at the display's real resolution.
- File tree drawer. Follows the focused pane's directory, modeless vim navigation, type-to-filter, add/rename/move/trash, git-status colouring.
- Tree ↔ terminal seam.
yinserts a path at the prompt,cmd-clickapath:line:colto open it in$EDITOR,cmd-pfuzzy-finds any file. - Copy mode.
ctrl-w [turns scrollback into a vim buffer: motions, counts, search, visual select, yank. - Splits, tabs, workspaces. tmux-style, with a command palette that lists every action and its binding.
- Status bar that knows things. Git branch and state, SSH host awareness with per-host accent colours, prompt jumping through scrollback.
- Command awareness. Knows what's running, how long it took and whether it failed: elapsed time, activity dots on tabs, a clickable failure gutter, notifications for background panes.
cmd-rsearches every command run in any pane. - Scrollback search. Live, with regex, case and whole-word toggles, and a malformed regex says so instead of matching nothing.
- Themes and Markdown. A theme picker that repaints as you browse, and rendered
.mdpreview with highlighted code.
Install on macOS:
$ brew install --cask omnipty-terminal/tap/omnipty
Builds are Developer ID signed and notarized and update themselves. Linux gets a PKGBUILD and a release tarball
with a no-root install.sh. OmniPTY never writes to your dotfiles.
Other projects
- Milestones Manager — a private-practice management desktop app for Speech-Language Pathologists: clients, scheduling, billing, SOAP notes, care plans, and reporting, all offline-first in a local SQLite database. Tauri 2, React, and Rust for macOS, Windows, and Linux. Source is private; download it here.
- lox — a Lox interpreter, following Crafting Interpreters, in Rust.
- codecrafters-shell — a POSIX-ish shell built from scratch in Rust for the CodeCrafters "Build Your Own Shell" challenge.
-
homebrew-tap — my Homebrew tap, home of the
omniptycask.
Contact
- bobbycoleman.dev@gmail.com
- github
- @bobbycoleman-dev
- discord
- OmniPTY server