tmux keeps terminals alive; so does Herdr. The difference is Herdr knows which terminals are agents, what state each one is in, and how to wait on them. tmux sees panes.
Apps manage the herd. Herdr runs it.
Most tools Herdr gets compared to are apps: a window you open to manage coding agents, and a window the work depends on. Herdr is a different kind of thing: a runtime. A server holds real terminals open on the machine, the agents live in those, and every UI, ours included, is just a client that attaches. Keep that split in mind and the matrix below mostly explains itself.
| capability | herdr | tmux · zellij | cmux · warp | solo | conductor · emdash · superset |
|---|---|---|---|---|---|
| Kind of thing | runtime + clients | terminal multiplexer | terminal app | process dashboard | manager app |
| Work survives its own UI closing | yes, the server owns the terminals | yes, detach | session restore | while the app is open | while the app is open |
| Runs inside your existing terminal | yes | yes | replaces it | no, desktop app | no, desktop app |
| Semantic agent state | blocked · working · done · idle | — | attention cues | process status | workspace status |
| Detach, reattach, SSH in | yes, any tty | yes | partial | — | remote projects |
| Direct attach to one agent | yes | — | — | — | — |
| API agents drive themselves | read · send · wait · split · attach | terminal scripting | app APIs | MCP for processes | workflow APIs |
| Worktree and diff review flow | pairs with it | — | partial | — | yes, their core |
| Clients on the same runtime | TUI · CLI · plain SSH, more coming | its own client | the app only | the app only | the app only |
The columns are categories, not enemies: Herdr pairs happily with a worktree manager and runs fine inside a fancy terminal. The row that sorts the field is the second one: what happens to the agents when the thing you're looking at goes away.
Herdr is the runtime.
A server owns the terminals; every UI is a client of it. The TUI in the screenshots attaches, detaches and even crashes without the agents noticing. Same for the CLI, plain SSH, and whatever attaches next. The TUI is the first client, not the last.
Multiplexers persist terminals, not agents.
tmux gave humans persistence, and Herdr keeps that whole inheritance: real PTYs, detach, SSH. What it adds is the part multiplexers never had: knowing which pane is an agent, whether it's blocked, and how to wait on it instead of polling it.
Terminal apps replace your terminal.
cmux and Warp can be genuinely polished, but the deal is that the work moves into their window, with their renderer, on the machines they support. Herdr changes nothing about your terminal. It runs inside it, wherever a terminal and SSH already reach.
Manager apps are clients without a runtime.
Conductor, Emdash and Superset manage a herd from a window: worktrees, diffs, review queues. Useful, and Herdr pairs fine with that flow. But a window that manages agents is not a place agents live: quit the app and the herd goes with it.
Dashboards watch processes.
Solo supervises a dev stack: health, restarts, logs. Herdr's job is different: interactive agent terminals that stay open, hold scrollback and state, and stay yours whether or not anything is watching them.
Zellij is a friendlier workspace for humans in terminals. Herdr is a runtime for agents in terminals: state, waits, direct attach, and an API.
cmux is a Mac terminal app built around agents. Herdr isn't an app: it's the runtime underneath, in whatever terminal you already use, reachable over SSH.
Warp wants to be your terminal and your platform. Herdr keeps your terminal and owns what runs inside it.
opencode's web mode serves one agent over HTTP. Herdr runs the whole herd: any agent CLI, many at once, from any tty.
Solo is a dashboard that supervises your dev processes. Herdr holds interactive agent terminals open whether or not anything is watching them.
Manager apps put worktrees, diffs and review queues in a window. Herdr is the layer under that kind of window: quit their app and the agents stop; detach every Herdr client and they don't.
A runtime, not another window.
Install it and nothing about your setup changes: same terminal, same agent CLIs. They just stop dying when a window does.