← all repositories
manaflow-ai/cmux

A terminal that knows when Claude needs you

cmux wraps Ghostty in a native macOS app so AI agents can actually get your attention without drowning in generic notifications.

21.4k stars Swift Other AICoding Assistants
cmux
Velocity · 7d
+163
★ / day
Trend
steady
star history

What it does cmux is a macOS terminal built on libghostty with a vertical sidebar, split panes, an in-app browser, and a notification system designed for AI coding agents. It reads your existing Ghostty config for themes and fonts, adds workspace tabs that show git branch, PR status, working directory, and listening ports, and surfaces agent notifications with context instead of the usual “Claude is waiting” noise.

The interesting bit The author was running multiple Claude Code and Codex sessions in Ghostty splits and losing track of which needed input. Rather than accept Electron-based orchestrators, they built a Swift/AppKit wrapper that keeps the terminal experience but adds a notification ring around panes and a CLI (cmux notify) that agents can call directly. The in-app browser is scriptable via an API ported from Vercel’s agent-browser, so agents can snapshot accessibility trees and interact with dev servers without leaving the terminal.

Key highlights

  • Native Swift/AppKit, not Electron; claims fast startup and low memory
  • Reads existing ~/.config/ghostty/config for themes, fonts, colors
  • Notification system hooks into OSC terminal sequences plus cmux notify CLI
  • In-app browser imports cookies from 20+ browsers, routes through SSH remotes
  • Scriptable via CLI and socket API: create workspaces, split panes, send keystrokes, automate browser
  • Session restore for layout, working directories, browser history; agent resume hooks for Claude Code, Codex, Gemini, and others

Caveats

  • macOS only; no Windows or Linux builds mentioned
  • Session restore is “best effort” for terminal scrollback and explicitly does not checkpoint live processes like tmux or vim
  • Requires installing agent hooks after the agent CLI is on PATH for resume to work

Verdict Worth a look if you juggle multiple AI agents in the terminal and want native performance without surrendering to a closed GUI orchestrator. Skip it if you’re not on macOS or if your agent workflow is already solved by a single tmux session.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.