cmux
TL;DR
cmux is a native macOS terminal from Manaflow, built in Swift on libghostty, for running many CLI coding agents side by side. It adds a sidebar with git branch and PR status, notification rings, a scriptable browser pane, a CLI and socket API. It suits terminal users who want visibility over parallel agents, not a managed worktree workflow.
Key facts
| Type | Orchestrator |
|---|---|
| Languages / SDKs | Swift |
| License | unknown |
| Pricing model | Open core |
| Orchestration pattern | Other |
| GitHub stars | 27,518 (as of 2026-09-30) |
| GitHub forks | 2,424 |
| Last push | 2026-09-30 |
| Latest release | v0.64.25 |
| Repository | manaflow-ai/cmux |
| Website | cmux.com |
| Documentation | cmux.com |
| Last verified | 2026-09-30 |
Key features
- Vertical-tab sidebar showing each workspace's git branch, linked PR status, working directory, listening ports and latest notification text. (source)
- Notification rings and a notification panel flag panes when an agent needs attention;
cmux notifyand agent hooks feed the same system. (source) cmux claude-teamsruns Claude Code's teammate mode so teammates appear as native cmux splits, using a tmux shim that translates tmux commands into cmux socket calls. (source)- A CLI and Unix socket API create workspaces, split panes, send keystrokes and read screens; an in-app browser has a scriptable API for agents. (source)
- Feed shows permission requests, plan-mode exits and multiple-choice questions from agents in one inline panel where the user answers them. (source)
- Session restore brings back layout, working directories and scrollback, and can resume supported agents (Claude Code, Codex, OpenCode, Hermes Agent and others) when hooks saved a session ID. (source)
cmux ssh user@remoteopens a workspace on a remote machine, with browser panes routed through the remote network. (source)- Bundled cmux Computer Use exposes native Mac app control to Claude Code and Codex sessions through an MCP server. (source)
Architecture and orchestration pattern
Pattern: Other
cmux is a native macOS application written in Swift and AppKit that embeds libghostty terminals. Its hierarchy is window, workspace (a sidebar entry), pane (a split), surface (a tab) and panel (a terminal or browser). Agents are ordinary CLI programs running in terminal panels; cmux recognizes them through wrappers, OSC notification sequences and hooks installed with cmux hooks setup.
The README describes cmux as a primitive rather than a workflow: it gives terminals, a browser, notifications, workspaces and a CLI, and leaves task assignment, worktree creation and merging to the user, their scripts or the agents. The docs and README describe no built-in worktree manager or diff review. The only multi-agent coordination built in is the claude-teams and omo shims, which place teammate agents spawned by Claude Code or oh-my-openagent into native splits.
State is the app's saved session (layout, working directories, best-effort scrollback, browser history) plus optional resume hooks per agent. The README says cmux does not checkpoint live process state; cmux local-tmux opts into a tmux owner for detach and reattach. Model calls are not proxied: the free tier runs agents with your own keys.
Human in the loop
The user watches every agent in a real terminal pane and can type into it at any time. Notification rings and unread badges show which agent is waiting. Feed collects permission requests, plan approvals and multiple-choice questions from supported agents and offers choices such as Once, Always, Deny or Bypass; the docs say hooks wait up to 120 seconds for the answer. Restored agent sessions can be kept idle by turning off automatic resume.
Harnesses it can drive
- Claude Code (evidence)
- Codex (evidence)
- OpenCode (evidence)
- Hermes (evidence)
Protocols
| Protocol | Support | Note |
|---|---|---|
| MCP | Yes evidence | The docs call cmux-cua the bundled MCP server that gives Claude Code and Codex sessions launched inside cmux tools for native Mac app control. Server side and limited to Computer Use; no general MCP server for workspaces is described. |
| A2A | Unknown | Searched the README, docs pages and llms.txt, and GitHub code search for 'a2a' and 'agent2agent'; nothing found. Agent-to-agent control is through the cmux CLI and socket. |
| AG-UI | Unknown | Searched the README, docs pages, repo file names and code search for 'ag-ui'; nothing found. |
Best for
- Terminal users running many Claude Code, Codex or OpenCode sessions in parallel who need to see which one is waiting. (shortlist)
- Running Claude Code teammate mode with teammates shown as native panes, with no tmux required. (shortlist)
- Scripting workspaces, splits and browser panes from agents through the CLI and socket API. (shortlist)
- Monitoring agents on remote machines through
cmux sshworkspaces.
Not for
- Non-Mac users: the desktop app requires macOS 14 or later (the site lists a separate Linux browser product).
- Users who want automatic worktree-per-task isolation and a built-in diff and merge flow; the docs describe none.
- Anyone who needs every part of the repository under one GPL license: server directories are under the Business Source License.
Quickstart
brew tap manaflow-ai/cmux
brew install --cask cmux brew tap manaflow-ai/cmux
brew install --cask cmux # or download the .dmg from the releases page
# Use the CLI outside cmux terminals
sudo ln -sf "/Applications/cmux.app/Contents/Resources/bin/cmux" /usr/local/bin/cmux
cmux list-workspaces
cmux notify --title "Build Complete" --body "Your build finished"
cmux hooks setup --agent opencode # install resume/feed hooks for an agent CLI
cmux claude-teams # Claude Code teammate mode as native splits
cmux ssh user@remote # workspace on a remote machine
cmux tree --json # inspect windows, workspaces, panes, surfaces
Common pitfalls
- Requires macOS 14.0 or later on Apple Silicon or Intel.
- Install hooks after the agent CLI is installed (
cmux hooks setup), so its binary is on PATH; otherwise agent resume and Feed do not work for it. - cmux does not checkpoint live process state: tmux, vim and ordinary shells reopen as plain terminals.
cmux local-tmuxis the opt-in route for live detach and reattach. - To use the CLI from outside cmux terminals, symlink the bundled binary into PATH.
- On first launch macOS may ask you to confirm opening the app.
- Cloud VMs, the iOS app and team features are on paid plans; the local macOS app is free.
Pros
- Native Swift and AppKit app on libghostty, and it reads an existing Ghostty config for themes and fonts. (source)
- Good attention management for many agents: rings, unread badges, a notification panel and a Feed for approvals. (source)
- Everything is scriptable through a CLI and socket API, including the browser pane. (source)
- Agent-agnostic with documented resume support for many agent CLIs, including Claude Code, Codex, OpenCode and Hermes Agent. (source)
- The macOS app is open source and free; local agents run on your own keys according to the pricing page. (source)
Cons
- macOS-only desktop app (macOS 14.0 or later). (source)
- No built-in worktree creation, diff viewer or merge flow is described; the README calls cmux a primitive and leaves workflow to the user. (source)
- Mixed licensing: GPL-3.0-or-later by default, but web/, several workers, a relay minter and a cloud relay directory are under BUSL-1.1, which requires a commercial license for production use. (source)
- Live process state is not checkpointed; only layout, scrollback (best effort) and supported agent sessions restore. (source)
- Cloud VMs, the iOS app and team administration are paid (Pro, Max, Team, Enterprise plans). (source)
Alternatives
FAQ
Does cmux support MCP?
Yes, in a limited way. It bundles cmux-cua, an MCP server for native Mac app control, which attaches automatically to Claude Code and Codex sessions started inside cmux. A general MCP server for cmux workspaces is not described.
What license is cmux under?
GitHub reports no single license. The LICENSE file says most material is GPL-3.0-or-later, while the web app, some workers, a relay minter and a cloud relay directory each carry a Business Source License 1.1 that requires a commercial license for production use.
Is cmux free?
The macOS app is free and open source, and the pricing page says local agents run on your own keys. Cloud VMs and the iOS app need a paid plan: on 2026-09-30 the page listed Pro at $50 per month, Max at $200, Team at $60 per user and Enterprise as custom.
Does it create git worktrees for each agent?
Not according to the README and docs I read. The sidebar shows each workspace's branch and PR, but creating worktrees is left to you, your scripts or the agents.
Which coding agents work with it?
Any CLI agent runs in a pane. The session-restore page lists resume support for Claude Code, Codex, OpenCode, Hermes Agent, Grok, Pi, Amp, Cursor CLI, Gemini and others. OpenClaw is not listed.