mrkeyoor.com_
Tue 01 Sept 17:42 UTC
Dev Toolsevaluationupdated 26 Aug 2026

cmux review

cmux is a macOS terminal built with Swift and AppKit on top of libghostty. It adds vertical workspaces, split terminals, agent notifications, an embedded browser, SSH workspaces, and a socket API for developers running several coding agents at once.

+141stars / 7d
Verdict

Our cmux checkout installed 457 packages and used 510 MB, but it exposed no build or test target in the measured Bun project. The shipped macOS app is worth trying for developers supervising several terminal agents because notifications, workspaces, and browser control address that exact job. Skip it if you need another operating system, a permissive license, or process persistence that works independently of supported restore hooks.

We ran it

Lab card: what happened when we ran cmuxScreenshot of cmux (cmux.com)
Install✓ · 49s457 packages · 510 MB
Buildn/ano build script
Testsn/ano test script
Repo19457 files~2,887,156 lines of source · 353 MB · 50 CI workflows · tests dir

Answers from our run

Does cmux build from source?

Dependencies installed in 49 seconds (457 packages), and the project has no separate build step. We cloned commit 7a28edc into a clean Debian container with 3 CPUs and no project-specific setup.

Does cmux have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Who should not use cmux?

Linux or Windows users: the FAQ says the desktop app is macOS only.

What are the alternatives to cmux?

Ghostty, WezTerm, tmux. Our cmux checkout installed 457 packages and used 510 MB, but it exposed no build or test target in the measured Bun project.

Setup4/5DMG and Homebrew are simple; source validation was unavailable
Docs5/5Features, shortcuts, restore limits, and integrations are explicit
Community4/526,488 stars with very active pushes and a large work queue
Maturity3/5Frequent releases, but a fast-moving macOS-only product

Discussed on

  1. hnShow HN: cmux - Ghostty-based terminal with vertical tabs and notifications198 points

Who it’s for

macOS developers who keep several Claude Code, Codex, or other terminal-agent sessions open.
Ghostty users who want vertical tabs, split panes, and their existing terminal configuration.
Engineers who want agents to drive a browser beside the terminal through a local API.
Remote developers who want SSH workspaces with visible notifications and optional tmux attachment.

Who it’s NOT for

Linux or Windows users: the FAQ says the desktop app is macOS only.
Teams that require a permissive open-source license: the README states GPL-3.0-or-later and points organizations with incompatible terms toward possible commercial licensing.
Anyone expecting session restore to preserve every live process: cmux restores its layout and supported agent sessions, but explicitly says it does not checkpoint arbitrary process state.
Developers who only need a plain terminal: browser automation, notification hooks, agent restore, and a 510 MB dependency install add surface they may never use.

Setup reality

Our sandbox installed 457 Bun packages in 49 seconds and used 510 MB on disk. The 353 MB checkout had no build script or target, so build was skipped. It also had no test script or target, so tests were skipped even though a tests directory was present.

Normal users are directed to a signed macOS DMG or Homebrew cask, with Sparkle handling updates. Agent features still depend on the relevant agent CLI and its credentials. SSH uses your remote access, while browser import can bring local cookies, history, and sessions into cmux.

This is a native macOS app, so our Debian Node container did not launch or exercise the Swift/AppKit product. Session restore can rerun approved commands for supported agents, but it does not save arbitrary live shell or editor state.

cmux makes parallel agent sessions visible

cmux starts with a familiar terminal and adds the information that disappears when many coding agents run at once. Its sidebar can show a workspace's directory, Git branch, linked pull request, listening ports, and latest notification. A pane gets a ring when an agent needs attention, and one shortcut jumps to the newest unread item. That is more useful than a stack of identical system notifications saying an agent is waiting.

The app is native Swift and AppKit, with libghostty handling terminal rendering. It reads an existing Ghostty configuration for fonts, colors, themes, and terminal behavior. Workspaces contain horizontal or vertical splits, and each surface can be a terminal or browser. The design stays close to terminal habits instead of replacing the shell with a task dashboard.

The audience is narrow by choice. The FAQ says cmux is macOS only, although an iOS companion is in beta. Anyone moving between Linux, Windows, and macOS will get more consistency from WezTerm or tmux. A Mac developer already running several agent sessions is much more likely to notice the benefit within an hour.

What happened when we ran it

Our sandbox cloned commit 7a28edc into an unprivileged Debian container with 3 CPUs and 8 GB of RAM. The checkout contained 19,457 files, about 2,887,156 lines of source, and occupied 353 MB. Bun installation succeeded in 49 seconds, adding 457 packages and using 510 MB on disk.

There was no build script or target in the measured project, so the harness skipped build. It also found no test script or target and skipped tests, despite a tests directory existing in the checkout. Those are unavailable results, not passes. The repository scan found 50 CI workflow files and no Dockerfile.

The platform mismatch sets a hard limit on our evidence. cmux is a native Swift/AppKit macOS application, while our run used a Node 22 Debian image. We did not launch the app, render a terminal, restore a session, connect over SSH, or drive its browser. The 49-second install only describes the Bun dependency path selected by the harness.

The embedded browser gives agents a local feedback loop

A browser surface can sit beside the terminal. Through the CLI and Unix socket, an agent can navigate, read an accessibility snapshot, click referenced elements, fill forms, evaluate JavaScript, and inspect console or network activity. For web work, this keeps implementation and verification in one workspace without making the browser a separate automation service.

Browser import can bring cookies, history, and sessions from Chrome, Firefox, Arc, and more than 20 browsers. That convenience deserves a security decision because authenticated browser state is sensitive. Teams should decide which profile can be imported and which agent commands may access it, especially when a terminal session can also send keystrokes and control surfaces through the socket API.

SSH support follows the same workspace model. cmux ssh opens a remote workspace, can run an initial command, routes browser panes through the remote network, and uploads a dragged image with scp. Remote tmux attachment is documented as beta. This is attractive for agents running near a server, but it does not replace SSH key policy or the remote host's own session management.

Session restore has a clear process boundary

On relaunch, cmux saves windows, workspace and pane layout, working directories, browser navigation, and terminal scrollback on a best-effort basis. Supported agents can resume when hooks have recorded a native session ID. The README lists Claude Code, Codex, OpenCode, Gemini, Copilot, and other integrations, while custom commands can attach a tmux checkpoint to a surface.

The boundary is stated plainly: cmux does not checkpoint arbitrary live processes. Shells, editors, tmux, and unsupported terminal programs reopen as normal terminals unless an approved resume command handles them. Stored commands have trust controls, and sensitive environment names such as tokens and passwords are dropped before a binding is saved. Users can disable automatic agent resume while retaining the visual layout.

That is safer than silently rerunning any saved shell line, but approval is still meaningful. Restoring an agent command can change a repository or contact external services with the credentials available in that new process. Inspect approved prefixes and treat the saved workspace as an automation configuration, not merely window state.

GPL terms and macOS support narrow the buyer list

The README states that cmux is GPL-3.0-or-later. It also says commercial terms may be available for portions Manaflow can relicense, while third-party material and outside contributions are excluded from that promise. A company that distributes a modified build or embeds pieces should have its licensing requirements reviewed before committing to a fork.

Development is unusually active. GitHub recorded the last push on August 26, 2026, with 26,488 stars and 4,537 open issues and pull requests combined. Release v0.64.22 was published August 3 and included fixes for shell integration, agent restore, SSH startup, notifications, and a workflow that previously allowed zero selected tests. The open count is a work-queue signal, not 4,537 confirmed defects.

cmux has a specific reason to exist: one Mac screen can hold many agents without hiding who needs attention. The measured repository gave us no runnable build or tests, so adoption should begin with the signed app and a real workflow trial. If its notification rings and browser surface do not save attention, Ghostty alone is the cleaner tool.

Alternatives

ProjectWhat it isPick it when
Ghostty gh↗The terminal whose rendering library and configuration format cmux uses.pick this instead when you want a focused terminal without cmux's agent workspace and browser layer.
WezTerm gh↗A cross-platform terminal emulator and multiplexer configured in Lua.pick this instead when Linux or Windows support and deep terminal configuration matter more than built-in agent notifications.
tmux gh↗A terminal multiplexer that keeps sessions on local or remote Unix hosts.pick this instead when durable remote sessions and portability matter more than a native macOS interface.

What people are saying

  1. [velocity-scout] manaflow-ai/cmux

Sources

  1. cmux repository and README
  2. cmux v0.64.22 release
  3. cmux documentation
  4. cmux session restore guide

More dev tools reviews

workmux · v2rayNG · SecLists · hashcat · eslint · fastfetch · the whole board →