--- title: Integrations description: Install Herdr integrations for Pi, Claude Code, Codex, OpenCode, and Hermes Agent. --- Herdr detects supported agents automatically. Integrations make that detection more precise by reporting semantic state directly to Herdr. Use integrations when you want reliable `working`, `blocked`, `idle`, and `done` state from agent hooks or plugins. ## Install integrations ```bash herdr integration install pi herdr integration install claude herdr integration install codex herdr integration install opencode herdr integration install hermes ``` ## Uninstall integrations ```bash herdr integration uninstall pi herdr integration uninstall claude herdr integration uninstall codex herdr integration uninstall opencode herdr integration uninstall hermes ``` ## How Herdr uses integrations Herdr combines three signals: | Signal | Purpose | | --- | --- | | Process detection | Identifies which pane owns which running process. | | Agent integration events | Reports semantic state such as `working` or `blocked`. | | Screen heuristics | Fills gaps when hooks are unavailable or incomplete. | Integrations enrich state reporting. They do not replace process detection. ## Pi Install the Pi integration: ```bash herdr integration install pi ``` Herdr writes the bundled extension to: ```text ~/.pi/agent/extensions/herdr-agent-state.ts ``` If `PI_CODING_AGENT_DIR` is set, Herdr writes to that agent directory instead. ## Claude Code Install the Claude Code hook: ```bash herdr integration install claude ``` The hook reports agent state to the local Herdr socket when Claude Code exposes hook events. ## Codex Install the Codex hook: ```bash herdr integration install codex ``` Codex state is reported through the same local socket API used by other integrations. ## OpenCode Install the OpenCode plugin: ```bash herdr integration install opencode ``` The plugin reports semantic state while OpenCode runs inside a Herdr pane. ## Hermes Agent Install the Hermes Agent plugin: ```bash herdr integration install hermes ``` Herdr writes `~/.hermes/plugins/herdr-agent-state/` and enables `herdr-agent-state` in `~/.hermes/config.yaml`. Restart Hermes after installing so the plugin loads. The plugin reports lifecycle, tool, and approval state while Hermes runs inside a Herdr pane. Native screen heuristics remain available when the plugin is not installed. ## Custom status labels Integrations can report a short visual label without changing the semantic state. For example, an agent can remain semantically `working` while showing `indexing` in the UI. ```bash herdr pane report-agent 1-1 \ --source custom:docs \ --agent docs-bot \ --state working \ --custom-status indexing ``` Custom status is visual-only. Waits, notifications, and workspace rollups still use the semantic state. ## Debug integration state List known agents: ```bash herdr agent list ``` Read a pane when you need to verify what Herdr can see: ```bash herdr pane read 1-1 --source recent --lines 50 ``` If integration state looks wrong, first confirm the agent is running inside Herdr and that the relevant hook or plugin was installed for the same user account.