agent-deck
Agent Deck is a terminal session manager for AI coding agents that creates and controls isolated Claude sessions with MCP attachment, git worktree integration, and sub-agent spawning. Use it when managing multiple concurrent agent sessions, launching child agents with inherited context, attaching or detaching model context protocols, organizing sessions into groups, or configuring automation through CLI commands, terminal UI shortcuts, or configuration files.
git clone --depth 1 https://github.com/asheshgoplani/agent-deck /tmp/agent-deck && cp -r /tmp/agent-deck/skills/agent-deck ~/.claude/skills/agent-deckSKILL.md
# Agent Deck Terminal session manager for AI coding agents. Built with Go + Bubble Tea. **Repo:** [github.com/asheshgoplani/agent-deck](https://github.com/asheshgoplani/agent-deck) | **Discord:** [discord.gg/e4xSs6NBN8](https://discord.gg/e4xSs6NBN8) > Run `agent-deck --version` for your installed version. This skill targets v1.9+ but most patterns work back to v1.7. ## Script Path Resolution (IMPORTANT) This skill includes helper scripts in its `scripts/` subdirectory. When Claude Code loads this skill, it shows a line like: ``` Base directory for this skill: /path/to/.../skills/agent-deck ``` **You MUST use that base directory path to resolve all script references.** Store it as `SKILL_DIR`: ```bash # Set SKILL_DIR to the base directory shown when this skill was loaded SKILL_DIR="/path/shown/in/base-directory-line" # Then run scripts as: $SKILL_DIR/scripts/launch-subagent.sh "Title" "Prompt" --wait ``` **Common mistake:** Do NOT use `<project-root>/scripts/launch-subagent.sh`. The scripts live inside the skill's own directory (plugin cache or project skills folder), NOT in the user's project root. **For plugin users**, the path looks like: `~/.claude/plugins/cache/agent-deck/agent-deck/<hash>/skills/agent-deck/scripts/` **For local development**, the path looks like: `<repo>/skills/agent-deck/scripts/` ## Quick Start ```bash # Launch TUI agent-deck # Create and start a session agent-deck add -t "Project" -c claude /path/to/project agent-deck session start "Project" # Send message and get output agent-deck session send "Project" "Analyze this codebase" agent-deck session output "Project" ``` ## Capabilities What agent-deck does, at the noun level (independent of which surface — CLI / TUI / Web UI — you reach it through). Each row maps to one or more commands, keystrokes, or screens. For full surface coverage and per-row known issues, see your conductor's `CAPABILITIES.md` (generated by the Self-Improvement workflow below). | Capability | What it does | Surfaces | |---|---|---| | **Manage sessions** | Create, start, stop, restart, fork, send, output, remove a session | CLI ✅ · TUI ✅ · Web UI 🟡 | | **Sub-agent / worker spawning** | `agent-deck launch` a child Claude session with parent linkage and inherited `--add-dir` | CLI ✅ · TUI ⚪ | | **Manage conductors** | Set up long-lived orchestrators with their own profile + channel + heartbeat | CLI ✅ · TUI 🟡 | | **Manage groups** | Move / delete groups; organize sessions hierarchically | CLI ✅ · TUI ✅ | | **Manage watchers** | Install / configure event-driven adapters (Gmail, GitHub, ntfy) — doorbell-not-messenger | CLI ✅ · TUI ✅ | | **Heartbeat orchestration** | Cron / ScheduleWakeup feeding the conductor periodic system-state nudges | CLI ✅ | | **Worktree workflows** | `--worktree` to create isolated git-worktree-backed sessions for parallel branch work | CLI ✅ | | **Channel routing** | Telegram / Slack inbound delivery to the right conductor, with `--channels` per-session binding | CLI ✅ | | **Attach MCPs** | Per-session or global MCP plugin attach / detach / status, with optional pooling | CLI ✅ · TUI ✅ · Web UI ⚪ | | **Attach skills** | Pool-based on-demand skill loading per Claude session | CLI ✅ · TUI ✅ | | **Session-metadata mutation** | `session set` for `claude-session-id`, `path`, `wrapper`, `channels`, `parent`; `session unset-parent` | CLI ✅ | | **State persistence** | `state.json` + `task-log.md` + `LEARNINGS.md` + `HANDOFF.md` survive Claude Code compaction/restart | CLI ✅ | | **GitHub pipeline oversight** | Conductor-driven release flow: PR merge → tag → goreleaser → release | CLI ✅ | | **Remote sessions** | SSH-based remote register / list / attach across hosts | CLI ✅ | | **Session sharing** | Export / import a Claude conversation for handoff between developers | CLI ✅ | | **Consult another agent** | Launch a Codex / Gemini sub-agent for a second opinion | CLI ✅ | | **Profile-scoped operation** | `-p <profile>` separation between personal and work auth | CLI ✅ · TUI ✅ | | **Self-improvement** | Analyze your conductor's own transcripts → surface bugs / patterns / capabilities, file GH issues with privacy guards | CLI ✅ | Status legend: ✅ verified, 🟡 partial, 🔴 known broken, ⚪ unknown. To update for your own machine, see [Self-Improvement](#self-improvement) below. ## Per-CLI Capabilities (what a launched session can do) The table above is what *agent-deck* does. This one is what the *CLI inside a session* can do — agent-deck launches one per session (`-c claude|codex|gemini`). A conductor uses this to pick the right tool for a child; a launched child uses it to know its own powers without being told. This is a capability **map**, not a manual — run `<cli> --help` for exact flags. Verified 2026-06 against claude 2.1.x, codex-cli 0.137, gemini 0.45. | In-session capability | claude (Claude Code) | codex | gemini | |---|---|---|---| | **Multi-agent fan-out *inside one session*** | ✅ **Agent tool** (parallel subagents, each its own context window; `run_in_background`) **and Workflow tool** (deterministic JS: `agent()`/`pipeline()`/`parallel()` over item lists, structured-output schemas, phases) | ❌ single-agent — fan out by launching codex *peers* via agent-deck | ❌ not exposed — fan out via agent-deck peers | | **Skills** | ✅ Skill tool + agent-deck pool skills (`~/.agent-deck/skills/pool/`) | ❌ | ✅ `gemini skills` | | **MCP servers** | ✅ `claude mcp` / `--mcp-config`; agent-deck `mcp attach` | ✅ `codex mcp`; also runs **as** a server (`codex mcp-server`) | ✅ `gemini mcp`, `--allowed-mcp-server-names` | | **Built-in code review** | ✅ `ultrareview` (cloud multi-agent) + `/code-review` skill | ✅ `codex review` / `codex exec review --uncommitted` | via prompt only | | **Plan / read-only mode** | `--permission-mode plan` | `-s read-only` | `--approval-mode plan` | | **Autonomy / sandbox** | `--permission-mode acceptEdits\|bypassPermissions`; config `dangerous_mode` | `-s read-only\|workspace-write\|danger-f
Guide for creating agent-deck watchers conversationally. This skill should be used when users want to set up a new watcher (webhook, ntfy, github, slack, gmail) to route events to a conductor. It walks the user through selecting an adapter type, gathering required settings, generating watcher.toml and clients.json entries, and emits the exact `agent-deck watcher create` command to run.
Share Claude Code sessions between developers. Use when user mentions "share session", "export session", "import session", "send session to", "continue from colleague", or needs to (1) export current session to file, (2) import session from another developer, (3) hand off work context. Enables private, secure session transfer via direct file sharing.