cmux is a native macOS terminal, written in Swift and AppKit, for running many coding agents side by side. It renders terminals with libghostty (the Ghostty rendering engine, used as a library rather than a fork) and reads your existing Ghostty config for themes, fonts, colors, and keybindings. Its additions are a vertical-tab sidebar, a notification system for agents waiting on input, an embedded scriptable browser, and a CLI and socket API that control all of it.
Each workspace tab in the sidebar shows the git branch, linked pull request status, working directory, listening ports, and the latest notification text. Notifications fire from standard terminal escape sequences (OSC 9, 99, and 777) or from the cmux CLI wired into agent hooks, so a pane that needs attention gets a blue ring, its tab lights up, and a shortcut jumps to the most recent unread.
Any agent that runs in a terminal works, including Claude Code, Codex, OpenCode, Gemini CLI, Aider, Goose, Amp, and Cline. When an agent spawns subagents or teammates, cmux turns them into visible panes and splits instead of hidden background processes. Supported agents can resume from saved session IDs after a relaunch, and workspaces can open over SSH and attach to remote tmux sessions.
cmux describes itself as a primitive rather than a solution: it supplies a terminal, a browser, notifications, workspaces, splits, tabs, and a CLI, and leaves the workflow for coding agents to you. An iOS app in beta attaches to terminals from a paired iPhone.
Features
- Agent notifications: blue pane rings, lit tabs, unread badges, a notification panel, and macOS desktop notifications when an agent needs input
- Vertical-tab sidebar: per-workspace git branch, pull request status, working directory, listening ports, and latest notification
- Embedded browser: a browser pane next to the terminal with an API ported from agent-browser to snapshot the accessibility tree, click, fill forms, evaluate JavaScript, and read console and network activity
- Browser import: brings cookies, history, and sessions from Chrome, Firefox, Arc, and more than 20 other browsers so browser panes start signed in
- Programmable: a CLI and Unix socket API to create workspaces, split panes, send keystrokes, read screen contents, take screenshots, and drive the browser
- Subagent panes: subagents and teammates appear as native panes, with support for Claude Code teams and oh-my-opencode orchestration
- Session restore: restores window, workspace, and pane layout, working directories, scrollback, and browser history, and resumes supported agent sessions
- Remote work: workspaces over SSH and native attachment to remote tmux sessions, plus local tmux or zellij for live detach and reattach
- Custom commands: project-specific actions defined in a JSON config file and launched from the command palette
- Skills: reusable workflows any agent in cmux can use for CLI control, workspace automation, settings, and browser surfaces



