Herdr
Herdr
https://herdr.dev/docs/
https://github.com/ogulcancelik/herdr
One terminal for the whole herd: real panes, persistent sessions, SSH attach, state awareness, and CLI/socket orchestration.
agent multiplexer that lives in your terminal.
workspaces, tabs, panes. mouse-native: click, drag, split. every agent at a glance: blocked, working, done. detach and reattach, agents keep running. no gui app, no electron, no mac-only native wrapper. you see the agent's own terminal, not someone's interpretation of it.
| tmux | gui managers | herdr | |
|---|---|---|---|
| persistent sessions | ✓ | — | ✓ |
| detach / reattach | ✓ | — | ✓ |
| 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. gui managers show agent state, but they make you leave your terminal and use their wrapped view. herdr is persistence and awareness in one tool that stays out of your way.
start herdr where the work lives. locally, run herdr. it starts or attaches to the background session automatically, with no socket setup. run your agents, split panes, do your work. press ctrl+b q to detach. close your terminal, close your laptop; your agents keep running. open a new terminal, run herdr, you're back. same session, same panes, same agents.
need to check on your agents from your phone? just ssh in and run herdr. your shell is remote, herdr runs there, and the panes keep running there after detach. any ssh client works. no app to download, no account to create.
ssh you@yourserver
herdr
or attach from your local terminal through ssh without opening a shell first. your local herdr acts as a thin client, connects over ssh, starts or attaches to the remote herdr server, and streams the ui back to your terminal.
herdr --remote workbox
herdr --remote ssh://you@yourserver:2222
for repeat targets, use your ssh config:
Host workbox
HostName yourserver
User you
Port 2222
same session, same agents, same state.
herdr and herdr --remote attach to the full Herdr session UI. herdr agent attach <target> attaches your current terminal directly to one server-owned terminal, like a single-pane terminal attach. herdr terminal attach <terminal_id> does the same by terminal id.
Direct attach streams the current rendered terminal state first, then live ANSI frames. Your input goes straight to that terminal. Detach with ctrl+b q; send a literal ctrl+b with ctrl+b ctrl+b. One writable client owns input and resize for a terminal. A second attach fails unless you pass --takeover.
the sidebar shows which agents are blocked, working, or done. workspaces roll up to their most urgent state so you can scan the full list at a glance.
states:
- 🔴 blocked — agent needs input or approval
- 🟡 working — agent is actively running
- 🔵 done — work finished, you have not looked at it yet
- 🟢 idle — done and seen
detection works by reading foreground process and terminal output. zero config, no hooks required. for agents that expose hooks, the socket api integration gives more robust state reporting.
not a gui window, not a web dashboard, not electron. herdr runs inside whatever terminal you already use. single rust binary, no dependencies. works inside tmux.
- workspaces — organized around git repos or folder names, each with its own tabs and panes
- tabs — first-class in the socket api and cli
- mouse-native — click panes/tabs/workspaces/agents, drag borders, select text to copy, right-click menus; not keyboard-only
- notifications — sounds and toasts for background events; tab-aware suppression
- 18 built-in themes — catppuccin, terminal, tokyo night, gruvbox, one, solarized, kanagawa, rosé pine, vesper, and light variants for the main palettes
- session persistence — pane processes survive client detach; sessions restore after full restart

浙公网安备 33010602011771号