herdr is an open-source runtime written in Rust by the vendor Herdr, Inc. on which several AI coding agents run at once, each in a real terminal session. Rather than replacing agents such as Claude Code, Codex or Pi, herdr, per its own documentation, “owns” their terminals: it keeps panes alive, automatically detects whether an agent is working, blocked or waiting, and provides a CLI plus a local socket API through which agents can control each other. As an AI harness, herdr covers mainly the orchestration building block – model access and tools stay with whichever agent is started. As of 20 September 2026.
What is herdr?
herdr is developed by Herdr, Inc. and published as open-source software under the Apache-2.0 licence on GitHub (herdrdev/herdr); according to the release history, the first release v0.1.0 shipped in March 2026, with v0.9.1 current as of 16 September 2026. On Linux and macOS, herdr is installed with curl -fsSL https://herdr.dev/install.sh | sh or brew install herdr, and on Windows via install.ps1; running herdr in a project directory then starts both the server and the terminal UI. herdr runs natively on Linux, macOS and Windows (the latter documented as beta) and can be extended over SSH to remote machines (herdr --remote <name>) without storing its own credentials – authentication stays with OpenSSH.
herdr as an AI harness
herdr organises work into workspaces, tabs and panes: a workspace bundles a project, tabs separate views such as agents or logs, and each pane is a real terminal process. Exactly one “state authority” determines each pane’s status – either a lifecycle hook or plugin from the agent, or, without a full integration, a screen manifest that evaluates the visible terminal output. herdr detects blocked states deliberately strictly, matching only known approval screens; unfamiliar prompt layouts initially fall back to idle. For orchestration, herdr provides a CLI (agent start, agent prompt, agent wait, agent read, agent send-keys) and a JSON socket API; the Agent Skill, installed via npx skills add herdrdev/herdr --skill herdr -g, uses the same interface so an agent can inspect neighbouring panes, start further agents, and wait for their “blocked” state – guarded by HERDR_ENV=1. A plugin system with a herdr-plugin.toml manifest allows additional panes, actions and event hooks in Bash, JavaScript, Lua or Rust.
Models and model access
herdr never calls a language model itself and is therefore model-agnostic: it only starts the chosen coding agent in a pane, and that agent decides on its own model, provider and access path. Whether the model access of an agent running inside herdr can be routed through a central proxy such as innFactory’s AI Gateway therefore depends entirely on that agent – for example when Claude Code or Codex run in a herdr pane and themselves support a configurable endpoint.
Enterprise use: data protection and governance
Per the session-state documentation, herdr stores workspace, tab, pane and layout state locally in session.json; the optional, disabled-by-default pane-history log deliberately holds no secrets, since terminal output can contain tokens or credentials. herdr checks for updated detection manifests from herdr.dev in the background, which can be disabled via manifest_check = false in config.toml. herdr does not document its own SSO or admin-policy management – SSH access to remote machines runs entirely through existing OpenSSH configuration, and herdr stores no passwords or keys. Independently of herdr: source code and prompts handled by a coding agent running in a pane go to that agent’s chosen model provider, which belongs in the record of processing activities beforehand.
Which agents does herdr support?
Per the documentation, automatic detection works out of the box for the following agents. “State authority” shows how herdr determines idle/working/blocked; “Integration” shows the depth of session support:
| Agent | State authority | Integration |
|---|---|---|
| Pi | Lifecycle hooks when installed, otherwise screen manifest | State and session |
| OMP | Lifecycle hooks when installed | State and session |
| GitHub Copilot CLI | Screen manifest | Session |
| Devin CLI | Screen manifest | Session |
| Kimi Code CLI | Lifecycle hooks when installed, otherwise screen manifest | State and session |
| Hermes Agent | Screen manifest | Session |
| Qoder CLI | Screen manifest | Session |
| Qwen Code | Screen manifest | Session |
| Letta Code | Screen manifest | Session |
| Droid | Screen manifest | Session |
| OpenCode | Lifecycle plugin when installed, otherwise screen manifest | State and session |
| Kilo Code CLI | Lifecycle plugin when installed, otherwise screen manifest | State and session |
| MastraCode | Lifecycle hooks when installed | State and session |
| Claude Code | Screen manifest | Session |
| Codex | Screen manifest | Session |
| Cursor Agent CLI | Screen manifest | Session |
| Amp | Screen manifest | None |
| Grok CLI | Screen manifest | Session |
| Antigravity CLI | Screen manifest | Session |
| Kiro CLI | Screen manifest | None |
| Maki | Screen manifest | None |
| Muse | Screen manifest | None |
| Gemini CLI | Screen manifest (detected, documented as less thoroughly tested) | Not documented |
| Cline | Screen manifest (detected, documented as less thoroughly tested) | Not documented |
Agents not on this list still run as ordinary terminal processes without automatic rich state.
Where it fits: developer harness and enterprise harness
herdr targets developers who run several coding harnesses such as Claude Code or Codex side by side in the terminal. For business users outside development, CompanyGPT is the matching harness – tools through MCP servers, context through companyRAG, roles from Entra ID or Keycloak. A shared cost and governance layer across all model access is provided by the AI Gateway; an overview of further harnesses is available on our AI harness overview. We help organisations roll out herdr, the coding agents running inside it, and their model access in a governance-compliant way.
