herdr (GitHub Repo)
herdr is a terminal-based agent multiplexer that lets developers monitor, manage, and persist multiple AI agent sessions across servers.
Deep dive
- The multiplexer is a ~10MB binary requiring no electron or GUI dependencies.
- Uses a background server to ensure sessions persist through network drops or local restarts.
- Includes a socket API, allowing agents to self-manage workspaces and read their own output state.
- Supports native integrations with agents like Cline, Cursor, and DevIn to report semantic status labels.
- Works over SSH, preserving terminal interactivity (like image rendering) where standard tmux fails.
Decoder
- Multiplexer: A tool that allows multiple terminal sessions to be run and managed within a single terminal window or across a persistent background process.
- TUI (Terminal User Interface): A program that provides a graphical interface within the text-based terminal environment.
Original article
run all your coding agents in one terminal. see who's blocked, working, or done at a glance.
run your agents where they already run; your machine, a server, anywhere you can ssh. each one gets its own real terminal, not an app's imitation of one, so even full-screen TUIs render right. click, drag, and split panes into workspaces and tabs, and watch each agent go blocked, working, done. close the laptop and nothing dies; reattach from another terminal, or from your phone over ssh. one local rust binary, not an app: no gui, no electron, no mac-only wrapper, no account, no telemetry. (if you've used tmux: it's that, rebuilt for agents.)
what you get
- a real terminal per agent. you see each agent's own screen, not an app's imitation of one, so even full-screen TUIs render right.
- agent state at a glance. the sidebar rolls every agent up to π΄ blocked, π‘ working, π΅ done, or π’ idle, so you always know who needs you. zero config, no hooks required.
- workspaces, tabs, panes. organize by repo or folder, click, drag, and split, mouse-native throughout.
- nothing dies on detach. a background server keeps panes and agents alive; detach and reattach from any terminal, including your phone over ssh.
- runs anywhere. single ~10MB rust binary, linux and macos (windows beta), no dependencies, runs inside the terminal you already use.
- scriptable. a local socket api and cli that agents can drive, plus plugins you can write in any language.
how it compares
| tmux | gui managers | herdr | |
|---|---|---|---|
| persistent sessions | β | β | β |
| detach / reattach | β | β | β |
| runs anywhere, over ssh | β | β | β |
| panes, tabs, workspaces | β | β | β |
| agent awareness | β | β | β |
| lives in your terminal | β | β | β |
| real terminal views | β | β | β |
| mouse-native | β | β | β |
| lightweight binary | β | β | β |
| agents can orchestrate | ? | ? | β |
tmux gives you persistence and panes, but it was built before agents existed. it has no idea which pane is blocked, working, or done; you can bolt a bell character and per-harness hooks onto it, but you wire each one yourself and still have no shared view of the fleet. the gui agent managers (conductor, cmux, emdash) do show agent state, so call that table stakes. the difference is everything around it. they are apps, often mac-only and closed, that redraw the terminal inside a wrapper. herdr is a single binary that runs in the terminal you already use, anywhere you can ssh, and shows each agent's real screen on a server that keeps it alive when you disconnect.
install
curl -fsSL https://herdr.dev/install.sh | sh
windows preview beta:
powershell -ExecutionPolicy Bypass -c "irm https://herdr.dev/install.ps1 | iex"
also available with brew install herdr, mise use -g herdr, nix run github:ogulcancelik/herdr, or as a stable Linux/macOS binary from releases.
quick start
herdr
herdr starts or attaches to a background server and opens a workspace. run an agent in the pane.
herdr is mouse-native, so clicking and dragging panes, tabs, and split borders gets you everywhere without a single keybinding. for the keyboard, ctrl+b is the prefix: press it, release, then press the action key, so ctrl+b then c makes a tab. one reserved key keeps herdr out of your shell's way.
ctrl+bthenshift+nfor a new workspacectrl+bthenvorminusto split panesctrl+bthencfor a new tabctrl+bthenwto switch workspacesctrl+bthenqto detach; agents keep running, runherdragain to reattach
remote
run herdr on a VPS and reach it from your local terminal. herdr --remote makes your local terminal the client of the remote server, so pasting images into your agents keeps working, the thing plain ssh + tmux breaks.
herdr --remote workbox
herdr --remote ssh://you@yourserver:2222
supported agents
detection works out of the box with process-name matching plus terminal-output heuristics.
| agent | idle / done | working | blocked |
|---|---|---|---|
| pi | β | β | partial |
| claude code | β | β | β |
| codex | β | β | β |
| droid | β | β | β |
| amp | β | β | β |
| opencode | β | β | β |
| grok cli | β | β | β |
| hermes agent | β | β | β |
| kilo code cli | β | β | β |
| devin cli | β | β | β |
| cursor agent | β | β | β |
| antigravity cli | β | β | β |
| kimi code cli | β | β | β |
| github copilot cli | β | β | β |
| qodercli | β | β | β |
| kiro cli | β | β | β |
agents can use herdr too
the local Unix socket lets agents create workspaces, split or zoom panes, spawn helpers, read output, and subscribe to state changes instead of polling.
npx skills add ogulcancelik/herdr --skill herdr -g
license
Herdr is dual-licensed:
- Open source: GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later).
- Commercial: commercial licenses are available for organizations that cannot comply with AGPL.
Fresh dev news, AI-digested daily. Never miss a trend at devoured.fyi