Published: 2026-07-30

Herdr: A Terminal Multiplexer That Knows Which Agent Is Blocked

Chapters / key moments (click to jump — plays here on the page)

Herdr is a Rust-based terminal multiplexer written for the era of parallel coding agents. tmux splits your terminal into panes; Herdr watches what is running inside each pane and reports which agent is blocked and waiting on you, which is still working, which finished and which is idle. Fahd Mirza installs it on Ubuntu, runs OpenCode and Hermes side by side in one session, and shows the sidebar tracking both — the point being that with three or four agents in flight you want to be paged by the one that needs a decision, not to babysit every window.

Source video

"Herdr: Run Multiple AI Coding Agents in Parallel from Your Terminal" by Fahd MirzaWatch on YouTube →

Key Takeaways

  • State awareness is the whole feature. The sidebar's agent panel lights up as agents run, marking each blocked / working / done / idle. With several agents going, that turns "check every pane" into "go to the one that's waiting."
  • Two ways of knowing what an agent is doing. The explain output makes this visible. For OpenCode, which reports through a lifecycle hook, Herdr says screen detection was skipped and the state is authoritative straight from the agent. For Hermes, with no hook installed, it falls back to reading the live screen buffer against a manifest and a match rule. Hook-based state is exact; screen-scraped state is inference.
  • Per-harness integrations are installed explicitly. Running the integration installer writes hooks into the harness's own config directory. In the demo it errored first because OpenCode's config directory didn't exist yet — launching OpenCode once to create it, then rerunning the install, fixed it.
  • Detach and reattach, including over SSH. Agents keep running when you detach, and you can reattach from any terminal — the presenter notes reattaching from a phone over SSH.
  • Agents can drive it themselves. Herdr exposes a socket API that agents can use to spawn their own panes and wait on each other, which is what makes the author describe it as closer to an early agentic runtime than a terminal tool.
  • Scriptable inventory. From an outside terminal you can list running agents as JSON, and query a specific pane by its workspace/pane identifier to get its current state.
  • Useful for model bake-offs. The presenter points out he can use it for the side-by-side model comparisons he normally does — two harnesses, same task, one screen.
  • Familiar keybindings. Pane splitting and vi-style focus movement follow the tmux/vi conventions, so the muscle memory carries over. Panes can also be renamed, split, zoomed or closed from a right-click menu.

Commands & Code Mentioned

# install is a single line from the project README, then launch:
herdr

# install the per-harness integration (writes hooks into the harness config dir)
herdr integration install opencode
herdr integration install hermes

# keybindings shown
Ctrl-B v      # split the focused pane to the right
Ctrl-B h      # move focus left
Ctrl-B l      # move focus right
Ctrl-Shift-V  # paste

# from another terminal: list running agents as JSON, and inspect one pane
herdr list
herdr explain w1p1

Command names are transcribed from the on-screen session; check the project README for exact subcommand spelling and flags before scripting against them. Panes are addressed by workspace and pane number (w1p1 is workspace 1, pane 1).

Weekly Digest — In Your Inbox

Get the week's top AI agent news, updates, and guides — every Friday.