Ghostty's engine, in a layout built around tabs.
libghostty does the terminal: GPU rendering, fonts, true color, the kitty protocols, shell integration and your ~/.config/ghostty/config. gvmux is the app around it.
- 01
Vertical tab sidebar
Colors follow your Ghostty theme, and a background a program sets on the fly. Rename tabs, color-code them, drag to reorder, and hide the sidebar with ⌃⌘S.
- 02
Split panes
Split in any direction with draggable dividers, zoom, equalize and directional focus. New panes open in the current directory, and the panes you are not in are dimmed.
- 03
Session restore
Tabs, splits, names and each pane's directory come back on relaunch, saved as you go so even a crash loses almost nothing. Shells start fresh; running programs are not restored.
- 04
Your Ghostty config, live
Fonts, themes, colors and keybinds are read from your config. Save the file and the whole window follows within a couple of seconds, no restart (⇧⌘, reloads on demand).
- 05
Search and command palette
⌘F search with a match counter, plus a palette built from Ghostty's
command-palette-entrylist. - 06
Careful with your clipboard
Prompts before risky pastes and before programs read or write the clipboard. Links from terminal output are checked before they open.
- 07
Notifications
Desktop notifications from programs, and alerts when a long command finishes. Click one to jump to its tab. A bar tells you when a shell has exited.
- 08
Quick terminal and native feel
A drop-down terminal on a global hotkey (⌃`), placed by your
quick-terminal-*options: top, bottom, left, right or center, any size, any screen. Swift and AppKit, with input methods, drag and drop, and the standard macOS menus. - 09
The small things
A lock badge on read-only panes, a pill showing a pending key sequence, secure keyboard entry, Services and Dock menus, and six app icons to pick from.
Things you won't find in Ghostty's own app.
Ghostty's macOS app uses the standard macOS tab bar. gvmux goes further in four places.
Vertical tab sidebar
Tabs live in a side panel in your Ghostty theme, each with its directory, a bell marker, an optional color bar and a Claude status dot.
Session export and import
File → Export Session… saves tab names, colors, splits, directories and Claude session ids to a JSON file. Import Session… brings them back, added to your tabs or replacing them. Nothing runs on import.
Rename tabs from the shell
gvmux title "build server" renames the tab that shell is in, and tells you if it couldn't. With no text it goes back to the automatic name.
Claude Code, tab by tab
A status dot on every tab, per-pane tracking in splits, and automatic resume after a relaunch. Details just below.
Know what every Claude is doing, and pick it back up.
No setup. gvmux runs claude with its own hooks for that run and leaves your Claude settings alone.
- Ready
- Working
- Waiting for you
- 01
Run claude in a tab
A dot appears on the tab and follows the session: green when it's ready, orange while it works, red when it needs you. In a split, each pane reports on its own and the tab shows the most urgent one.
- 02
It follows you around
/resumeand/clearchange the session id, and the tab keeps up. Right-click a tab to copy the session id or the resume command. - 03
Quit, relaunch, carry on
Quit with Claude running and the next launch resumes it for you: each pane types the resume command at its first prompt. If no prompt shows up in five seconds, or for an imported file, it shows a Resume button and types nothing until you click.
~/api-server $ claude --resume 3f2b8c1e-…
the conversation comes back; the live process doesn't
Works in the packaged app, in zsh, bash and fish. It does not work over ssh or tmux.
One universal build for every Mac.
gvmux-0.1.7.dmg
- Apple Silicon
- Intel
- macOS 13+
- 14 MB
One universal download for both Apple Silicon and Intel Macs. The Intel half is new and has only been run under Rosetta so far, so tell us if it misbehaves on a real Intel Mac.
- First launch
- Signed with a Developer ID certificate and notarized by Apple, so it opens without a security warning. Drag gvmux to Applications and open it; macOS may ask you to confirm once, as it does for any app from the internet.
- SHA-256
- 16d994428cd90d5a7a42caf5e6f278e866c4188e8d6ee878465d53c649f62ee9
Prefer to build it yourself?
You need macOS 13 or later (Apple Silicon or Intel), Xcode with the Metal Toolchain, and Zig 0.16.x.
brew install zig@0.16
xcodebuild -downloadComponent MetalToolchain
git clone --recurse-submodules https://gitlab.com/cagar32/gvmux.git
cd gvmux
make run
The first run builds libghostty and takes a few minutes. Later runs are quick. A build you make yourself is ad hoc signed, so it runs on your own Mac; other Macs will show a Gatekeeper warning. The download above is signed and notarized.
Honest about where it is.
- A young project: usable day to day, but expect rough edges.
- Single window by design: tabs live in the sidebar, panes inside tabs.
- A universal build; the Intel half has only been run under Rosetta so far.