Oxide
A native macOS terminal emulator, written entirely in Rust. GPU-rendered on GPUI, with a file-tree drawer you drive like vim and a status bar that knows where your shell is.
// Rust is iron oxide. It's a whole thing.
The drawer, the terminal, and a git-aware status bar — in the built-in
oxide theme.
What it does
A real terminal
Full VT emulation via Alacritty's parser: truecolor, wide glyphs and combining marks, bracketed paste, SGR mouse reporting, alternate-screen scrolling, OSC 8 hyperlinks, OSC 52 clipboard. vim, htop, and tmux just work.
File tree drawer
Modeless vim navigation (j/k/gg/G,
nvim-tree style h/l), type-to-filter
with /, and file operations: a add,
r rename, d delete to Trash. Respects
.gitignore, watches the filesystem, and follows the
shell's cd automatically.
Scrollback search
cmd-f for live, case-insensitive search;
⏎ and ⇧⏎ walk the matches. And
cmd-↑/cmd-↓ hop between previous
prompts in scrollback.
Git-aware status bar
Current working directory plus branch, dirty state, and ahead/behind — rendered natively, not shelled out to on every prompt.
Configurable prompt
Compile a powerline prompt from TOML segments — cwd,
git, exit_status, time,
duration — injected without touching your dotfiles,
with OSC 133 semantic markers. Or set
prompt.enabled = false and keep starship or p10k
exactly as it is.
Themes
catppuccin-mocha, catppuccin-latte,
gruvbox-dark, tokyonight,
dracula, nord,
solarized-dark, and oxide (rust-toned,
naturally). Any color individually overridable. Config reloads
live.
Native tabs
cmd-t uses real macOS window tabbing. New tabs start
in the current directory or ~/, your call via
window.new_tab_directory.
Updates itself
Installed copies check for new releases on launch and every six hours, download in the background, and swap themselves in on one click. Every build is Developer ID signed, notarized, and stapled.
The details
Window size and position persistence, cmd-click to
open URLs, copy-on-select, font size at runtime
(cmd +/-/0), a configurable bell, and a blinking
cursor that pauses while you type.
Keys
Anywhere
| ctrl-w h/l/w | focus tree / terminal / toggle |
| cmd-b | toggle the drawer |
| cmd-f | search scrollback |
| cmd-↑/cmd-↓ | previous / next prompt |
| cmd-t/cmd-n | new tab / new window |
| ⌃tab/⇧⌘[ ⇧⌘] | previous / next tab |
| cmd + - 0 | font size |
In the tree
| j k gg G | move |
| l/h | expand & descend / collapse & ascend |
| enter/o | open dir, or file in $EDITOR |
| c/- | re-root at selection / at parent |
| / | filter |
| a r d | add / rename / delete to Trash |
| I/R | toggle hidden / refresh |
Install
Download the app
Grab the DMG, drag Oxide to Applications, and open it. The build is signed with a Developer ID certificate and notarized by Apple, so there's no right-click-to-open dance.
- macOS, Apple Silicon or Intel
- A Nerd Font — the default config expects JetBrainsMono Nerd Font Mono
Oxide keeps itself up to date after that: it checks GitHub on launch and every six hours, or on demand via Oxide → Check for Updates…
Or build from source
# needs Rust (2024 edition) and full Xcode # with the Metal toolchain git clone https://github.com/bobbycoleman-dev/oxide.git cd oxide cargo run # development ./scripts/bundle.sh # -> target/Oxide.app cp -R target/Oxide.app /Applications/
The first build compiles GPUI and its Metal shaders — expect several minutes. Full instructions are in the README.
Configuration
Everything lives in one file at
~/.config/oxide/config.toml, and a
fully commented default is generated on first run. Font and
colors apply live — save the file and the window repaints.
[shell] and
[prompt] apply to new sessions.
[colors] preset = "oxide" [font] family = "JetBrainsMono Nerd Font Mono" size = 14.0 [[prompt.segments]] kind = "cwd" [[prompt.segments]] kind = "git"