herdr
🗒️ herdrdev/herdr — “the runtime your coding agents live on.” A background server that owns the terminals your agents run in, rather than wrapping or replacing the agents themselves. One Rust binary, no Electron. Apache 2.0.
🚀 The problem it fixes: long-running agents die with your terminal, and when you run several you spend your time hunting for the one that stopped and is waiting on an answer.
Links
Description
đź§© What it does:
- Always running — herdr is a background server and the terminals live inside it. Close the lid, drop the network, restart the machine: agents keep working and sessions come back. Reattach from any terminal, or over SSH.
- Never hunt for the stuck one — every pane is marked working, blocked or idle. When an agent stops and needs an answer, herdr says so.
- Agent-native — agents drive herdr through the CLI and socket API: they can spawn panes, prompt each other, and wait until another agent is genuinely blocked. There’s a dedicated agent skill.
- Runs what you already run — Claude Code, Codex, Cursor, OpenCode, Grok and the rest. It doesn’t wrap them; it owns their terminals.
- Keyboard and mouse both first-class — tmux-style prefix keys and click, drag, split. Pick per moment, not per tool.
- Plugins — extend panes and workflows via a marketplace.
Download or use
curl -fsSL https://herdr.dev/install.sh | sh
# or: brew install herdr · mise use -g herdrWindows:
powershell -ExecutionPolicy Bypass -c "irm https://herdr.dev/install.ps1 | iex"There’s a separate path for endpoint-protected Windows — relevant on this machine, where Smart App Control has blocked shims before (see Machine Setup Manifest).
Then start it where the work lives:
herdr # run agents, split panes, walk away
# ctrl+b q detaches; `herdr` reattachesReasoning for
This is the session-persistence layer for multi-agent work, and it’s the piece I keep improvising with terminal tabs. Two properties earn it a note:
- Survives the machine. A long compile-review-fix loop doesn’t die because I closed the laptop or the VPN dropped. That’s the difference between “agents running overnight” being a real workflow and a fantasy.
blockedis a first-class state. The expensive failure in parallel agent work isn’t a crash — it’s an agent that quietly finished 40 minutes ago and has been waiting for a yes/no. Surfacing that per pane is the actual product.
The agent-native angle matters too: agents can spawn their own panes and wait until another agent is genuinely blocked, which is a primitive the orchestration patterns in Swarm Research — Orchestrating Coding Agents currently have to fake.
Sits at the same layer as the harness questions in Harness Engineering — but below the harness: herdr doesn’t care which agent you run, only that its terminal outlives your session.
Alternatives considered
- tmux / screen — the honest baseline, and herdr borrows the prefix-key muscle memory. What tmux doesn’t do is know whether the thing inside a pane is working, blocked or idle, or let an agent drive it as a first-class API.
- Orca — solves an overlapping problem from the GUI end: a desktop/mobile ADE with per-agent git worktrees, diffs and mobile steering. herdr is the terminal-native, headless-friendly, single-binary answer; Orca is the IDE-shaped one.
- Running agents in IDE terminals — zero setup, but nothing survives a restart and nothing tells you which one is waiting.
Resources
- 🔗 Repo: github.com/herdrdev/herdr · herdr.dev
- 🔗 Quick start · Concepts · Supported agents · Session state · Remote
- 🔗 Socket API · Agent skill · Plugins
- 📖 Related: Orca · Harness Engineering · Claude Code · Swarm Research — Orchestrating Coding Agents · Agentic Coding
Template: tool