mrkeyoor.com_
Thu 01 Oct 19:38 UTC
Automationevaluationupdated 26 Aug 2026

agent-deck review

Agent Deck is a terminal control panel for running many coding-agent sessions across projects. It organizes Claude Code, Codex, Gemini CLI, OpenCode, and other tools through tmux, then adds status tracking, worktrees, MCP and skill management, cost records, and optional phone control.

+23stars / 7d
Verdict

Our Agent Deck build succeeded in 64 seconds, but 5 of 26 Go test packages failed during a 568-second run, including a watcher queue assertion. It is a capable choice for an experienced operator managing enough agents to justify a control plane, especially with Claude Code or Codex. Keep it out of unattended fleet control until its watcher tests pass for you and the account and tmux issues affecting your setup are closed or mitigated.

We ran it

Lab card: what happened when we ran agent-deckScreenshot of agent-deck (discord.gg/e4xSs6NBN8)
Install✓ · 46s269 packages
Build✓ · 64s
Tests✗ · 568s21 passed · 5 failed of 26 (go test)
Repo2131 files~483,480 lines of source · 166.2 MB · 20 CI workflows · tests dir

Answers from our run

Does agent-deck build from source?

Dependencies installed in 46 seconds (269 packages), and the build succeeded in 64 seconds. We cloned commit 47bb210 into a clean Debian container with 3 CPUs and no project-specific setup.

Do agent-deck's tests pass?

Not all of them: 21 of 26 passed and 5 failed when we ran the project's own test command (go test). Some failures need services or credentials a bare container does not have.

Who should not use agent-deck?

Windows users who cannot use WSL: native Windows is not listed, and the README recommends WSL2 for full MCP socket-pool support.

What are the alternatives to agent-deck?

Claude Squad, tmux, Zellij. Our Agent Deck build succeeded in 64 seconds, but 5 of 26 Go test packages failed during a 568-second run, including a watcher queue assertion.

Setup3/546-second install, but tmux and agent CLIs remain prerequisites
Docs5/5Commands, architecture, security settings, and gotchas are specific
Community4/5793 stars, current releases, and active issue and PR traffic
Maturity3/5v1.15.0 is broad, while 5 of 26 test packages failed

Discussed on

  1. hnAgent Deck3 points
  2. hnShow HN: Agent Deck – Terminal Dashboard to Manage Claude/Gemini/Codex Sessions3 points

Who it’s for

Developers supervising several coding agents at once across multiple repositories.
Terminal users who already understand tmux, Git worktrees, and agent-specific authentication.
Claude Code and Codex users who need session grouping, forking, search, and per-project MCP control.
Operators willing to configure conductors, watchers, and remote channels for long-running fleets.

Who it’s NOT for

Windows users who cannot use WSL: native Windows is not listed, and the README recommends WSL2 for full MCP socket-pool support.
Teams seeking a clean test baseline: our run passed 21 of 26 Go test packages, with 5 failures.
Codex users relying on named account isolation today: open issue 2060 says launch --account did not pass CODEX_HOME to the child process.
Long-lived tmux operators unwilling to apply workarounds: issue 2061 reports a server option growing to 5,018 entries and causing display corruption.
Anyone expecting the Docker option to protect the project directory itself: the README says that directory is bind-mounted read-write inside the container.

Setup reality

Our sandbox installed 269 Go packages in 46 seconds and built successfully in 64 seconds. Tests failed after 568 seconds: 21 packages passed and 5 failed out of 26. The log tail showed a watcher triage assertion expecting one queued item but finding none.

Basic use needs tmux plus at least one supported agent CLI with its own authentication. Homebrew, a shell installer, go install, and source installation are documented. Telegram or Slack conductors need bot credentials, while Gmail and other watchers add their own services.

macOS, Linux, and Windows through WSL are supported. Docker isolation is optional and shares host agent authentication into containers. The web UI stays on loopback by default; a non-loopback bind requires a bearer token and deserves normal network hardening.

One TUI tracks agents across many repositories

Agent Deck wraps tmux sessions in an agent-aware terminal interface. It shows whether each session is running, waiting, idle, or in error, and lets an operator search, rename, restart, archive, or jump between them. Claude Code, Gemini CLI, OpenCode, and Codex receive different levels of integration. Claude has status, MCP, fork, and resume support; Codex has status, MCP, organization, conductor, and fork support. Custom commands can also run as managed sessions.

The useful distinction from plain tmux is stored agent state. Groups can set concurrency limits, default paths, and Claude account configuration. Forking can carry conversation context through the underlying tool, create a Git worktree and branch, copy uncommitted state, and match Docker isolation. Cost tracking reads transcripts or command output, while global search spans recorded Claude conversations. Those conveniences become worthwhile when session count, projects, and agent tools have outgrown a handwritten tmux layout.

Worktrees isolate branches while secrets may be copied

A new session can start in a sibling or nested Git worktree, and large repositories can inherit sparse-checkout rules. A .worktreeinclude file copies selected ignored files such as .env or .mcp.json into the new tree, but only when Git already marks them ignored. That is practical for runnable branches. It also means teams should review those patterns like deployment code because one broad entry can duplicate credentials into every agent workspace.

Docker sandboxing protects the rest of the host while bind-mounting the project directory read-write. Host authentication for Claude, Gemini, Codex, and other tools is shared into the container so agents do not need a second login. This boundary reduces host exposure, but it does not protect repository files from the agent. The auto_cleanup option removes containers after sessions end by default; keeping them for debugging leaves more state to inventory and delete later.

What happened when we ran it

Our sandbox installed 269 Go packages in 46 seconds and built commit 47bb210 successfully in 64 seconds. The checkout contained 2,131 files, about 483,480 source lines, and used 166.2 MB before installation. It had 20 CI workflow files, no Dockerfile, and a tests directory. The environment was an unprivileged Debian container with 3 CPUs, 8 GB of memory, no secrets, and the Go 1.24 image.

The test command failed after 568 seconds. Go reported 21 passed and 5 failed out of 26 packages. In the log tail, TestTriageLoop_RateLimitSixthQueued expected one item in triageQueue but got zero, then timed out waiting for a sixth spawn after the queue drained and observed five. The same tail included an intentionally fake Gmail renewal error. It does not establish the cause of the queue mismatch.

Several packages in the tail still passed, including the web package, scripts, an evaluation harness, and a capability-report tool. That partial success should not be read as a clean baseline. Watchers and triage are part of the product's unattended orchestration path, so a failing queue test matters more to a conductor deployment than to someone who only uses the local TUI to switch between sessions.

Conductors move session decisions onto a phone

A conductor is a persistent agent session that monitors other sessions, answers routine prompts, and escalates uncertain cases. The setup wizard can connect Telegram or Slack, and a heartbeat checks fleet state every 15 minutes by default. Watchers can wake a conductor from GitHub events, Gmail messages, ntfy notifications, calendar events, or Slack. This turns Agent Deck from a session browser into an automation service with external inputs.

That service needs explicit credential and channel design. The README requires one Telegram bot per conductor because two long-poll consumers on one token conflict. Bot tokens live in a per-conductor state directory with mode 600. A plugin should be activated only on its owning conductor session, since enabling it across a Claude profile creates competing pollers. These warnings are unusually specific and should be copied into an operations checklist rather than left for the person who first runs the wizard.

Open defects affect accounts, alerts, and tmux state

Open issue 2060 describes a serious Codex account bug. A named account was resolved and stored, but CODEX_HOME did not reach the launched child, so workers used the default account instead. The report says this appeared as idle or stalled work when that default was usage-limited. Anyone separating personal, team, or quota pools should verify the child environment on initial start and resume, not trust the selected label in Agent Deck.

Issue 2061 reports that Agent Deck repeatedly appended the same tmux terminal-features value. One long-lived server reached 5,018 entries, with display corruption reported after weeks of use. The issue provides a configuration workaround that prevents more appends, but says shrinking an existing value needs a manual reset or server restart. Issue 2062 adds a smaller operational gap: dead-letter warnings exist, yet the CLI and TUI cannot inspect, retry, or clear those records.

v1.15.0 is active but operationally busy

GitHub showed 793 stars, 38 combined open issues and pull requests, and a last push on August 24, 2026. Release v1.15.0 was published one day earlier. Issue and pull request updates continued on August 25, including a fast closure for a false report that a delivered multiline message had been dropped. The queue is active, though many current entries touch session delivery, tmux state, conductors, or agent identity rather than minor presentation work.

Agent Deck makes sense when an operator can name the pain it removes: too many sessions to watch, repeated worktree setup, scattered MCP configs, or agents that wait unnoticed. Our failed 568-second suite argues for a staged rollout. Start with local session organization, isolate its tmux socket, test one supported agent and account path, then add remote conductors only after watcher and delivery behavior passes on the machine that will run them.

Alternatives

ProjectWhat it isPick it when
Claude Squad gh↗A terminal manager for running multiple coding agents in isolated workspaces.pick this instead when you want a narrower multi-agent supervisor with fewer remote automation features.
tmux gh↗The terminal multiplexer underneath Agent Deck's session model.pick this instead when manual windows and scripts are enough and agent-aware status is unnecessary.
Zellij gh↗A terminal workspace and multiplexer with layouts and plugins.pick this instead when terminal organization matters more than agent-specific session control.

What people are saying

  1. [github-trending] asheshgoplani/agent-deck

Sources

  1. Agent Deck README
  2. GitHub repository metadata
  3. Agent Deck v1.15.0 release
  4. Issue 2060: Codex account environment
  5. Issue 2061: unbounded tmux terminal features
  6. Issue 2062: dead-letter operations gap

More automation reviews

mactap-app · cloudflare-turnstile-bypass · turnstile-bypass · autoshorts · ARES · appium · the whole board →