v0.5.0 — one-command install
 ██████╗ ██████╗███╗   ███╗██╗   ██╗██╗  ██╗
██╔════╝██╔════╝████╗ ████║██║   ██║╚██╗██╔╝
██║     ██║     ██╔████╔██║██║   ██║ ╚███╔╝ 
██║     ██║     ██║╚██╔╝██║██║   ██║ ██╔██╗ 
╚██████╗╚██████╗██║ ╚═╝ ██║╚██████╔╝██╔╝ ██╗
 ╚═════╝ ╚═════╝╚═╝     ╚═╝ ╚═════╝ ╚═╝  ╚═╝

a cross-device tmux session manager for AI coding agents

Run your coding agents from any device — even your phone.

Manage Claude Code, Codex, Cursor, and other coding agents in one terminal dashboard. See which sessions need input, switch projects, and reconnect from another device over Tailscale.

terminal
$ curl -fsSL https://ccmux.ai/install | sh
$ ccmux setup
$ ccmux
prefer Homebrew? brew trust --tap skzv/tap && brew install skzv/tap/ccmux

Homebrewupdated this minute

// dashboard

See what’s running. Find what needs you.

Five agents running in parallel across four projects, color-coded by state — active, idle, needs your input. The dashboard updates live as each session moves, and the Devices panel shows every other ccmux-running machine on your tailnet right next to it.

ccmux — dashboard tour
ccmux dashboard tour: 5 parallel agent sessions across 4 projects, color-coded by state. Attach to Claude Code, then tour Conversations, Notes, Agents, Settings, Network screens.

cross-device

Start on a connected host, answer from your phone, and return to the same session on your laptop.

every agent

Claude Code, Codex, Cursor, and more — each project picks one and the whole TUI follows.

keyboard-first

Press Enter on the session you want. No tmux names, no --resume <hash>, no SSH-then-attach.

guided setup

One curl, then ccmux setup. Runs over your tailnet via SSH or Mosh.

// hand-off

Start on your Mac. Continue on your phone. Resume on your laptop.

Reconnect to the work you already started.

Start a task on an always-on Mac mini or Linux host. The agent runs there while you disconnect and go about your day.

Your phone vibrates: Claude is asking a question. You tap the notification, you're attached. You answer, hit Ctrl-b d, lock the phone.

Tomorrow morning on the train, you open your laptop, type ccmux and select the remote session to pick up where you left off.

ccmux running inside the Moshi app on an iPhone: a live ccmux session, the status line reading 'reachable via Moshi', and Moshi's on-screen key bar at the bottom.

ccmux in the Moshi app, on a phone

On your phone you connect through the Moshi app — a push when an agent needs you, then a tap to attach. Building your own client? ccmuxd exposes an HTTP API.

// spawn

Spawn from anywhere.

Phone in the kitchen — kick off a new agent session on the Mac at your desk. Open the Projects tab on any device, press n, and pick the host — your local machine or any peer running ccmuxd on your tailnet. The remote daemon creates the directory and starts the agent; ccmux SSH-attaches you in. You never typed ssh.

ccmux — new project on any device
ccmux new-project flow: open the Projects tab, press n, pick a host and agent, submit — ccmux creates the directory and attaches you to the new session.

// conversations

Every conversation. One tap.

ccmux remembers your past Claude / Codex / Antigravity / Cursor / pi / Muse Code threads — sorted by recency, ready to resume. Press 2 for the Conversations screen, Enter on the one you want. The daemon resumes the agent with the right session ID. You don't type claude --resume <hash> ever again.

ccmux — resume a conversation
ccmux Conversations screen showing past Claude threads sorted by recency. Selecting one and pressing Enter resumes the agent with the correct session ID.

// keybindings

Pick a session. Press Enter.

Everything is discoverable. Hit ? on any screen for the keymap.

you don't type

tmux attach -t c-auth-redesign
claude --resume 8f3a-91bc-...
ssh user@mac-mini -t tmux a -t c-foo

you hit

Enter on the session you want
3 to see past conversations
? to see the keymap

Your sessions run in tmux. Use the dashboard for everyday work and tmux commands whenever you need them.

// agents

Choose an agent for each project.

Each project picks its own agent and remembers it. The dashboard, daemon, and dispatch all follow.

ccmux — pick agent
Creating a new project in ccmux, cycling through the available coding agents with arrow keys, then submitting to boot the selected one.
Claude Code
claude
Codex
codex
Antigravity
agy
Cursor
cursor-agent
Pi
pi
Grok
grok
Muse Code
muse

Stored per-project in .ccmux/agent. Default: Claude. Set a different default in config.toml.

// mcp

Your agent can call ccmux as a tool.

Connect your coding agent to the ccmux MCP server to inspect sessions, read project notes, and check usage. Starting sessions and sending keystrokes require an explicit opt-in.

read

  • list_sessions
  • read_pane
  • list_projects
  • list_conversations
  • get_usage
  • list_machines
  • read_note · search_notes

act (opt-in)

  • spawn_session
  • spawn_bare_session
  • send_keys
  • kill_session

Hidden from tools/list until you pass --allow-mutate.

.mcp.json
{
  "mcpServers": {
    "ccmux": { "command": "ccmux-mcp" }
  }
}

An agent on your laptop can read what its sibling on the Mac mini is doing, kick off a helper in another project, pull a result back, and clean up — without you SSH-ing in. Point it at a tailnet peer with CCMUX_HOST=mini:7474.

// dev server

Dev server on the mini, viewed from anywhere.

Start your web app on the host, share its port with Tailscale Serve, and open the printed HTTPS URL on your phone. Both devices must be connected to your tailnet.

on the mini

npm run dev
tailscale serve 3000

on your phone

Safari
→ HTTPS URL

on the laptop

Browser
→ same HTTPS URL

Use the port your dev server prints; 3000 is an example. See the phone preview guide for HTTPS setup and allowed-host configuration.

// more

And a few more things ccmux quietly handles.

Reactive features that show up when you need them and stay out of the way when you don't.

Common questions

What does ccmux add to tmux?

tmux keeps terminal sessions running after you detach. ccmux adds a dashboard for coding agents, project navigation, conversation history, and remote session discovery. Learn how to manage multiple sessions.

Do the agents run on my phone?

Agents run on your Mac or Linux host. Your phone connects to that host through a terminal client; the host must stay awake and online. Set up mobile access.

Do I need Tailscale for local sessions?

You can manage sessions on one machine locally. Tailscale connects your devices for remote discovery and access. Connect a second machine.

Does ccmux include an AI subscription?

ccmux is free to download. Install and sign in to your chosen coding agent separately; that provider’s subscription or API charges still apply. Check the installation requirements.

Help improve ccmux

Found a bug, an unclear guide, or a translation that could read better? Contributions of any size are welcome. Open an issue or send a pull request.

// never stop shipping.

Try it on your machine

v0.5.0 is out. macOS, Linux, or Windows via WSL2 — one curl and you're in. Homebrew works too.