---
title: "How it compares"
description: "agent-manager against herdr, Agent of Empires, agent-deck, Vibe Kanban, claude-squad, plain tmux and the Claude Code tmux managers, feature by feature."
canonical: "https://agent-manager.dev/compare/"
last-updated: "2026-10-07"
section: "Site"
source: "agent-manager"
---

# How it compares

Compare

# Where this one wins, and where it doesn't.

Every cell comes from that project's own docs, including the rows where they beat us.

|  | agent-manager | herdr | Agent of Empires | agent-deck | Vibe Kanban | claude-squad | plain tmux |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Where it lives | terminal | terminal | terminal + browser | terminal + web | browser | terminal | terminal |
| Live agent status | yes | yes | yes | yes | yes | yes | no |
| Status from hook events | yes | yes | yes, on by default | yes, on by default | not documented | pane matching | no |
| New agent in one keypress | yes, `space` or `n` | command or API | `n`, then a dialog | yes, `n` | `ctrl+k`, then `n` | yes, `n` | new-session, by hand |
| Sessions name themselves | yes, the agent renames it | no | yes, from the first turn | yes, from the tool's own name | yes, from the task text | you name it | numbered by default |
| Quick prompt, one keypress from the list | yes, `space` | CLI and socket API | `tab`, keys relayed | yes, `o`, one line | open the workspace first | at creation only | send-keys, by hand |
| Spawn a new agent with the prompt embedded | yes, on a group row | start, then prompt | plugin API only | `launch -m`, or the `n` dialog | yes, per workspace | at creation | no |
| Retarget mid-sentence, bar stays open | yes | no | no | no | no | no | no |
| Paste a clipboard image into the prompt | yes, `ctrl+v` | yes, `alt+v` | yes, in the browser | no | picker and drag | no | no |
| Whole-file diff review | yes | no | hunks, split or unified | no | yes, in the browser | one unified diff | no |
| Line comments back to the agent | yes, in the terminal | no | web, structured sessions | no | yes, in the browser | no | no |
| Resume a dead session | same conversation | snapshot and resume | yes, Claude | yes, `session restart` | not documented | pause, resume | no |
| Folded group keeps per-status counts | yes, any depth | one rolled-up icon | a total count | running and waiting | sidebar groups by status | flat list | no |
| Agent drives the manager over MCP | yes, spawn, message, terminals, review | socket API instead | forwards yours | attaches yours | yes, its own server | no | no |
| Agents declare the files they are editing | yes, advisory leases that expire | worktree isolation only | worktree isolation only | worktree isolation only | worktree isolation only | worktree isolation only | no |
| Worktree creation | yes, `n` / `ctrl+t` | yes | yes | yes, deepest here | yes | yes | no |
| Opens pull requests | no | not documented | not documented | merges locally | yes | yes, `p` pushes | no |
| Mouse and Windows | WSL2, full mouse in the list and the pane | both | mouse, WSL2 only | mouse, WSL2 only | both | mouse, WSL for tmux | mouse only |

## Where each one fits

### plain tmux one or two agents

The honest baseline, and what this is built on. It keeps sessions alive, but it cannot say which agent needs you, because it has no idea what runs inside a pane.

### herdr replace the terminal

Its own Rust runtime instead of tmux, so panes and workspaces are native. Mouse-first, a socket API, a plugin marketplace, and Windows in beta.

### Vibe Kanban work in a browser

A board where each issue gets a workspace, a branch and a terminal, and its diff review sends line comments back to the agent too. The project is [sunsetting](https://www.vibekanban.com/blog/shutdown).

### claude-squad straight to a pull request

Every session gets its own worktree and branch, so parallel agents cannot collide, and `p` commits and pushes it.

### agent-deck worktrees and spend

The deepest worktree support of any of them, monorepo sparse-checkout included, plus a cost dashboard with budgets, session forking and Docker sandboxing.

### Agent of Empires reach your agents from a phone

The same tmux foundation as this one, plus a web dashboard that renders the real terminal in a browser, git worktrees, and Docker sandboxing. Its diff comments are web-only; the TUI diff sends you to `$EDITOR`.

### this one the friction is the problem

One key spawns an agent, one key answers a blocked one, one key opens review mode. Then `C` sends your line comments into that agent's pane. Of the tools on this page, only ccmux also does that in the terminal, through hunk.

## Claude Code session managers for tmux

Search for a tmux manager for Claude Code and most of page one is a picker. A picker is a popup that lists the Claude sessions in your tmux and jumps to one, and several do that well. The difference is what you can do from the list without jumping.

|  | agent-manager | tmux-claude-hatch | claude-tmux | lazyclaude | ccmux |
| --- | --- | --- | --- | --- | --- |
| What it is | a TUI on its own tmux server | a tmux plugin with popups and an fzf picker | a popup TUI | a popup TUI on its own tmux server | a TUI, a CLI and a local daemon |
| Coding CLIs | eleven built in | Claude Code only | Claude Code only | Claude Code only | nine built in, plus your own |
| Live status from | hook events and pane rules | Claude’s own session files | pane text | hook events | hooks, logs and pane text |
| Answer an agent without attaching | yes, `space` | no, it copies the pane target | no | yes, permission popups and `msg send` | yes, `ccmux send` or the preview |
| Finds Claude sessions you started by hand | no, its own sessions only | yes, any pane | yes, any tmux session | no, its own sessions only | yes, any pane |
| Worktrees | yes | no | yes, and pull requests through `gh` | yes | yes, also from a PR or an issue |
| Diff review, comments back to the agent | yes, whole files | no | no | one edit at a time, at approval | yes, through hunk |
| Revive a dead session on its conversation | yes, `v` | no | no | yes, `sessions resume` | restarts while the pane lives |
| Mouse | the list and the pane | the fzf picker | no | the wheel | click and right click |
| Licence | Apache-2.0 | MIT | AGPL-3.0 | MIT | MIT |
| Latest release | v0.40.0, 6 Oct 2026 | v1.5.0, 28 Sep 2026 | v0.4.0, April 2026 | v0.2.0, 13 Apr 2026 | v1.4.2, 21 Sep 2026 |

### tmux-claude-hatch one popup per project

craftzdog’s plugin, formerly tmux-claude-session-manager. It lives in your own tmux through TPM, reads status from Claude Code’s session files with no hooks to install, lists every Claude in any pane, and rings a bell on the window that needs you.

### claude-tmux sessions to a pull request

A Rust popup that lists the tmux sessions running Claude Code, reads their state from the pane, and creates worktrees and pull requests through `gh`.

### lazyclaude approve from anywhere

Permission prompts from every session pop up over whatever you are doing, with the proposed edit as a diff and one key to approve. It also runs a manager and workers in worktrees. Its last release was in April.

### ccmux many agents, found where they run

The closest to this one: several CLIs, worktrees cut from a pull request or an issue, review through hunk whose notes go back as one prompt, and desktop notifications with approve and reply buttons. A daemon on localhost keeps the state.

**Not here yet:** cost tracking and pull requests. The cards above name who has each.
