Skip to content

Repository files navigation

Agent Desk

Agent Desk

Terminal command center for AI coding agents.

Run and switch between Claude Code, Gemini, Codex, and other terminal AI tools — each in its own tmux session — from one keyboard-driven view.

Release License Go Platform

A Millwright Software fork of asheshgoplani/agent-deck by Ashesh Goplani. Maintained independently, distributed under the original MIT license (see LICENSE); upstream authorship is preserved in the commit history.

About this fork

A personal, stripped-down fork, tuned for how I work.

What's gone: the conductor orchestration layer and the web/dashboard surface — just Claude Code and GitHub Copilot CLI in tmux.

What's sharper — the controls I use every day:

  • Name-forward path picker — folder name first, ~ collapse, recent-project stars
  • Model + mode on every row — see each session's model and auto/manual mode at a glance
  • Manual flags (u) — mark a session unread or parked to come back to
  • Per-session color schemes (c) — tint the tmux window and preview per session
  • Worktree-manager overlay — clear orphaned worktrees without dropping to the CLI

Upstream is bigger, more featured, and actively maintained — if you want the full toolkit, use it.


What it does

Running Claude Code on a dozen projects, plus a couple of Gemini and Codex sessions? Managing that as a wall of terminal tabs gets messy fast — hard to see what's running, what's waiting on you, and where you left off.

Agent Desk puts every agent session in one place:

  • See status at a glance — running, waiting, idle, or errored, for every session
  • Switch in a keystroke — jump to any session instantly; attach/detach without losing state
  • Stay organized — groups, fuzzy search, manual flags, and git worktrees
  • Fork Claude conversations — branch a session with full context to try a different approach

It's tmux underneath, with AI-aware status detection and session management layered on top.

Install

Works on: macOS, Linux, Windows (WSL). Requires tmux.

Quick install (prebuilt binary — macOS arm64/Intel, Linux amd64/arm64):

curl -fsSL https://raw.githubusercontent.com/millwright-software/agent-desk/main/install.sh | bash

With Go (requires Go 1.24+):

go install github.com/millwright-software/agent-desk/cmd/agent-desk@latest

From source:

git clone https://github.com/millwright-software/agent-desk.git
cd agent-desk
make install

Then run agent-desk. To update, re-run the installer (or go install …@latest / git pull && make install).

Quick start

agent-desk                        # Launch the TUI
agent-desk add . -c claude        # Add the current dir as a Claude session
agent-desk session fork my-proj   # Fork a Claude session
agent-desk mcp attach my-proj exa # Attach an MCP server to a session

Key shortcuts

Key Action
Enter Attach to session
n New session
f / F Fork (quick / dialog)
u Cycle manual flag: unread → parked → normal
M MCP Manager
/ / G Search / global search across all Claude conversations
Shift+J / Shift+K Reorder session down / up
r Restart session
d Delete session
? Full help

See the TUI Reference for every shortcut and the CLI Reference for every command.

Features

Status detection

Agent Desk polls each session and infers what its agent is doing:

Status Symbol Meaning
Running green Actively working
Waiting yellow Needs your input
Idle gray Ready for commands
Error red Something went wrong

For Claude, detection uses the session hook and transcript for fast, accurate state (including the current model). Other tools fall back to output-pattern and tmux-activity detection.

Fork sessions

Fork any Claude conversation instantly — each fork inherits the full history, so you can explore a different approach without losing your place. Press f to fork, F to name/group it. Fork forks as deep as you like.

MCP manager

Attach MCP servers without hand-editing config files. Press M, Space to toggle a server, Tab to cycle scope (local / global). Define your servers once in ~/.agent-desk/config.toml; toggle them per session. Agent Desk handles the restart. See the Configuration Reference.

MCP socket pool — with pool_all = true, MCP processes are shared across sessions over Unix sockets, cutting MCP memory ~85–90% and auto-recovering from crashes in a few seconds via a reconnecting proxy.

Git worktrees

Run multiple agents against the same repo without conflicts — each in an isolated worktree and branch.

agent-desk add . -c claude --worktree feature/a --new-branch   # session in a new worktree
agent-desk worktree finish "My Session"                        # merge branch, remove worktree, delete session
agent-desk worktree cleanup                                    # remove orphaned worktrees

Set the default location in ~/.agent-desk/config.toml:

[worktree]
default_location = "subdirectory"  # "sibling" (default), "subdirectory", or a custom path

Multi-tool support

Tool Integration
Claude Code Full — status, MCP, fork, resume, model detection
Gemini CLI Full — status, MCP, resume
GitHub Copilot CLI Status detection, resume (--continue), organization
OpenCode / Codex / Cursor (terminal) Status detection + organization
Any other terminal CLI Wrap it via [tools.*] in config.toml

Any terminal-based AI tool can be added as a custom tool with its own launch command, icon, and status patterns:

[tools.my-ai]
command = "my-ai-assistant"
icon = "🧠"
busy_patterns = ["thinking...", "processing..."]

Documentation

Guide Contents
CLI Reference Commands, flags, scripting
Configuration config.toml, MCP, custom tools, socket pool
TUI Reference Shortcuts, status indicators, navigation
Troubleshooting Common issues, recovery, uninstalling

Ask an AI about Agent Desk — if you use Claude Code, install the bundled skill:

/plugin marketplace add millwright-software/agent-desk
/plugin install agent-desk@agent-desk

FAQ

How is this different from just using tmux?

Agent Desk adds AI-specific intelligence on top of tmux: status detection that knows when Claude is working vs. waiting, session forking with context inheritance, MCP management, global search across conversations, and organized groups. It's tmux plus AI awareness.

Can I use it on Windows?

Yes, via WSL. Install WSL (WSL2 recommended), then install Agent Desk inside it.

Will it interfere with my existing tmux setup?

No. Agent Desk creates its own tmux sessions prefixed agentdesk_*; your existing sessions are untouched.

Development

make build    # Build
make test     # Test
make lint     # Lint

See CONTRIBUTING.md.

License

MIT — see LICENSE. Original work © 2025 Ashesh Goplani; fork modifications © 2026 Millwright Software.


Built on Bubble Tea and tmux.

Docs · Issues · Discussions

About

TUI session manager for AI coding agents (Claude Code, Gemini, OpenCode, Codex). A Millwright Software fork of asheshgoplani/agent-deck.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages