// compare

mmux vs CCManager

CCManager is a TUI for running several coding agent CLIs in parallel across git worktrees and projects, without tmux. mmux covers similar ground from inside a per-directory tmux session, so agents outlive the terminal, and adds shells, dev processes and a git panel next to them.

Last checked against CCManager 4.4.6 on .

// tl;dr

Pick CCManager if you want an agent switcher with no tmux dependency, you work on Windows, you run agents inside a devcontainer, or you want to carry a Claude Code conversation into a new worktree. It installs with one npm install -g.

Pick mmux if agents should keep running after you close the terminal or lose SSH, you want dev servers and shells in the same sidebar as the agents, or you want a git panel and a command line that scripts and other agents can drive.

The two are not exclusive: CCManager runs fine inside an mmux terminal row, see below.

At a glance

mmux 0.13.13 and CCManager 4.4.6, as of 2026-10-14.
Capability mmux CCManager
Agents survive closing the terminal or SSH yes: runs in a tmux session; detach and reattach no: closing it ends the agents it started
Sessions after a quit or crash yes: Claude, Codex, Pi and Grok resume their conversation partly: reruns each session's command; conversation not restored
Runs without tmux no: needs tmux on PATH yes: self-contained
Platforms partly: macOS and Linux yes: macOS, Linux and Windows x64
Agent state in the list yes: working, needs input, idle yes: busy, waiting, idle, detected per CLI
Create, merge and remove worktrees yes: plus cleanup of finished worktrees yes: plus creation in the background
Carry a Claude Code conversation into a new worktree no: not built in yes: copies the session data on creation
Shells and dev servers beside the agents yes: Terminals and Processes rows no: built around agent sessions
Git view yes: panel with diffs, commit, push partly: per-worktree line counts, ahead/behind
Command line for scripts and agents yes: mmux ls, read, ask, wait no: interactive TUI only
Devcontainer integration no: not built in yes: agents in the container, manager on the host
License, language, install GPLv3, Rust, single binary MIT, TypeScript, npm

CCManager facts from its README, docs and source at tag v4.4.6. mmux facts from its docs at 0.13.13.

What is CCManager?

CCManager describes itself as a CLI application for managing multiple AI coding assistant sessions across git worktrees and projects [1]. It started as a Claude Code manager and now documents Claude Code, Gemini CLI, Codex CLI, Cursor Agent, Copilot CLI, Cline CLI, OpenCode, Kimi CLI and MiniMax Code, with a state detection strategy per tool that marks each session busy, waiting or idle [1]. It is written in TypeScript, MIT licensed, and installed with npm install -g ccmanager or run with npx ccmanager; the npm package pulls in a prebuilt binary for macOS (arm64, x64), Linux (arm64, x64) or Windows x64 [2]. The latest release at the time of writing is v4.4.6 from 2026-10-10 [8].

The interface is a menu: pick a worktree, work with its agent, press Ctrl+E to return to the menu [1]. From that menu you create, merge and delete worktrees; a multi-project mode (--multi-project with CCMANAGER_MULTI_PROJECT_ROOT) discovers every git repository under a root directory [6]. Settings live in ~/.config/ccmanager/config.json with a per-repository .ccmanager.json on top [1].

CCManager deliberately avoids tmux. Each agent runs in a pseudo-terminal owned by the CCManager process, so the README notes that closing CCManager kills the processes it started. It records the open sessions and offers to start them again on the next launch, which reruns each command in its worktree but does not bring back the conversation or the terminal output [1].

Where CCManager is better

Where mmux is better

When to use which

Choose CCManager when

  • you do not want tmux installed or involved
  • you work on Windows
  • agents should run inside a devcontainer while the manager stays on the host
  • you branch a Claude Code conversation into several worktrees
  • you use Cursor Agent, Copilot CLI, Cline CLI or Kimi CLI and want their state detected

Choose mmux when

  • you work over SSH and agents must keep running when the connection drops
  • you want agent conversations resumed after a quit or a crash
  • dev servers and shells should live next to the agents, per worktree
  • you want to stage, commit and push without leaving the TUI
  • scripts or other agents should be able to start, read and wait on sessions

Moving from CCManager to mmux

  1. Install mmux and make sure tmux is on your PATH (Homebrew installs it for you).
  2. Run mmux init in a project, or mmux init workspace in the parent folder to get several repositories in one sidebar, similar to CCManager's multi-project mode.
  3. Move your command presets to agents: in ~/.mmux/config.yaml: each entry has a name, cmd and args.
  4. Your .worktreeinclude entries map to worktrees.copy, and a post-creation worktree hook maps to worktrees.setup in mmux.yaml.
  5. Press w to create a worktree, M to merge it back, X to remove it.
# ~/.mmux/config.yaml
agents:
  - name: Claude
    cmd: claude
  - name: Codex
    cmd: codex

# ./mmux.yaml
worktrees:
  copy: [.env, .env.local]
  setup: pnpm install

To keep CCManager and still get persistence, open a terminal row in mmux and run npx ccmanager there. The row lives in mmux's tmux session, so CCManager and its agents keep running when you detach.

FAQ

Does CCManager need tmux?

No. CCManager is self-contained and runs each agent in its own pseudo-terminal, so tmux is not required. mmux does need tmux on your PATH, because it runs inside an invisible tmux session per directory. Homebrew installs tmux for you.

Do my agents keep running when I close the terminal?

In mmux, yes: closing the terminal or dropping SSH detaches, and running mmux again in the directory reattaches to the same agents. In CCManager, closing the app ends the agent processes it started. On the next launch it offers to start those sessions again, which reruns their commands but does not restore the conversation or the terminal output.

Does CCManager or mmux run on Windows?

CCManager publishes prebuilt binaries for Windows x64 as well as macOS and Linux. mmux supports macOS and Linux only.

Which agent CLIs do they support?

CCManager documents Claude Code, Gemini CLI, Codex CLI, Cursor Agent, Copilot CLI, Cline CLI, OpenCode, Kimi CLI and MiniMax Code, each with its own state detection. mmux ships presets for Claude, Codex, Pi, Gemini, Amp, opencode and Grok, and any command can be configured as an agent. mmux resumes the conversation of Claude, Codex, Pi and Grok agents after a restart.

Can I use CCManager and mmux together?

Yes. CCManager is a terminal program, so you can start it in an mmux terminal row. Because that row lives in mmux's tmux session, CCManager and its agents then keep running when you detach or lose SSH.

Are CCManager and mmux free?

Both are free and open source. CCManager is MIT licensed and installed from npm. mmux is GPLv3-or-later and installed as a single binary. Neither repository mentions a paid tier.

Sources

  1. CCManager README at v4.4.6
  2. CCManager package.json at v4.4.6: license and platform binaries
  3. CCManager docs: status change hooks
  4. CCManager docs: auto approval
  5. CCManager docs: devcontainer integration
  6. CCManager docs: multi-project mode
  7. CCManager source: src/cli.tsx (flags and TTY check)
  8. CCManager release v4.4.6
  9. mmux documentation

Other comparisons

all comparisons

Try mmux

One binary for macOS, Linux and WSL. Run mmux in any project directory.

curl -fsSL https://mmux.org/install.sh | sh