Live data from Hacker News

Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications

github.com

1–10 of 81 posts

Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications

#1
I run a lot of Claude Code and Codex sessions in parallel. I was using Ghostty with a bunch of split panes, and relying on native macOS notifications to know when an agent needed me. But Claude Code's notification body is always just "Claude is waiting for your input" with no context, and with enough tabs open, I couldn't even read the titles anymore.

I tried a few coding orchestrators but most of them were Electron/Tauri apps and the performance bugged me. I also just prefer the terminal since GUI orchestrators lock you into their workflow. So I built cmux as a native macOS app in Swift/AppKit. It uses libghostty for terminal rendering and reads your existing Ghostty config for themes, fonts, colors, and more.

The main additions are the sidebar and notification system. The sidebar has vertical tabs that show git branch, working directory, listening ports, and the latest notification text for each workspace. The notification system picks up terminal sequences (OSC 9/99/777) and has a CLI (cmux notify) you can wire into agent hooks for Claude Code, OpenCode, etc. When an agent is waiting, its pane gets a blue ring and the tab lights up in the sidebar, so I can tell which one needs me across splits and tabs. Cmd+Shift+U jumps to the most recent unread.

The in-app browser has a scriptable API ported from agent-browser [1]. Agents can snapshot the accessibility tree, get element refs, click, fill forms, evaluate JS, and read console logs. You can split a browser pane next to your terminal and have Claude Code interact with your dev server directly.

Everything is scriptable through the CLI and socket API – create workspaces/tabs, split panes, send keystrokes, open URLs in the browser.

Demo video: https://www.youtube.com/watch?v=i-WxO5YUTOs

Repo (AGPL): https://github.com/manaflow-ai/cmux

[1] https://github.com/vercel-labs/agent-browser

Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications
github.com

Re: Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications

#2
This looks cool. I honestly haven’t ever thought about using vertical tabs in a terminal window but that seems nice.

One question though, have you thought about trying to upstream any of this into Ghostty instead of making an entirely different app?

Re: Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications

#3

This looks cool. I honestly haven’t ever thought about using vertical tabs in a terminal window but that seems nice. One question though, have you thought about trying to upstream any of this into Ghostty instead of making an entirely different app?

VSCode has vertical tabs for it's terminals like this, but on the right side.

Re: Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications

#4

This looks cool. I honestly haven’t ever thought about using vertical tabs in a terminal window but that seems nice. One question though, have you thought about trying to upstream any of this into Ghostty instead of making an entirely different app?

Upstreaming into Ghostty would be very difficult as it's not actually a fork, I just used libghostty under the hood.

Re: Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications

#6

This looks cool. I honestly haven’t ever thought about using vertical tabs in a terminal window but that seems nice. One question though, have you thought about trying to upstream any of this into Ghostty instead of making an entirely different app?

Upstreaming into Ghostty would be very difficult as it's not actually a fork, I just used libghostty under the hood.

Ah! Thanks for explaining that. I totally keep forgetting, to my own detriment, libghostty exists. It’s mighty cool to see it being used more and more to build cool new terminals (like yours and the mobile terminal that showed up here the other day).

Re: Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications

#7
I like what you did here and with your direction with the stack. We have some common overlap. Last week I started clauding up something to manage my Claude sessions. It is built on Tauri 2 using xterm.js. It has is project-based and each project has resumable sessions. I borrowed inspiration from Happy coder and clauded an Expo app so I can claude remotely on-the-go. It has been a force multiplier in my clauding with developing new features and addressing bugs and defects. It was a pretty amazing feeling when I started using it to further its own development. There's a slew of other features as I adapt it to my development style.

Re: Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications

#8
post #5

Just took it for a spin, thought it was pretty nice. Some quirks with the tab dragging, you never really know what it's going to do on mouseup, a drop-target indicator would help. Would love to be able to color the sidebar tab. Nice work!

Thanks! Will add drop target and sidebar coloring.

Re: Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications

#10
post #9

This is pretty slick, man. The only thing is that the Ctrl-Cmd-] is too hard to press but I'll just use the number thing.

Thank! I personally have caps lock mapped ctrl... but open to suggestions! Since it's hard to handle both horizontal and vertical tabs.
Post reply on HN