cmux
Open-source native macOS terminal app by Manaflow for supervising parallel terminal-based coding agents: per-workspace notifications, status sidebar, embedded scriptable browser, and a Unix socket API. Described as of v0.64.17 (2026-06-23).
Last verified 2026-07-12
cmux is an open-source, native macOS terminal application built by Manaflow, Inc. for running many terminal-based coding agents in parallel and seeing which one needs attention (README). It sits at the supervisory-UI layer of the agent stack: the execution loop stays in the agent-harness (Claude Code, Codex, OpenCode, or whatever else runs inside its panes), while cmux supplies the human-facing surface — vertical tabs, per-workspace status, attention notifications, an embedded scriptable browser, and a socket API. Despite the name, its README states it is neither a tmux-style multiplexer nor a fork of Ghostty: it is a distinct Swift/AppKit app that embeds libghostty as a rendering library, "the same way apps use WebKit for web views" (README FAQ). This page describes cmux as of stable release v0.64.17 (published 2026-06-23), the latest as of 2026-07-12 (Releases).
Capabilities
The maintainers' stated motivation is that plain terminals fail at scale: they describe running parallel Claude Code and Codex sessions as "chaos," with contextless macOS notifications ("Claude is waiting for your input") and unreadable tab titles (README, "Why cmux?"). The README names two main additions over plain Ghostty, both aimed at that problem:
- Workspace sidebar. Each workspace shows its git branch, PR status, working directory, listening ports, and latest notification — enough context to triage several parallel agents without opening each pane (README, "Why cmux?").
- Notification system. Panes that need input get a visible ring, driven by standard terminal escape sequences (OSC 9 / OSC 99 / OSC 777) plus a
cmux notifyCLI that wires into agent hooks (README, "Why cmux?").
Beyond the supervision core (all per the README, as of 2026-07-12):
| Capability | What the README documents |
|---|---|
| Subagents as panes | When an agent spawns subagents or teammates, cmux turns them into native panes and splits instead of hidden background processes; cmux claude-teams runs Claude Code's teammate mode this way, and a separate integration covers oh-my-opencode multi-model orchestration |
| Embedded scriptable browser | API described as ported from Vercel Labs' agent-browser: agents can snapshot the accessibility tree, get element refs, click, fill forms, evaluate JS, and read console/network activity — verifying their own web changes without leaving the terminal |
| CLI + Unix socket API | Create workspaces and tabs, split panes, send input, read screen contents, take screenshots, drive the browser — the UI is programmable end to end |
| SSH workspaces | cmux ssh user@remote opens a workspace for a remote machine; browser panes route through the remote network so localhost resolves on the remote side; images dragged into a remote session upload via scp; attaching to remote tmux sessions is documented as beta |
| Session restore | Quitting saves window/workspace/pane layout, working directories, best-effort scrollback, and browser URL/history; agent CLIs with a native resume token resume automatically — the supported-agent list includes Claude Code, Codex, Grok, OpenCode, Amp, Cursor CLI, Gemini, and Copilot |
| Skills | Reusable agent skills for CLI control, workspace automation, settings, and browser surfaces ship in the companion open collection manaflow-ai/cmux-skills |
Agent compatibility is broad by construction — per the README FAQ, "cmux is a terminal, so any agent that runs in a terminal works out of the box," with Claude Code, Codex, OpenCode, Gemini CLI, Aider, Goose, Amp, Cline, and Cursor Agent among the named examples (README FAQ).
Usage model
cmux is a GUI-first native app, deliberately unlike tmux's config-and-prefix-key model: the README's own comparison stresses "no config files or prefix keys needed" and positions the two as complementary rather than competing — cmux can run over SSH alongside tmux and can attach to remote tmux sessions (README FAQ). Terminal look and feel comes from the user's existing Ghostty config (in the user-level .config/ghostty/config); cmux-specific behavior — sidebar, tab bar, split panes, resume — lives in its own settings file at the user-level .config/cmux/cmux.json (README).
Agent integration has two documented attachment points. Resume support is wired through cmux hooks setup, which registers a native resume token with supported agent CLIs so they reopen with their prior session after a restart; custom resume bindings — for example, reattaching to a tmux session — are set via cmux surface resume set, and sensitive environment variables (tokens, secrets, API keys) are stripped before a binding is stored (README, "Session restore"). Programmatic control goes through the CLI and Unix socket API, which external scripts — or the agents themselves — can use to drive panes, read screens, and operate the embedded browser (README).
The design philosophy is explicit: "cmux is a primitive, not a solution" — the maintainers hold that nobody has yet found the best way to work with coding agents, so the tool stays unopinionated and composable rather than prescribing a workflow (README, "The Zen of cmux"). For a practitioner this draws the boundary cleanly: routing, retries, and subagent lifecycle policy stay in the harness and surrounding tooling; cmux makes the resulting fleet visible and steerable by a human.
Limitations and constraints
- macOS only. The README FAQ states "macOS only, for now" — no Windows or Linux support as of 2026-07-12 (README FAQ). Demand for a non-macOS equivalent is visible in the project's own forum, where a community member announced wmux, an unaffiliated Windows-native alternative (Discussion 2497).
- Not an orchestration framework. cmux renders agents; it does not coordinate them. Routing, retries, and subagent lifecycle policy are out of scope by the maintainers' own framing (README, "The Zen of cmux"). "Subagents appear as panes" does not mean "cmux manages subagents."
- Not documented as a security boundary. The README presents cmux as a terminal, notification, and browser layer and does not claim per-agent sandboxing or isolation between agent sessions (README); if isolation is required, it has to come from elsewhere in the stack.
- Session restore is scoped, not universal. Per the README, cmux "does not checkpoint arbitrary live process state": tmux, vim, shells, and unsupported terminal apps reopen as normal terminals; only agent CLIs with a hooked resume token, or surfaces with an explicit custom resume binding, restore their prior state (README, "Session restore"). It is not a durability layer for arbitrary long-running processes.
- Anecdotal performance overhead. One first-hand Hacker News comment reports switching back to plain Ghostty over "unreliability, high memory and CPU usage and a bunch of bugs" (HN comment, accessed 2026-07-12). This is a single user report, not a benchmark.
- Young project, large backlog. The repository was created 2026-01-28 and carried 3,394 open issues as of 2026-07-12 (GitHub repo) — a heavy backlog for a roughly five-month-old codebase.
- Copyleft licensing. GPL-3.0-or-later applies to derivative works and redistribution; organizations that cannot comply must buy a commercial license from Manaflow (LICENSE). Immaterial for individual use, material for internal forks or bundling.
Versioning and pricing notes
Releases are frequent and incremental: v0.64.14 through v0.64.17 shipped between 2026-06-06 and 2026-06-23 — roughly one point release every few days — and a rolling Nightly channel exists under a separate bundle ID with its own auto-update feed (Releases, as of 2026-07-12). Adoption has been fast for the project's age: 24,265 GitHub stars and 1,947 forks as of 2026-07-12 (GitHub repo), following a public launch through Y Combinator's Launch YC program (Launch YC page).
The license is dual: GPL-3.0-or-later for open-source use, or a paid commercial license for organizations that cannot accept GPL terms — confirmed from the repository's LICENSE file (LICENSE, accessed 2026-07-12). The YC launch page describes the license as "AGPL" (Launch YC page), which conflicts with the repository; the LICENSE file is the authoritative artifact.
The core app is stated as "free, open source, and always will be"; a one-time "Founder's Edition" purchase adds prioritized bug and feature requests plus early access to unreleased features — cmux AI, general availability of the iOS companion app (in TestFlight beta as of 2026-07-12), Cloud VMs, and voice mode (README, "Founder's Edition").
Related
- claude-code — cmux's most prominent named integration:
cmux claude-teamsruns Claude Code's teammate mode as native splits. - agent-harness — the layer cmux deliberately does not replace; the harness drives the agent loop, cmux renders and notifies.
- subagent — cmux's answer to subagent visibility: spawned workers become panes instead of hidden background processes.
Sources
- manaflow-ai/cmux — GitHub repositoryaccessed 2026-07-12
- manaflow-ai/cmux — READMEaccessed 2026-07-12
- manaflow-ai/cmux — LICENSE fileaccessed 2026-07-12
- manaflow-ai/cmux — Releasesaccessed 2026-07-12
- cmux docsaccessed 2026-07-12
- Launch YC — cmux, the open-source terminal built for coding agentsaccessed 2026-07-12
- Hacker News — discussion thread with first-hand cmux performance reportaccessed 2026-07-12
- manaflow-ai/cmux — Discussion 2497 (wmux, a Windows alternative)accessed 2026-07-12
Verification
5 log entries
| date | action | result |
|---|---|---|
| 2026-07-12 | research | applied |
| 2026-07-12 | draft | applied |
| 2026-07-12 | fact-check | fail-1-2 |
| 2026-07-12 | draft | applied |
| 2026-07-12 | fact-check | pass-2-1 |
Backlinks
No pages link here yet.