Most terminal UIs treat agent sessions as indistinguishable panes; cmux flips that assumption by making agent attention and context first-class. When you run many LLM-driven coding sessions in parallel, the core problem isn’t rendering speed — it’s knowing which agent needs you and why. cmux focuses on surfacing that signal inside a native macOS terminal experience.
What Sets It Apart
- Notification-first surface: panes receive a blue ring and sidebar tabs light up when an agent is waiting; a centralized notifications panel and a "jump to latest unread" shortcut make triage fast. This reduces cognitive overhead when dozens of sessions are live.
- Agent-friendly integration: recognizes terminal notification sequences (OSC 9/99/777) and provides a
cmux notifyCLI to wire into agent hooks (examples mention Claude Code, OpenCode). That lets agents push structured attention cues directly into the UI instead of relying on generic OS notifications. - Scriptable terminal + browser: CLI and socket APIs can create workspaces, split panes, send keystrokes, and control an in-app browser (ported agent-browser API) so agents can snapshot/access the page DOM and interact with dev servers next to your terminal.
- Native, Ghostty-compatible renderer: built with Swift/AppKit and libghostty for GPU-accelerated rendering and low memory usage; reads existing Ghostty configs so users can keep themes and fonts.
Who it's for & trade-offs
Great fit if you: want to run many LLM-based coding sessions in parallel and need quick visual triage; prefer a native macOS app (not Electron) with scriptable primitives; rely on agent workflows that can emit notification sequences or be wired to a CLI.
Look elsewhere if: you need cross-platform support (cmux is macOS-native), require restoration of live process state across restarts (cmux restores layout/metadata but not live process state), or need a permissive commercial license without AGPL constraints (a commercial license is offered separately). Also, any integrations that assume generic OS notifications may need changes to emit OSC sequences or call the CLI.
Where it fits
Treat cmux as a composable terminal surface for agent-driven development rather than a full-fledged orchestrator. Use it to keep agent context visible, script interactions, and colocate a controllable browser beside terminals; for end-to-end agent orchestration (cloud-hosted agents, cross-platform dashboards) pair it with other tooling in your stack.