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.

  • C#
  • .NET
  • SQL

OmniPTY

OmniPTY icon, a terminal prompt in a rusting ring

OmniPTY

A native terminal for macOS and Linux, written entirely in Rust. Formerly Oxide; renamed in 0.9.0.

  • Rust
  • GPUI
  • alacritty_terminal
  • Metal / Vulkan
  • macOS
  • Linux
  • MIT

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. y inserts a path at the prompt, cmd-click a path:line:col to open it in $EDITOR, cmd-p fuzzy-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-r searches 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 .md preview 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

Contact

email
bobbycoleman.dev@gmail.com
github
@bobbycoleman-dev
discord
OmniPTY server