Herdr is tmux rebuilt around the fact that the thing in the terminal is now an agent, not a person. It runs as a background server that owns the terminals, so an agent keeps working when you close the laptop, lose the network, or restart the machine. Every pane carries a status: working, blocked, or idle. And agents can drive Herdr themselves through the same CLI and socket API you use, which means one agent can spawn a pane, prompt another, and wait until that one is genuinely stuck.


| Made by | Herdr, Inc., backed by Y Combinator |
| Language | Rust, one binary, no Electron |
| Licence | Apache-2.0 |
| Platforms | macOS, Linux, Windows |
| Created | 27th March 2026 |
| Current version | v0.8.2, 19th August 2026, plus daily preview builds |
| Traction | 33,261 stars, 2,413 forks, 256 open issues |
The four claims
- Always running. The server holds the terminals, not your shell. Detach with
ctrl+b q, reattach by typingherdr, from the same machine or over SSH. - Never hunt for the stuck one. Panes are marked working, blocked or idle, so a run that is waiting on a question announces itself instead of sitting silent behind three other tabs.
- Agent-native. Agents spawn panes, prompt each other and block on each other through the socket API. There is an agent skill so the agent knows how to use it.
- Runs what you already run. It owns the terminal of an existing agent CLI rather than wrapping or replacing it.
Keyboard and mouse are both first-class: tmux-style prefix keys, and click, drag and split. The prefix is ctrl+b, so tmux muscle memory carries over.
The DHH connection
This is not a loose association. Omarchy ships Herdr as a bundled tool with its own hotkeys. In DHH's distribution, Super + Ctrl + Return launches Herdr and it is labelled "agent manager", while Super + Ctrl + K shows the Herdr bindings, sitting alongside Super + K for the main bindings and Super + Alt + K for tmux.
Three key combinations reserved for one third-party tool is a strong statement in a distribution whose whole premise is opinionated defaults.
Supported agents
The site claims 21 agent CLIs. The documentation names these:
| Anthropic and friends | Claude Code, Codex, Cursor Agent CLI, GitHub Copilot CLI, Amp |
| Model vendors | Grok CLI, Qwen Code, Kimi Code CLI, Antigravity CLI |
| Agent products | Devin CLI, Droid, OpenCode, Kilo Code CLI, Qoder CLI, MastraCode, Kiro CLI, Hermes Agent |
| Others | Pi, OMP |
Status detection works two ways, and the difference matters. Where an agent exposes lifecycle hooks, Herdr uses them and the status is reliable. Where it does not, Herdr falls back to a screen manifest, meaning it reads the terminal output and pattern-matches. That second path is a heuristic, and it will drift when an agent changes how it prints.
Install and run
curl -fsSL https://herdr.dev/install.sh | sh
# or
brew install herdr
# or
mise use -g herdr
Then start it where the work lives:
herdr
Run your agents, split panes, walk away. ctrl+b q detaches; herdr brings it back. There is a Homebrew formula, a Windows PowerShell installer, and prebuilt binaries on the releases page. A plugin marketplace extends panes and workflows.
The 6-minute version
If you want the whole thing demonstrated rather than described, Jilles covers it end to end in 6 minutes and 37 seconds. Published 29th June 2026, 115,000 views.

Setup is 3 steps, not 1
Installing the binary is the easy part. He flags 2 things to do before Herdr behaves as advertised:
- Add the integrations. In the quick start, under Integrations, enable one per agent CLI you actually use. Without this the status detection has nothing good to work with.
- Install the agent skill globally.
npx skills add <repo>, select every coding agent, and choose the global install so all sessions can use Herdr, not just the project you happened to be in.
The 4 concepts
The interface is 4 nested ideas, and he introduces them in this order:
| Concept | What it holds |
|---|---|
| Workspace | One project. ctrl+b shift+N, or just click new |
| Agent | A running agent CLI inside a workspace, with its state badge |
| Tab | A second agent or shell in the same workspace |
| Pane | A split for the things that are not agents, like a dev server |
Splits are prefix plus - for horizontal and the vertical equivalent, ctrl+b x to close. ctrl+b ? lists everything.
Mouse support is the practical difference from tmux, and he says so directly. Click to create a workspace, click to close a pane, click to cycle between agents. The keyboard bindings are all still there; you just are not forced into them.
The states, in use
He runs 3 agents across 2 workspaces: Pi and Claude Code in one, Pi in the other. Then he gives each one work and lets the badges do their job.
- One goes working.
- One goes blocked, and clicking it shows why: the agent is waiting on a permission prompt. He answers it, then flips that agent to auto mode so it stops asking.
- One fires an audible done notification while he is looking at a different workspace.
That is the entire pitch demonstrated in about 40 seconds, and it is more convincing than the feature list.
Closing the window proves the point
He closes the whole terminal window. Everything appears to be gone. He types herdr and all 3 agents, both workspaces, the tabs and the dev server come back exactly as they were.
The sub-agent demo
The best part, and the bit that changed my mind slightly. Pi has no sub-agents natively. With the Herdr skill installed, he asks Pi to spawn 2 Herdr panes with an agent in each, one costing out a migration to Python, the other to Rust.
Pi loads the skill, spawns both panes, and the 2 child agents work in parallel for about a minute. Then the parent agent reads both panes and answers which migration is less work.
So the skill does not just let an agent open panes. It gives sub-agent capability to an agent that does not have it, and lets the parent collect the results. That is a concrete use, not an abstraction.
Named sessions
Not covered anywhere else in this note, and useful. The session you get by default is called default. herdr session attach work gives you a separate one with its own workspaces and agents. Detach, type herdr, and you are back in default with nothing lost. He keeps work and personal projects apart this way.
What this changes for me
2 things.
- The agent skill is a global install, not a per-project one. I had read it as something you add where you need it. Installing it once for every agent is the right default.
- My scepticism about agent-to-agent was too broad. The parent-spawns-children-then-reads-their-panes pattern is legible: you can watch both panes, and the synthesis step is a normal agent turn. It is the open-ended version I still want to leave alone.
The status detection also just worked for Pi and Claude Code throughout the video, which is a small point in favour against the screen-manifest caveat.
The crash course
Alejandro AO, a developer advocate at Hugging Face, published a 17-minute walkthrough on 27th August 2026. His framing is worth repeating because it says something about the pace of the project: "I tried it first 2 months ago, didn't like it. Tried it again 10 days ago, I love it and can't stop using it."


Fourteen chapters, and four things in it are not obvious from the documentation.
Notifications are off by default. The whole selling point is being told when an agent is blocked, and out of the box it will not tell you. Open settings with ctrl+b s and turn them on, then pick where they land: a toast inside Herdr, a terminal notification, or a system notification.
--remote is the flag that matters. Installing Herdr on a VPS and running it over SSH works, but the interface renders on the server and streams back, so it feels laggy. Instead:
herdr --remote <ssh-identity> # UI runs locally, processes run on the box
herdr session list # see sessions across machines
herdr remote <name> # reconnect to one
The interface stays on your machine while every process runs on the remote host. First connection offers to install Herdr there for you. Turn your computer off and the work continues.
The prefix key is not an inconvenience, it is the design. Without it the multiplexer cannot tell its own shortcuts from the agent's, and ctrl+d would close your coding agent rather than a pane. ctrl+b ? lists every binding, which is the only one to memorise.
The agent skill is official. Herdr exposes its API through the CLI, so teaching an agent to spawn workspaces, tabs and panes is a matter of installing the skill from the docs, either through npx skills or by copying it into your skills directory.
He also demonstrates Tau, his own agent with local model support through llama.cpp. That part is his project rather than Herdr's, so treat it as a plug rather than a recommendation.
Where it fits for me
I run Claude Code sessions constantly, and the two problems Herdr names are both real. Long runs die when the machine sleeps. And when several sessions are open, the one that stopped to ask a question is invisible until I go looking. A pane that flags itself as blocked fixes the second problem outright.
The persistence argument gets stronger with a second machine, and --remote is what makes it practical. If the Mini ends up running Omarchy headless, herdr --remote from the Studio puts the interface on my desk while every process runs on the Mini. Turn the Studio off and the work continues. That is the same thread as the remote-console question, and for driving agents it is a better answer than a KVM: no video capture, no 4K@30 ceiling, just the processes where they belong.
The agent-to-agent part I am less sure about. Agents prompting agents and waiting on each other is a real orchestration primitive, but it is also the point where a run stops being something you can follow. I would use the multiplexer first and leave that alone until the rest is habit.
Caveats
- Pre-1.0 with 256 open issues. v0.8.2, and preview builds ship most days. Fast movement is good, and it also means the surface changes under you.
- Screen-scraped status is fragile. For any agent without lifecycle hooks, the working/blocked/idle badge depends on parsing output that the agent's authors are free to change.
curl | shinstall. Read the script or take the Homebrew route.- The business model is not public. Apache-2.0 today, a Y Combinator company behind it, and an enterprise contact address. Nothing wrong with that, but the licence is the only guarantee you have about what stays free.
- It is another layer under your agents. When something hangs, you now have the agent, the terminal, and Herdr between you and the answer.
Further reading

