Orchestrate multiple AI coding agents in parallel sessions
Terminal manager that runs, monitors, and reviews diffs from many AI coding agent sessions in one tmux-backed list.
0.36.0Add to Favorites
Why it matters
Manage and coordinate multiple AI coding agents simultaneously across different projects and tasks, enabling developers to run Claude Code, Codex, OpenCode, Grok, Gemini CLI, and other coding assistants side-by-side with live status tracking, unified diff review, and seamless context switching without losing conversation history.
Outcomes
What it gets done
Launch and monitor multiple AI coding agent sessions with live status detection showing which agents are working, waiting, or blocked
Send prompts to any agent session without attaching, spawn new agents in project groups, and revive dead sessions on their original conversation
Review full-file diffs with syntax highlighting and send line-by-line comments back to agents as consolidated review prompts
Fork agent conversations into named branches, spawn agents from other agents via MCP tools, and organize sessions in a foldable project tree
Source
Get it from source
Spark does not host a copy of it.
Open sourceReports
Agent outcome reports
No reports yet
Capabilities
Tools your agent gets
Rename a session with a short name for the feature being worked on.
Declare the git repository path that a session is working in for diff review.
Declare the git branch reference that a session's diffs should be compared against.
Overview
Agent Manager
agent-manager runs Claude Code, Codex, OpenCode, and other coding-agent CLIs in persistent tmux sessions, showing live status in one list and letting you answer blocked agents or review their changes as full-file diffs. Use it when running several coding-agent CLI sessions in parallel and needing one dashboard for status, prompting, and diff review.
What it does
agent-manager is a thin layer over the CLI coding agents you already have - Claude Code, Codex, OpenCode, Grok, Gemini CLI, Pi, Command Code, and Hermes Agent run side by side, each in its own persistent tmux session. Every session shows up in one list with live status, grouped into a foldable, reorderable project tree, instead of hunting through terminal tabs to see which agent is done and which is stuck. Pressing space sends a prompt straight into a session's pane without attaching to it, or spawns a new agent in the selected group; a dead session revives on its own conversation with v; ctrl+r opens a full-file, syntax-highlighted diff of what an agent changed, and comments left on lines go back to the agent as one review prompt when you press C. Each session launches your own installed tool as-is - your login, subscription, config files, and MCP servers all carry over exactly as they behave in a plain terminal.
When to use - and when NOT to
Use it when you are running several coding-agent CLIs at once across different projects or tasks and need one place to see status, answer blocked agents, and review diffs without switching terminal tabs. It also fits letting one agent spawn another, message it, and wait for it to finish, since every MCP-capable session carries those tools on launch. It is not a fit if you need cost tracking across sessions or mouse-driven list navigation - the project states both are not implemented yet - and it does not replace the underlying CLI tools themselves; it only manages and reviews sessions running them.
Inputs and outputs
brew install yoanwai/tap/agent-manager
An install script (curl -fsSL https://raw.githubusercontent.com/YoanWai/agent-manager/main/install.sh | sh) is also available, downloading the latest release, verifying checksums, and installing to ~/.local/bin, with environment variables to pin a version or install directory. Runs on macOS and Linux, and on Windows inside WSL2. Launch with agent-manager; sessions run inside tmux under the am_* namespace on a private tmux server named agentmgr so they never mix with your own tmux sessions. Key bindings include n (new session), space (quick prompt), enter (focus a session), ctrl+r (diff review), x/v (kill/revive a session), R (restart on empty context), and f (continue a conversation in a separate named fork). A session can spawn into its own git worktree with a dedicated branch.
Integrations
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, and a [tools.<name>] config block adds live status rules for additional tools. T opens a shell under a selected agent or group for builds, Git, and one-off commands, in the same session list. Licensed under Apache-2.0.
Who it's for
Developers running multiple AI coding-agent CLIs in parallel across projects who want one dashboard for status, prompting, and diff review instead of managing separate terminal tabs by hand.
Source README
The fastest workflow for every AI coding agent.
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:
| Key | Action |
|---|---|
n |
New session (name, tool, directory, optional starting prompt, group) |
space |
Quick prompt: answer the selected session, or spawn an agent in the selected group |
enter |
Focus 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+r |
Review 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 / v |
Kill a session to free its RAM / revive it on its own conversation |
R |
Restart a session on an empty context: same name, group, directory and tool, fresh conversation |
s |
Settings (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.
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.
FAQ
Common questions
Discussion
Questions & comments · 0
Sign In Sign in to leave a comment.