cmux CLI
A native macOS terminal built on Ghostty with vertical tabs and notifications when an agent needs your input
- 28,779 ★ on the repository
- Last commit
Broad access
Why this level
- Its CLI and socket API send keystrokes to terminal panes where commands run
- The agent drives the built-in browser by script: clicks, fills forms, evaluates JS
- Imports cookies and sessions from Chrome, Firefox and Arc, so browser panes start signed in
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add cli/cmuxDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- Its CLI and socket API send keystrokes to terminal panes where commands run
- The agent drives the built-in browser by script: clicks, fills forms, evaluates JS
- Imports cookies and sessions from Chrome, Firefox and Arc, so browser panes start signed in
This is third-party code. Review the repository files before installing.
What it does
cmux is a Swift and AppKit terminal for people running many parallel Claude Code, Codex or OpenCode sessions at once. A sidebar with vertical tabs shows the git branch, PR status, working directory, and the latest notification for each workspace. The notification system catches terminal escape sequences (OSC 9/99/777) through the cmux notify CLI, which you can wire into agent hooks: a pane with a waiting agent gets a blue ring. A built-in browser with a scriptable API lets an agent read the page's accessibility tree, click and fill forms right next to the terminal, and cmux ssh spins up a workspace for a remote machine.
Who it is for. For macOS developers running several coding agent sessions in parallel who want to see at a glance which one is waiting on them.
Good fit when
- You run several Claude Code or Codex sessions at once and lose track of which one is waiting for you
- You want a terminal showing git and PR status right in the tabs, without switching to a separate client
- You want a built-in browser an agent can drive right next to the terminal
Not a fit when
- You are not on macOS: the app is native to Mac only
- A plain terminal or tmux with no agent integration is enough
Example request
Split the window into a terminal and browser pane and open localhost:3000 in the browser while I work with Claude Code in the next tabLimitations
macOS only. Agent notifications need the agent or a hook to emit the right escape sequences, otherwise the highlight will not trigger.
How to disable. Remove the app with brew uninstall --cask cmux, or drag cmux.app from Applications to the Trash.
FAQ
Is this an Electron app?
No, cmux is written in Swift and AppKit with libghostty rendering, so it does not lag like typical Electron orchestrators.
Do I need tmux?
No, Claude Code Teams mode and splits work without tmux, through cmux's native panes.
Discussion
No questions or reviews yet.
Related
CLI toolsNative macOS terminal with an MCP server and CLI: agents see panes, commands and output, and you grant permissions in one window
A tmux console you can open from a phone: agents in separate worktrees show up in a sidebar and wait for your answers.
Muxin MCP connects an agent to your computers, with remote sessions that keep running after the application window closes.
Clipboard bridge over SSH: images from your local clipboard reach Claude Code, Codex CLI and Cursor running on a remote server
A skill that teaches an agent to split Zentty windows into panes, read neighboring sessions, search history and notify you
A Rust terminal with a multiplexer: agent sessions from several machines in one window, plus a skill for seeing adjacent panes
Comparison with similar tools
Cards that share the main search query, and how they differ.
README in short
The README explains that the author kept losing track of context across many Claude Code and Codex sessions with generic system notifications, and built cmux as a native Mac terminal on Ghostty. Key features: a sidebar with git branch and PR status, an escape-sequence notification system with a cmux notify CLI, a built-in scriptable browser based on agent-browser, SSH workspace support, and a tmux-free Claude Code Teams mode. Everything is also scriptable via CLI and socket API. Open source under GPL.