📦asheshgoplani / agent-deck
← 返回首页
Terminal session manager for AI coding agents. One TUI for Claude, Gemini, OpenCode, Codex, and more.
⚖️ MIT#claude-code#ai-agents#ai-coding-assistant#aider#bubble-tea🌐 discord.gg📅 创建于 2025-12-03🔄 更新于 2026-10-26

📄 仓库 README

在 GitHub 查看 ↗
来自 GitHub 仓库自述文件 · 版权归原作者所有
Agent Deck Logo # Agent Deck **Your AI agent command center** [![GitHub Stars](https://img.shields.io/github/stars/asheshgoplani/agent-deck?style=for-the-badge&logo=github&color=yellow&labelColor=1a1b26)](https://github.com/asheshgoplani/agent-deck/stargazers) [![Downloads](https://img.shields.io/github/downloads/asheshgoplani/agent-deck/total?style=for-the-badge&logo=github&color=bb9af7&labelColor=1a1b26)](https://github.com/asheshgoplani/agent-deck/releases) [![Go Version](https://img.shields.io/badge/Go-1.26.10-00ADD8?style=for-the-badge&logo=go&labelColor=1a1b26)](https://go.dev) [![License](https://img.shields.io/badge/License-MIT-9ece6a?style=for-the-badge&labelColor=1a1b26)](LICENSE) [![Platform](https://img.shields.io/badge/Platform-macOS%20%7C%20Linux%20%7C%20WSL-7aa2f7?style=for-the-badge&labelColor=1a1b26)](https://github.com/asheshgoplani/agent-deck) [![Latest Release](https://img.shields.io/github/v/release/asheshgoplani/agent-deck?style=for-the-badge&color=e0af68&labelColor=1a1b26)](https://github.com/asheshgoplani/agent-deck/releases) [![Discord](https://img.shields.io/discord/1469423271144587379?style=for-the-badge&logo=discord&logoColor=white&label=Discord&color=5865F2&labelColor=1a1b26)](https://discord.gg/e4xSs6NBN8) [Install](#installation) . [Quick Start](#quick-start) . [Features](#features) . [Conductor](#conductor) . [Docs](#documentation) . [Discord](https://discord.gg/e4xSs6NBN8) . [FAQ](#faq)

Agent Deck is mission control for your AI coding agents. Running Claude Code on ten projects, OpenCode on five more, another agent somewhere in the background? One terminal shows every session — running, waiting, or done — and one keystroke switches between them. Groups, search, forking, git worktrees, cost tracking, and a phone-controlled conductor keep a whole fleet manageable.

https://github.com/user-attachments/assets/e4f55917-435c-45ba-92cc-89737d0d1401

Contributing: start here

agent-deck is actively maintained by Ashesh, and it welcomes both contributors and co-maintainers. PRs here don't sit: every incoming PR is validated (applied, built, tested) within about a day, and good ones merge in the next release batch. Recent releases have shipped dozens of community fixes.

Beyond one-off PRs, we're looking for 1-2 regular co-maintainers: people who want to own an area (a tool integration, the TUI, the web view, CI) and help triage and review. The validation pipeline does the heavy lifting; maintainers steer.

To get started:

  1. Read CONTRIBUTING.md: how the pipeline works, what makes a PR land fast, and the house rules.
  2. Contributing with an AI agent? Point it at .github/INTAKE.md, the machine-readable intake spec — or the contributor workflow in the agent-deck skill, which walks an agent (or you) through building, testing, and shaping a clean PR.
  3. Comment on an issue before starting work so we can tell you if someone (human or agent) is already on it.
  4. Look for issues labeled good first issue: curated to be small and self-contained.

Looking for something specific to work on? docs/ROADMAP.md lists ideas and follow-ups that are real but not yet scheduled.

If you've had a couple of PRs land here and want to help steer, open an issue titled "maintainer: your area". We'd love the help.

Installation

Works on: macOS, Linux, Windows (WSL)

curl -fsSL https://raw.githubusercontent.com/asheshgoplani/agent-deck/main/install.sh | bash

Then run: agent-deck

Other install methods **Homebrew**
brew install asheshgoplani/tap/agent-deck
**Go**
go install github.com/asheshgoplani/agent-deck/cmd/agent-deck@latest
**From Source**
git clone https://github.com/asheshgoplani/agent-deck.git && cd agent-deck && make install
Uninstalling
agent-deck uninstall              # Interactive uninstall
agent-deck uninstall --keep-data  # Remove binary only, keep sessions
See [Troubleshooting](https://github.com/asheshgoplani/agent-deck/blob/HEAD/skills/agent-deck/references/troubleshooting.md#uninstalling) for full details.
Shell completion `agent-deck completion ` prints a completion script for commands and subcommands (`agent-deck se` → `session`, `agent-deck session st` → `start`/`stop`), plus live resource names where it matters — `agent-deck remote update ` offers your configured remotes, `agent-deck session set-parent ` offers session titles at both positions, and `agent-deck -p ` offers your profiles.
# bash
echo 'source <(agent-deck completion bash)' >> ~/.bashrc

# zsh
echo 'source <(agent-deck completion zsh)' >> ~/.zshrc

# fish
agent-deck completion fish > ~/.config/fish/completions/agent-deck.fish
Open a new shell (or re-source the config file) afterwards.

Quick Start

agent-deck                        # Launch TUI
agent-deck add . -c claude        # Add current dir with Claude
agent-deck session fork my-proj   # Fork a supported session
agent-deck session send my-proj --message-file task.md # Send a multiline prompt
agent-deck session ref my-proj reviewer # Type a reference to my-proj into reviewer (not sent)
agent-deck session remove my-proj # Remove stopped/errored session from registry (transcripts preserved)
agent-deck mcp attach my-proj exa # Attach MCP to session
agent-deck skill attach my-proj docs --source pool --restart # Attach skill + restart
agent-deck web                    # Start web UI on http://127.0.0.1:8420

⚠️ Changed again after v1.16.32: in the new-session dialog (n), Enter creates the session from any row with what is filled in: this folder, your last-used tool, the selected group, and the folder name when Name is empty. n then Enter is the whole common case; N on the home screen creates without the dialog. Tab/↓ reach the optional rows, ↓/Space open the model list, and a wrong required field takes focus with the reason. To walk the form with Enter down to the [ Create session ] button instead, set [ui].new_session_enter_advances = true; Ctrl+S creates from any field in both modes.

Key Shortcuts

From the main menu, o and Shift+Q open a message composer above the footer. Press Enter to submit, Ctrl+J for a newline, or Esc to cancel. Ctrl+X, then E, opens the draft in $VISUAL / $EDITOR (fallback: vi); returning from the editor restores the draft without sending it. Queueing uses native Claude/OpenCode 2 queueing where available and waits for the current turn to finish on other commands. OpenCode 2 queueing uses its session API and requires a detected session ID; unconfirmed delivery is reported without retrying or falling back to terminal keys. The main-menu composer currently supports local sessions only, not remote-session rows.

Key Action
Enter Attach to session
Ctrl+Q Detach from session
n New session
f / F Fork (quick / dialog)
A / Shift+U Archive / unarchive session
^ Show archived sessions
m MCP Manager
o Send a message to the selected session (a busy Claude session queues it, no interrupt)
Shift+Q Queue a message after the current turn
s Skills Manager
$ Cost Dashboard
M Move session to group
S Settings
/ / G Search / Global search
r / R Rename / Restart session
d Delete
b Re-run worktree setup script
E Container shell (sandboxed sessions)
c / B Copy last AI response / session info (repo, path, branch)
C Context inspector (what the session is sent, ranked by cost)
V / Y Copy visible terminal text / a fenced code block
Shift+drag Select text natively (Option+drag in iTerm2) — see below
? Full help

Why can't I drag-select text? The TUI holds the terminal in mouse reporting mode so clicks, wheel scrolling and the divider drag work, which means your terminal never sees a drag as a selection. Hold Shift while dragging (Option in iTerm2) to bypass it, or use the c / B / V / Y copy keys above. Full detail in Terminal shortcuts.

See TUI Reference for all shortcuts and CLI Reference for all commands.

Quickstart: orchestrate a fleet of AI agents

Five minutes from zero to a Telegram bot that watches every Claude session you have running.

# 1. Create a Telegram bot via @BotFather, grab the token + your user ID from @userinfobot.
# 2. Run the wizard — it sets up the conductor, bridge daemon, and heartbeat in one shot.
agent-deck conductor setup work --description "Work fleet"
agent-deck session start conductor-work
# 3. Message your bot:  /status

That's it. From now on every other agent-deck session you run is supervised by a single "conductor" session that answers routine questions, escalates the interesting ones to your phone, and never lets a waiting worker rot.

Two short guides to read next:

  • docs/conductor/ — two-minute local quickstart, architecture, state files, lifecycle, remote channel setup (Telegram/Slack/Discord/Mattermost), gotchas.
  • docs/WATCHER-SETUP.md — add "doorbells" so the outside world (GitHub events, gmail, ntfy pushes, meetings) can wake the conductor up.

Fleet topology: phone → conductor → child sessions, with watchers on the side

Features

MCP Manager

Attach MCP servers without touching config files. Need web search? Browser automation? Toggle them on per project or globally. Agent Deck handles the restart automatically.

  • Pr

📈 近 7 天 Star 趋势

每日新增 Star(柱)与累计 Star(线)· 数据来自 GitHub

🏆 排名变化趋势

在各榜单中的排名历史(数字越小越靠前)

📋 历史上榜记录

每次快照的详细数据
日期 榜单 排名 周期新增 总 STAR