herdr is a terminal-first runtime for coding agents — a single Rust binary that owns the terminals in which tools such as Claude Code, Codex, Cursor, OpenCode and Grok run, aimed at developers who keep agents working across local and remote machines and want those sessions to survive a lost SSH connection or a closed client.
What it is
herdr is an Apache-2.0 licensed multiplexer for coding agents, written in Rust and distributed as one binary rather than an Electron application. It runs inside whatever terminal you already use, and it does not wrap or replace the agents themselves: it owns their terminals. The project describes itself as "the runtime your coding agents live on", and the topic list places it in the CLI, developer-tools and agent-orchestration space alongside the agents it hosts, including claude-code and codex. Documentation, plugins and configuration live at herdr.dev, and the repository ships AGENTS.md and CONTRIBUTING.md for agents and humans working on the codebase.
The concrete problem is terminal session lifetime. When a client closes or an SSH connection drops, the agent processes attached to that terminal go with it, and work has to be restarted and reconstructed by hand. herdr keeps terminals running in a background server, so the client is a view onto sessions that outlive it. It also addresses the state problem that appears once several agents run at once: instead of hunting through panes for the one that has stopped and is waiting on an answer, every pane is marked working, blocked or idle. It replaces the ad hoc combination of a general-purpose terminal multiplexer plus manual reconnection and layout bookkeeping, and it extends that base with an agent list, pane status and a programmatic control surface.
Key capabilities
- Detach without stopping work:
ctrl+b q detaches the client while the background server keeps the terminals running; running herdr reattaches.
- Layout restore after a server or machine restart, with resumption of supported agent sessions — though the README states plainly that the original processes do not survive.
- Multi-machine views: local work and saved SSH machines appear together with a combined agent list and independent reconnects.
- Pane state marking of working, blocked or idle, so a stalled agent that needs an answer is visible rather than guessed at.
- Agent-native control through the CLI and socket API: agents can spawn panes, prompt each other, and wait until another agent is genuinely blocked.
- Unmodified agent support for Claude Code, Codex, Cursor, OpenCode, Grok and others, with no wrapping layer.
- Keyboard and mouse both first-class, mixing tmux-style prefix keys with click, drag and split; plugins extend panes and workflows through a marketplace.
Who uses it and how
- Developers who run local agents and remote agents over SSH in the same working session, and want one window and one agent list rather than separate terminals per machine.
- Anyone running several agents in parallel panes who needs to spot the blocked one without reading every pane's output.
- Workflows where agents orchestrate other agents, driving herdr through the CLI and socket API to spawn panes, prompt peers and block until a peer is genuinely stuck.
- Long-running agent work over connections that cannot be trusted to stay up, where detaching and reattaching is the normal mode of operation rather than a recovery step.
- Contributors building from source with
cargo build --release and running just test and just check before changes.
Getting started
Install with curl -fsSL https://herdr.dev/install.sh | sh, or through brew install herdr or mise use -g herdr, with a PowerShell installer for Windows and prebuilt binaries in the releases. Start it with herdr where the work lives, run the agents, split panes, and detach when needed.
How it compares
No list of paid products is given in the facts, so the honest comparison is with the tools the README itself names: herdr borrows tmux-style prefix keys and sits in the same multiplexer category, but adds agent-aware pane status, a combined multi-machine agent list and a CLI and socket API that agents can drive. Where a plain terminal multiplexer keeps terminals alive, herdr keeps terminals alive and reports which agent inside them needs attention.
When to use it — and when not to
A self-hoster runs one binary and a background server; no database, object store or SMTP service is mentioned, and installation is a shell script, Homebrew, mise or a Windows PowerShell installer. Do not pick it if the requirement is that agent processes themselves survive a machine restart — herdr restores the saved layout and can resume supported agent sessions, but the original processes are gone, and Windows support is documented as a beta path for endpoint-protected machines. The repository carries 337 open issues and its documentation, plugin marketplace and configuration reference are hosted at herdr.dev rather than in-tree, so the README alone is not a complete operating guide.
project readme (upstream, from github) — read inline
herdr
herdr.dev · install · quick start · docs
English · 简体中文
https://github.com/user-attachments/assets/043ec09f-4bdd-41d5-aee0-8fda6b83e267
the runtime your coding agents live on.
- detach without stopping work — herdr keeps terminals running in a background server when you close the client or lose your SSH connection. after a server or machine restart, herdr restores the saved layout and can resume supported agent sessions; the original processes do not survive. session state →
- several machines, one window — keep local work and saved ssh machines together, with a combined agent list and independent reconnects. remote machines →
- 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. agent skill →
- runs what you already run — claude code, codex, cursor, opencode, grok and the rest. herdr doesn't wrap or replace 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. browse the marketplace →
- one rust binary, no electron — runs in whatever terminal you already use.
install
curl -fsSL https://herdr.dev/install.sh | sh
or brew install herdr · mise use -g herdr · windows: powershell -ExecutionPolicy Bypass -c "irm https://herdr.dev/install.ps1 | iex" · endpoint-protected Windows · binaries
then start it where the work lives:
herdr
run your agents, split panes, walk away. ctrl+b q detaches, herdr reattaches. quick start →
docs
everything lives at herdr.dev/docs: quick start · concepts · supported agents · keyboard · configuration · session state · connecting machines · remote · integrations · plugins · socket api
thanks
every past sponsor and backer is listed in SPONSORS.md — thank you 🐑
enterprise / partnership: [email protected]
agent instructions
if you are an ai agent helping with this repository, read AGENTS.md before making changes and read CONTRIBUTING.md before opening issues or PRs.
development
git clone https://github.com/herdrdev/herdr
cd herdr
cargo build --release
just test # unit tests
just check # formatting, tests, and maintenance checks
license
Herdr is licensed under the Apache License 2.0.