Agent Deck CLI

A terminal session manager for Claude Code, Codex, Gemini CLI, OpenCode and other agents: one list with statuses, git worktrees and control from a phone

  • 1,147 ★ on the repository
  • Last commit
  • MIT
CLI

Broad access

Why this level

  • It starts, restarts and closes agent sessions and sends them messages, and worktree scripts from the repository run as you after approval
  • The conductor mode accepts commands from Telegram or Slack through a background bridge, so sessions can be controlled from a phone
  • Web mode puts session terminals in a browser on port 8420, with access protected by a token
All reasons and checks

asheshgoplani/agent-deck

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add cli/agent-deck

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • It starts, restarts and closes agent sessions and sends them messages, and worktree scripts from the repository run as you after approval
  • The conductor mode accepts commands from Telegram or Slack through a background bridge, so sessions can be controlled from a phone
  • Web mode puts session terminals in a browser on port 8420, with access protected by a token

This is third-party code. Review the repository files before installing.

What it does

Agent Deck is a terminal application written in Go that gathers the sessions of several AI agents into one list. Each agent runs in its own tmux session with the `agentdeck_` prefix, so your own tmux sessions stay untouched. The list has groups, fuzzy search and a status for each session: running, waiting for input, idle or errored. Sessions waiting for you show up in the tmux status bar. You start an agent with a command like `agent-deck add . -c claude`, and `agent-deck session send my-proj --message-file task.md` sends a message from a file into a session. A session can get its own git worktree: `agent-deck add . -c claude --worktree feature/a --new-branch` creates a branch and a directory, and `agent-deck worktree finish` merges the branch and removes the tree. The repository's `.agent-deck/worktree-setup.sh` and `.agent-deck/worktree-destruction.sh` scripts run only after you approve them. The MCP and skills managers attach servers and skills to a session without editing config files, a quick fork on the `f` key copies a session together with its conversation history, and the sandbox runs a session in a Docker container with the project directory mounted read-write. The conductor mode adds a persistent supervisor session: it watches the others, answers routine questions and forwards important ones to your phone through a Telegram or Slack bot. The `agent-deck conductor setup work` wizard sets it up. `agent-deck web` opens a web interface on `127.0.0.1:8420`, the cost dashboard collects token spending across all sessions, and `agent-deck usage` shows provider quotas.

Who it is for. For developers who run several agents across projects and branches at once and want to see which one is waiting for an answer without opening every tab.

Good fit when

  • Claude Code works in one project, Codex in another and OpenCode in a third, and you want one list with statuses running, waiting and idle
  • Several agents edit one repository: each gets a session with its own branch and worktree, and `agent-deck worktree finish` merges the branch afterwards
  • You want to try two approaches to a task: the `f` key forks a session with its conversation history and its own tree
  • You want to watch agents from a phone: the conductor forwards questions to Telegram or Slack and keeps an eye on stuck sessions
  • Sessions use many MCP servers and you want to save memory with a shared pool: `pool_all = true` in `config.toml` enables Unix sockets shared by all sessions

Not a fit when

  • You work on Windows without WSL: support goes through WSL, and WSL2 is recommended for the MCP pool
  • You run one agent in one project: the shared list, forks and trees pay off with several sessions
  • You need an app with desktop windows: the interface is text, and web mode shows the same terminals in a browser
  • You need a manager that assigns tasks by budgets and roles on its own: that is Paperclip, while Agent Deck manages sessions

Example request

Install agent-deck, create two Claude Code sessions on different branches of this repository and show me which one is waiting for an answer

Limitations

  • Claude Code runs under your own sign-in: Agent Deck starts the plain `claude` and does not read the token. The author notes that plan limits assume ordinary personal use and advises an API key or a Team or Enterprise plan for long unattended runs.
  • Integration depth varies. It is full for Claude Code (status, MCP, fork, resume) and Gemini CLI (the same minus fork), status and organization only for Cursor, and organization and launch for Copilot and Hermes Agent. Codex and pi status is reliable after `agent-deck codex-hooks install` and `agent-deck pi-hooks install`.
  • Worktree scripts are code from the repository: they run after an approval tied to a sha256. The `run_repo_scripts = "always"` setting turns the prompt off, so it suits only machines where you trust every repository.
  • Codex forking works with `codex fork <session-id>` (verified on codex-cli 0.137.0), and DeepSeek Harness has no fork command.
  • The Claude Code sign-in on macOS lives in the Keychain and is not copied into the sandbox: run `/login` in the first container session. The author's figures, such as an 85–90% MCP pool memory saving, come from his own workload.

How to disable. `agent-deck uninstall` removes the program interactively, and `agent-deck uninstall --keep-data` removes only the binary and leaves sessions. tmux sessions with the `agentdeck_` prefix are closed with `agent-deck session stop <name>`.

FAQ

How is this different from plain tmux?

Agent Deck adds agent awareness on top of tmux: status detection (the agent is thinking or waiting for you), session forking with conversation history, MCP management, search across all conversations and groups. It creates its own sessions with the `agentdeck_` prefix, so yours stay untouched.

Can I use several Claude accounts?

Yes. In `config.toml` set `[profiles.work.claude]` with `config_dir` for a profile and start with `agent-deck -p work`. `agent-deck session switch-account <session> <account>` moves a running session together with its conversation and restarts it with `--resume`.

What does telemetry collect?

Nothing by default: sending starts only after you agree to a single question in the interface. Then anonymous data goes out on features used, session counts and lengths, error types, version and OS, but never prompts, paths, titles or names. `agent-deck telemetry preview` shows what would be sent, and `agent-deck telemetry off` or `DO_NOT_TRACK=1` turns it off.

How do I protect web mode?

`agent-deck web --token key` enables a token check, and `--token-file` reads it from a file so the token does not show in the process list; the file must not be accessible to the group or others. `--read-only` leaves output only, and the default address `127.0.0.1:8420` changes with `--listen`.

How do I connect a Telegram bot to the conductor?

Create a bot with @BotFather, take the token and your numeric ID from @userinfobot, then run `agent-deck conductor setup work --description "Work fleet"` and start the session with `agent-deck session start conductor-work`. Sending `/status` to the bot checks the link.

How do I run a conductor on another agent instead of Claude Code?

The `--agent codex` flag of `agent-deck conductor setup` creates a conductor on Codex. It reads `AGENTS.md` instead of `CLAUDE.md`, while the shared `POLICY.md` and `LEARNINGS.md` files stay the same for both.

Discussion

No questions or reviews yet.

CLI tools

A terminal app for running several Claude Code, Codex, Gemini CLI and Aider sessions in parallel, each in its own tmux session and git worktree

CLIBroad access8.7KRepository stars

A Rust terminal task board: every task runs in its own git worktree and tmux window while Claude Code, Codex, Gemini CLI and other agents work in parallel

CLIBroad access1.7KRepository stars

A local dashboard for running many agents across machines: memory, code graph and agent-to-agent messaging

CLIBroad access835Repository stars

A terminal workspace where several CLI agents like Codex, Claude and Gemini exchange messages and work on one task under human oversight

CLIExtended access3.6KRepository stars

Ten AI agents in tmux panes: a manager hands tasks to seven workers, progress shows on a dashboard, with Claude Code, Codex, Cursor and OpenCode supported

WorkflowBroad access1.4KRepository stars

A portable .agent folder with memory, skills and protocols that plugs into many coding agents and keeps its knowledge when you switch tools

CLIBroad access2.3KRepository stars

Comparison with similar tools

Entries that share the main search query, and how they differ.

EntryOfficialRepository starsMain difference
Agent Deck (this entry)no1,147
Claude Squadno8,656a terminal app for running Claude Code, Codex, Gemini CLI and Aider in parallel, each in its own tmux session and git worktree
OpenHands Agent Canvasno91,695a self-hosted control center for agents on local and remote backends
agent-managerno616a tmux-based TUI that runs Claude Code

README in short

The documentation opens with three ways to install and a quick start, followed by a key table and sections on features: forks, MCP and skills managers, groups, git worktrees, the Docker sandbox, the conductor with its Telegram and Slack bridge, watchers, the cost dashboard, web mode and remote machines. Separate references live in `skills/agent-deck/references`, and `docs` holds guides to the conductor, watchers and commands for remote machines. The repository also has performance measurements, contributor rules and a security policy.

README badge

Report a problem

Foxx AIAgent Deck
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.