I usually have 5-10 AI coding agents running at the same time. Claude Code on the frontend, another Claude on the backend, Gemini researching architecture decisions, Codex writing tests. At some point, managing terminal tabs became the bottleneck, not the coding itself.
So I built Agent Deck, an open-source terminal session manager that gives me one dashboard for all of them.
The Problem With Multiple AI Sessions
If you use more than one AI coding agent, you know the pain:
- Too many terminal tabs. Which tab was Claude? Which was Gemini? Was Codex even still running?
- No visibility. Which agent is working? Which one finished and needs your input? You have to check each one manually.
- Context switching. Jumping between tabs, scrolling up to remember what you asked each agent, losing your train of thought.
I tried tmux sessions, multiple terminal windows, split panes. None of them gave me what I actually needed: a single view of what every agent is doing right now.
How I Set It Up
Install
curl -fsSL https://raw.githubusercontent.com/asheshgoplani/agent-deck/main/install.sh | bash
# Or: brew install asheshgoplani/tap/agent-deck
# Or: go install github.com/asheshgoplani/agent-deck/cmd/agent-deck@latest
Create Sessions
I create sessions for whatever I'm working on that day:
agent-deck add ~/my-project -t "frontend" -g "web-app" -c claude
agent-deck add ~/my-project -t "backend" -g "web-app" -c claude
agent-deck add ~/my-project -t "research" -g "web-app" -c gemini
agent-deck add ~/my-project -t "tests" -g "web-app" -c codex
agent-deck add ~/infra -t "refactor" -g "infra" -c opencode
Each session gets a title, a group for organization, and a tool. Or just press n in the TUI to create sessions interactively.
How Status Detection Works
This is the core feature. Agent Deck polls each session every 2 seconds and shows you what every agent is doing:
| Status | Symbol | Color | What It Means |
|---|---|---|---|
| Running | ● |
Green | Agent is actively generating output |
| Waiting | ◐ |
Yellow | Agent finished and needs your input |
| Idle | ○ |
Gray | You've seen it, nothing to do |
| Error | ✕ |
Red | Session crashed or doesn't exist |
When I come back from a break, I instantly see which agents need attention. No scrolling through tabs.
This works for Claude Code, Gemini CLI, Codex, and OpenCode out of the box. Custom tools can define their own detection patterns in config.toml.
How I Switch Between Sessions
From the Dashboard:
-
j/kor arrow keys to navigate -
Enterto attach to a session -
Ctrl+Qto detach back to the dashboard
Switching is instant because everything runs in tmux underneath.
Quick Filters:
When I have 10+ sessions, I use status filters:
-
@— show only sessions waiting for input -
!— show only running sessions -
/— fuzzy search across all session names
I press @, work through the waiting sessions one by one, then go back to the full list.
Notification Bar:
Waiting sessions also show up in the tmux status bar:
⚡ [1] frontend [2] api [3] backend
Press Ctrl+b 1 to jump directly to any waiting session without even opening the TUI.
Managing MCP Servers Without Editing JSON
I have ~25 MCP servers defined (web search, Playwright, GitHub, filesystem, etc.). Instead of editing .mcp.json by hand every time I need one, I press M in any session:
-
Spaceto toggle an MCP on/off -
Tabto choose scope: LOCAL (this project only) or GLOBAL (all projects) -
Enterto apply
The session restarts automatically with the new MCPs. Define your MCPs once in ~/.agent-deck/config.toml:
[mcps.playwright]
command = "npx"
args = ["-y", "@playwright/mcp@latest"]
[mcps.filesystem]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me"]
Then toggle them per session as needed.
Consulting Multiple AI Models From One Conversation
This is my favorite workflow. Sometimes I want opinions from different models before making an architecture decision. Using the Agent Deck skill for Claude Code, I can say:
"Consult with Gemini and Codex: what's the best approach for real-time updates in a Go backend?"
Claude automatically:
- Spawns a Gemini session and a Codex session
- Sends both the same question
- Waits for their responses
- Pulls the outputs back and compares all three perspectives
Three AI opinions from a single conversation. The sessions are visible in the TUI, and everything is managed through CLI commands.
Install the skill:
/plugin marketplace add asheshgoplani/agent-deck
/plugin install agent-deck@agent-deck
Forking Claude Sessions
Press f to fork any Claude Code session. The fork inherits the full conversation history, so I can try a different approach without losing my original context.
-
f— quick fork with auto-generated name -
F— fork dialog with custom name, group, and optional git worktree isolation
If the fork works out, great. If not, the original is untouched.
Agent Deck vs Other Approaches
| Approach | Pros | Cons |
|---|---|---|
| Multiple terminal tabs | Simple, no setup | No status visibility, impossible with 5+ sessions |
| tmux manually | Persistent sessions | No AI-specific features, manual status checking |
| API-based orchestration | Full control | Requires coding, no interactive sessions |
| Agent Deck | Status detection, MCP management, forking, multi-tool | Requires tmux |
Supported Tools
| Tool | Status Detection | MCP Management | Fork | Resume |
|---|---|---|---|---|
| Claude Code | Yes | Yes | Yes | Yes |
| Gemini CLI | Yes | Yes | No | Yes |
| Codex | Yes | No | No | No |
| OpenCode | Yes | No | No | No |
| Custom CLI tools | Configurable | No | No | No |
Quick Start Cheatsheet
# Install and launch
curl -fsSL https://raw.githubusercontent.com/asheshgoplani/agent-deck/main/install.sh | bash
agent-deck
# Key shortcuts
# n — New session
# Enter — Attach to session
# Ctrl+Q — Detach back to dashboard
# M — MCP Manager
# f — Fork session
# / — Search
# @ — Filter waiting sessions
# ? — Full help
What's Next
I'm working on a few things:
- Automated issue triage: GitHub webhooks trigger agent sessions to analyze new issues
- Hook-based workflows: Events (new PR, failed test) automatically launch the right agent
- Session templates: Predefined session setups for common workflows
Links
- GitHub: github.com/asheshgoplani/agent-deck
- Documentation: CLI Reference | Config Reference | TUI Reference
- LLM Documentation: llms-full.txt
If you're running multiple AI agents and have a different workflow, I'd love to hear about it. How do you keep track of everything?

Top comments (0)