// compare

mmux vs Agent Deck

Both run your AI coding agents inside tmux so they keep going after you close the terminal. Agent Deck is a Go session manager built around a list of agents with status, forks, MCP and skill management, a web UI and a phone-controlled conductor. mmux is a Rust workspace for one project at a time: agents, terminals and dev processes in a sidebar, the selected one live in the main pane, and a git panel next to it.

Last checked against Agent Deck v1.16.28 on .

// tl;dr

Pick Agent Deck if you run many agents across many projects and want fleet tooling around them: forking a conversation into a new worktree, toggling MCP servers and skills per session, Docker sandboxes, cost tracking, a browser UI, agents on remote SSH hosts, or a conductor you message from Telegram or Slack. It has far more agent-specific features than mmux.

Pick mmux if you want the agent, its dev server, a shell and git in one screen: the agent stays live in the main pane while you scan the sidebar, the built-in git panel stages, commits and pushes, and dev processes start, stop and hand over between worktrees. Closed sessions come back when you reopen the directory, with Claude, Codex, Pi and Grok resuming their conversations.

At a glance

mmux 0.13.13 and Agent Deck v1.16.28, as of 2026-10-14.
Capability mmux Agent Deck
Sessions survive closing the terminal or SSH yes: everything runs in a per-directory tmux session yes: each agent is its own tmux session
Work in an agent while the overview stays on screen yes: sidebar, live main pane and git panel side by side partly: list with a read-only preview; Enter attaches full screen, Ctrl+Q returns
Agent status in the list yes: working, ready, needs input, crashed yes: running, waiting, idle, error; hook-based for Codex and pi
Fork an agent conversation no: not supported yes: Claude, OpenCode, Pi, Codex, Oh My Pi; into a new worktree by default
Git worktrees yes: one key; merge back with M; finished ones are cleaned up yes: per session; setup and teardown scripts, sparse checkout, jj
Git UI (stage, commit, push, diff) yes: built-in panel with generated commit messages no: none documented
Dev servers and scripts yes: Processes with start, stop, teardown commands and logs partly: run them in a shell session; no process type
MCP, skills and cost tracking no: left to each agent yes: MCP manager and socket pool, skills manager, cost dashboard
Docker sandbox for agents no: not built in yes: per session, project bind-mounted
Reach it from a phone or browser partly: over SSH, with a single-column layout under 60 columns yes: web UI, Telegram and Slack conductor, remote SSH hosts
Reopen after quit or restart yes: agents and terminals restored; Claude, Codex, Pi, Grok resume partly: sessions kept in a registry; restart resumes supported tools
Drive it from scripts and agents yes: mmux send, wait, ask, answer yes: agent-deck session send, JSON output, conductors
License, language GPLv3, Rust MIT, Go

Agent Deck facts from its README and TUI reference at v1.16.28. "None documented" means we did not find it in those docs, not that it can never be done.

What is Agent Deck?

Agent Deck describes itself as "mission control for your AI coding agents" and a "terminal session manager for AI coding agents" [1]. It is an open source project hosted at github.com/asheshgoplani/agent-deck, written in Go with Bubble Tea, MIT licensed, and runs on macOS, Linux and Windows through WSL [1][4]. You install it with a shell script, Homebrew or go install, and it needs tmux. The repository mentions no paid tier. Usage telemetry is opt-in and off until you agree [1].

The TUI is a grouped list of sessions with a preview pane that shows the last lines of the selected session and refreshes every two seconds [2]. Each session is a tmux session; Enter attaches to it and Ctrl+Q detaches back to the list. It knows about Claude Code, Gemini CLI, OpenCode, Codex, Copilot, Cursor, pi and several more, with different levels of integration per tool, and any other command can be added as a custom tool [1].

Around that list it adds conversation forking, an MCP manager with a shared socket pool, a skills manager, Docker sandboxes, cost tracking, a web UI (agent-deck web), remote instances over SSH, and "conductors": long-running agent sessions that watch the others and can be reached through Telegram or Slack [1][3][5]. The project releases often; v1.16.28 came out on 2026-10-10 [6].

Where Agent Deck is better

Where mmux is better

When to use which

Choose Agent Deck when

  • you supervise ten or more agents across many repositories at once
  • you want to fork a conversation to try a second approach
  • you manage MCP servers, skills or Claude accounts per session
  • you want to check on agents from a browser, Telegram or Slack
  • agents should run in Docker containers, or you need cost tracking

Choose mmux when

  • you work in one project (or one workspace of projects) at a time
  • you want the agent, its dev server and git visible in one window
  • you start and stop dev servers next to your agents, across worktrees
  • you work over SSH and want notifications on your local desktop
  • you want quit-and-reopen to bring your agents back mid-conversation

Moving from Agent Deck to mmux

  1. Install mmux. It needs tmux, which you already have for Agent Deck.
  2. In each project, run mmux init. The wizard offers presets for Claude, Codex, Pi, Gemini, Amp, opencode and Grok, including their auto-approve modes. Other tools go under agents: in ~/.mmux/config.yaml with a cmd and args.
  3. If you used .agent-deck/worktree-setup.sh, move it to worktrees: setup: in mmux.yaml, and list gitignored files to copy under worktrees: copy:.
  4. Add dev servers as processes: in mmux.yaml instead of running them in shell sessions.
  5. For several repositories in one sidebar, run mmux init workspace in their parent directory.
  6. Scripts that called agent-deck session send can use mmux send and mmux wait.
curl -fsSL https://mmux.org/install.sh | sh
cd ~/some/project
mmux init
mmux

Your conversations live in each agent's own history, not in Agent Deck, so nothing needs exporting. The two tools can also stay installed side by side: Agent Deck names its tmux sessions agentdeck_* [1], and mmux sets its tmux options per session, never globally.

FAQ

What is the main difference between mmux and Agent Deck?

Agent Deck is a list of agent sessions with fleet features around it: forks, MCP and skill management, Docker sandboxes, cost tracking, a web UI and remote control through Telegram or Slack. mmux is a single-project workspace where the selected agent runs live next to a sidebar of agents, terminals and dev processes and a built-in git panel.

Are mmux and Agent Deck free?

Yes. Both are free and open source. Agent Deck is MIT licensed and written in Go. mmux is GPLv3 licensed and written in Rust.

Can mmux fork an agent conversation like Agent Deck?

No. Agent Deck forks Claude, OpenCode, Pi, Codex and Oh My Pi sessions through each tool's native fork support. mmux has no fork feature; you can start another agent in a new worktree with w or mmux worktree new, but it starts a fresh conversation.

Which one works better from a phone?

Agent Deck, if you want an app-like experience: it has a browser UI and a conductor you can message from Telegram or Slack. mmux works over SSH from a phone terminal and switches to a single-column layout under 60 columns, but it has no web UI or chat bridge.

Can I run Agent Deck and mmux on the same machine?

Yes. Agent Deck creates tmux sessions named agentdeck_* and can use its own tmux socket. mmux runs one tmux session per directory and sets its options per session, never globally.

Sources

  1. Agent Deck README (main branch, v1.16.28)
  2. Agent Deck TUI reference
  3. Agent Deck conductor docs
  4. Agent Deck LICENSE (MIT)
  5. Agent Deck Docker sandbox reference
  6. Agent Deck release v1.16.28
  7. mmux documentation (usage, configuration, notifications)

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