Herdr

by Herdr, Inc. (seed round led by Bessemer Venture Partners, with Y Combinator)

“The runtime your coding agents live on.” A terminal multiplexer written in Rust that knows which of your coding agents is working, blocked or idle — so you stop cycling through panes to find the one waiting on you.

See https://herdr.dev · source at https://github.com/herdrdev/herdr

Name collision

herdr.org is a different product — a commercial AI-agent-orchestration platform for business workflows (agent routing, workflow memory, human gates, fleet observability). This note is about herdr.dev, the open-source terminal multiplexer. The two are unrelated.

What it is

A plain multiplexer like tmux treats every pane as an opaque terminal. Herdr’s premise is that when the things in those panes are coding agents, the multiplexer should understand what they are doing. It detects the agent running in each pane and rolls a status up to the tab and workspace level, so a sidebar tells you at a glance which agent has stopped and needs an answer.

It is also a background server rather than a foreground process: the terminals live inside it, so you can close the lid, drop the network or restart the machine and sessions come back. Reattach from any terminal or over SSH.

It does not wrap or replace your agents. It owns their terminals and runs whatever CLI you already run.

Supported agents

Per the v0.8.2 docs, automatic detection covered 20 agents (the site later said 22 for v0.9.3), with Gemini CLI and Cline detected but less thoroughly tested; unsupported agents run as ordinary terminal processes without rich state. The per-agent table below was written against v0.8.2 and not re-confirmed (see Open items).

AgentState authority
Pi, Kimi Code CLI, MastraCode, OMPLifecycle hooks when installed
OpenCode, Kilo Code CLILifecycle plugin when installed
Claude Code, Codex, Hermes Agent, Cursor Agent CLI, GitHub Copilot CLI, Devin CLI, Grok CLI, Qwen Code, Qoder CLI, Droid, Antigravity CLI, Amp, Kiro CLI, MakiScreen manifest

How state detection works

Described below per the v0.8.2 docs; not re-confirmed against the current version (see Open items).

Each pane gets exactly one status authority — never two competing sources of truth:

  • Lifecycle hooks — where an agent exposes complete hooks, Herdr trusts those reports for state and session identity, and explicitly does not also run the fallback.
  • Screen manifests — otherwise Herdr identifies the foreground process and evaluates TOML rules against a live snapshot of the bottom of the pane buffer (not the scrolled viewport, so scrolling back does not confuse it). Manifests can also match terminal title and OSC progress sequences as extra evidence.

Blocked detection is deliberately strict. Herdr marks blocked only when the snapshot matches known approval, question or permission UI. If no rule matches for a known agent it falls back to idle and labels that decision default_known_agent_idle_fallback in explain output. Per the docs, a new prompt shape may show as idle until Herdr learns it; the docs describe the failure mode as a wrong label, not Herdr sending input or taking destructive action.

Manifests are bundled in the binary, refreshed from herdr.dev in the background, and overridable locally at ~/.config/herdr/agent-detection/<agent>.toml. Set [update] manifest_check = false to disable remote checks.

For sandbox wrappers that hide the real process, HERDR_AGENT=<agent> tells Herdr which manifest to use — e.g. HERDR_AGENT=claude fence -- claude.

Agent automation

Agents drive Herdr themselves through a CLI and socket API, built on three primitives:

PrimitiveResponsibility
Layout (workspace, tab, pane topology)Create and organize terminal locations
PaneRun commands, send input, read output, wait for output
AgentControl a recognized agent by name or pane and lifecycle state

Commands return JSON so IDs are captured rather than predicted:

created=$(herdr workspace create --cwd ~/project --label api --no-focus)  
pane_id=$(printf '%s\n' "$created" | jq -r '.result.root_pane.pane_id')  
split=$(herdr pane split "$pane_id" --direction right --no-focus)  

One agent can spawn panes for others, prompt them, and wait until another agent is genuinely blocked — which the strict blocked-detection is meant to support. The repo ships a Claude-style skills/herdr/SKILL.md that gates itself behind HERDR_ENV=1 so an agent refuses to drive Herdr from outside a Herdr pane.

Features

  • Session persistence — background server; survives disconnect, lid close and machine restart; reattach over SSH
  • Status rollup — pane status aggregates to tab and workspace
  • Keyboard and mouse both first-class — tmux-style prefix keys and click, drag, split
  • Plugin marketplace — extend panes and workflows (per the site)
  • Single Rust binary, no Electron (per the site) — runs inside whatever terminal you already use
  • Install — curl -fsSL https://herdr.dev/install.sh | sh, brew install herdr, mise use -g herdr, or PowerShell on Windows

Architecture

Rust, built on the Ratatui TUI library (source-file and line counts omitted: not re-checked). Current release: v0.9.3 (2026-09-29, a hotfix for terminal shortcut handling).

The public API’s AgentStatus enum carries five variants — Idle, Working, Blocked, Done, Unknown — though the detection model documented for users centres on idle/working/blocked.

Assessment (opinion)

In the author’s view, Herdr targets the case where several agents run at once and the cost is attention: finding which agent is waiting on you. Whether its blocked-detection is reliable enough for agent-to-agent orchestration was not tested. Likely suited to engineers who run several coding agents concurrently from a terminal; for one agent at a time, plain tmux may suffice.

Caveats

  • Apache-2.0 — confirmed from LICENSE, Cargo.toml and the GitHub API; some secondary write-ups report AGPL-3.0, which conflicts with the repo. No paid tier was seen on the site.
  • Windows is preview/beta, with a separate documented path for endpoint-protected machines.
  • Very young and moving fast — repo created 2026-03-27, still 0.x (v0.9.3 on 2026-09-29), last push 2026-10-01, 287 open issues (point-in-time).
  • Remote manifest updates are on by default, meaning the binary phones herdr.dev for detection rules unless disabled. Worth knowing in restricted environments.
  • Restricted Linux runtimes may need HERDR_PROCESS_DETECTION=child-groups, an explicitly best-effort mode that can mistake a background job for the foreground one.

Licence and company

The software is free and open-source under Apache-2.0 (confirmed in the GitHub API, SPDX Apache-2.0); no paid tier is published (free). Herdr, Inc. announced a USD 6M seed round on 2026-09-08 led by Bessemer Venture Partners, with Y Combinator, e2vc and angels including Tobi Lütke (Shopify), Dane Knecht (Cloudflare CTO) and Görkem Yurtseven (fal), per the company blog. Funds go to runtime performance, stability and scalability, and hiring (Rust, terminals, agents). Some press says it is in YC’s Fall 2026 batch; the blog does not state a batch. Cloud-machine connectivity is “coming soon” per the site.

Adoption (2026-10-05; install and plugin counts are vendor figures from 2026-10-02)

About 42.4k GitHub stars (GitHub API 2026-10-05: 42,435; 41,823 on 2026-10-02), 3.2k forks (2026-10-02), “1,191,376 installs” and “1,445 community plugins” on herdr.dev. Install and plugin counts are vendor claims.

Community ranking

A 2026 community tier list of coding-agent orchestrators reportedly placed Herdr in tier A with the blurb “light terminal tool, no account needed” (second-hand; the list itself was not retrieved, so the placement is unverified). Peers reportedly in the same tier: Emdash, Omnigent, Jean, omp.

Open items

  • Tier-list placement is second-hand and unverified.
  • Detection internals (hooks vs screen manifests, strict blocked detection, HERDR_AGENT, manifest_check), the per-agent state table, Windows beta status and the remote-manifest default were written against the v0.8.2 docs and could not be re-confirmed from the docs pages fetched on 2026-10-02 (overview only). Verified this session: license, version, stars, creation date, seed round.

Sources (accessed 2026-10-02 and 2026-10-05)