Sandbox
@YoanWai/agent-manager

Tmux TUI for coding agents and diff review

agent-manager sits on top of the CLI agents you already use and runs each one in its own persistent tmux session. It keeps their status, prompts, groups, shells, worktrees, and review view in one place so you do not have to hop across terminal tabs.

422 stars38 forksGoUpdated 7d ago
Who it's for

Builders who use terminal coding agents and want to manage several sessions from one tmux screen.

What it delivers

You can track, prompt, revive, and review multiple agent sessions without leaving one terminal view.

What it does

Live session list

Shows each agent session with live status in one grouped list.

Quick prompt sending

Lets you answer a session or spawn a new one from the selected group with `space`.

Persistent tmux sessions

Runs every agent inside its own tmux session so work survives when the manager exits.

Worktree support

Can launch sessions in separate git worktrees with their own branches.

Diff review panel

Opens full-file diffs, lets you comment lines, and sends review notes back to the agent.

Revive and restart

Can revive a killed session on its old conversation or restart it with fresh context.

Shell access

Opens a shell under a selected agent or group for builds, git, and one-off commands.

MCP-capable sessions

Carries MCP tools through to supported agent sessions on launch.

How to get it

  1. 1Run
    brew install yoanwai/tap/agent-manager
  2. 2Run
    curl -fsSL https://raw.githubusercontent.com/YoanWai/agent-manager/main/install.sh | sh
  3. 3Run
    agent-manager

README

agent-manageragent-manager

The fastest workflow for every AI coding agent.

Live on Peerlist LaunchpadLive on Peerlist Launchpad

agent-manager on Trendshift agent-manager on Product Hunt

stars clones in the last 14 days latest release
CI status Go package reference licence

five prompts to five fresh agents without moving the cursor, one per CLI, then the blocked one answered and its diff opened

Claude Code, Codex, OpenCode, Grok, Gemini CLI, Pi, Command Code, and Hermes Agent run side by side. Each tool runs in its own persistent tmux session.

agent-manager is a thin layer over the CLIs you already have. Each session launches your own installed tool as-is: your login, your subscription, your config files, your MCP servers, and every feature the tool ships all carry over, exactly as they behave in a plain terminal.

Instead of hunting through terminal tabs to see which agent is done and which is stuck, every session shows up in one list with live status, grouped into a project tree you can fold and reorder. You answer any of them without attaching: space sends a prompt straight into a session's pane, or spawns a new agent in the selected group. A dead session revives on its own conversation with v. And ctrl+r opens a full-file diff of what an agent changed, syntax-highlighted, where the comments you leave on lines go back to the agent's pane as one review prompt when you press C.

Press f on a session to continue its conversation in a separate named fork.

The tools you use alongside agents live in the same list: T opens a shell under the selected agent, or in the selected group, for builds, Git, and one-off commands. An agent can spawn another, send it a message, and wait until it is done: every MCP-capable session carries those tools on launch.

Not here yet: cost tracking and mouse-driven list navigation.

Jump to: Install · Usage · Keys · Diff review · Configuration · Docs site

Supported tools

Status detection supports Claude Code, OpenCode, Codex, Grok Build, Gemini CLI, Pi, Command Code, and Hermes Agent by default. Other CLI tools can run as sessions. Add a [tools.<name>] block to give another tool live status rules (see Configuration).

Install

Runs on macOS and Linux, and on Windows inside WSL2.

Homebrew (macOS / Linux)

brew install yoanwai/tap/agent-manager

Installs tmux with it if missing, and Homebrew runs on git, so both dependencies are covered. The tap ships a cask, so an install from the older formula switches over with brew uninstall agent-manager followed by the command above.

Install script (macOS / Linux)

curl -fsSL https://raw.githubusercontent.com/YoanWai/agent-manager/main/install.sh | sh

Downloads the latest release for your platform, verifies it against the published checksums, and installs it to ~/.local/bin. Then it checks for tmux 3.1+ and git and offers to install whichever is missing through the package manager it finds (Homebrew, apt, dnf, pacman, zypper, or apk), printing the exact command when you decline. Set AGENT_MANAGER_INSTALL_DIR for another directory, AGENT_MANAGER_VERSION to pin a version, and AGENT_MANAGER_INSTALL_DEPS=1 to answer the dependency prompt up front (=0 to skip it).

Arch Linux, mise, go install, prebuilt binaries, Windows (WSL2), dependencies, and updating: docs/install.md.

Usage

agent-manager

Sessions run inside tmux (am_* namespace), so they survive the manager quitting. Inside a session, Ctrl+Q detaches back to the manager when your terminal and tmux leave it available; Ctrl+\ is an alternate under the same rule. Ctrl+R opens the session's diff review and F3 opens its directory in your editor; a [keybindings.session] table in config.toml moves any of them, or hands one back to the agent, and [keybindings.list] moves or turns off any action of the manager's own list, with esc and ctrl+c staying as they are (see Key bindings). In a full-screen attach, the session footer also shows an inner tmux prefix followed by d when configured. When nested inside another tmux, send the inner prefix shown in the footer, then press d. If both tmux servers use the same prefix, invoke the outer tmux's send-prefix binding; if the outer tmux otherwise captures the inner prefix, configure it to forward that key. agent-manager --version prints the version.

Agent sessions live on a private tmux server named agentmgr, so they never mix with the tmux you run yourself and a kill-server on your own socket leaves them alone. To reach one from a plain shell, name that server: tmux -L agentmgr ls, then tmux -L agentmgr attach -t am_<id>.

The full reference, every key, the quick prompt, killing and reviving, diff review, groups, status detection, stats, and themes, lives in docs/usage.md. Tell your agent what you want to review in Agent Manager, and your agent will set it up for you to view in the review panel. You can also tell your agent to manage sessions and terminals in Agent Manager. The short version:

KeyAction
nNew session (name, tool, directory, optional starting prompt, group)
spaceQuick prompt: answer the selected session, or spawn an agent in the selected group
enterFocus the session in place; keys go to the agent while the list stays
/ Step in and out: focuses the session or opens the group, closes the group and, at the start of a focused agent's prompt, comes back to the list. In beta, and Settings can turn the pair off
ctrl+rReview the session's changes as full-file diffs; c comments a line, C sends a numbered review round, and sent comments stay visible as open or handled
x / vKill a session to free its RAM / revive it on its own conversation
RRestart a session on an empty context: same name, group, directory and tool, fresh conversation
sSettings (default tool, theme or follow the OS light/dark mode, list density, review layout, desktop notifications)
?The key map for the current screen; review shows only review bindings

A session can spawn into its own git worktree (<repo>-worktrees/<name>, branch am/<name>), toggled on the n form, with alt+w in the quick prompt, or by default in Settings.

the session tree, with a waiting agent's permission prompt in the preview

review, side by side, with the changed lines tinted in full file context

Configuration (adding your own tools, status rules, revive commands) is in docs/configuration.md.

Development

go run .
env -u TMUX TMUX_TMPDIR=/tmp/amtest go test ./...   # end-to-end tests drive a real tmux server

See CONTRIBUTING.md for the checks CI runs, and AGENTS.md if you point a coding agent at this repo.

Contributing

Bug reports, feature ideas, and pull requests are welcome. See CONTRIBUTING.md for setup and the checks CI runs. Questions and setups worth sharing go in Discussions. Security reports go through a private advisory; see SECURITY.md.

Contributors

Contributors

License

Apache-2.0


agent-manager on Peerlist Launchpad Review agent-manager on Product Hunt

Files in the repo

Repository payload20 top-level entries
  • .github
  • docs
  • internal
  • skills
  • tools
  • .coderabbit.yaml
  • .gitignore
  • .goreleaser.yaml
  • AGENTS.md
  • DESIGN.md
  • go.mod
  • go.sum
  • install.sh
  • LICENSE
  • main_test.go
  • main.go
  • NOTICE
  • PRODUCT.md
  • README.md
  • REVIEW.md

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More tools

JuliusBrussee/
caveman

🪨 why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman

105k
1 add
MemPalace/
mempalace

The best-benchmarked open-source AI memory system. And it's free.

59k
stablyai/
orca

Orca is the ADE for working with a fleet of parallel agents. Run any coding agent with your own subscription. Available on desktop, mobile and remote runtime.

66k

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

132k

Never stop coding. Free MIT AI gateway: one endpoint, 352 providers (150+ free), 1200+ models Kimi, Claude, GPT, Gemini, GLM, DeepSeek, MiniMax. Works with Claude Code, Codex, Cursor, OpenCode, Cline & Copilot. Quota-aware auto-fallback, RTK+Caveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 550+ contributors

64k
headroomlabs-ai/
headroom

Compress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.

71k