Ephemeral-AI-Lab/dsh-plugins--plugins-herdr-agent-state ↗★ 47

herdr-agent-state

Report a pane's agent state (working/blocked/idle, labeled with the current tool), session reference and log path, and session display metadata (title, model, context-usage tokens, state labels) to Herdr via its pane socket. Works in any dsh profile — TUIs, web, headless. 适合使用Herdr多面板管理工具、需要监控Harness运行状态的用户。

패키지
herdr-agent-state
호환성
미검증
Harness peer 범위
>=0.1.2-alpha.3
Cordis peer 범위
>=4.0.0
버전
0.1.0
라이선스
MIT
최근 업데이트
2026. 9. 18.

설치

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Ephemeral-AI-Lab/dsh-plugins#cb9ea007a6b41da06b65f9ed9a86e028eee9e60e&path:plugins/herdr-agent-state

Configuration

Configuration reference

FieldTypeDefaultMeaning
agentstring'dsh'The Herdr agent label reported for the pane. Set a frontend's own name (e.g. blue) so Herdr's sidebar groups it under that label.
sourcestring'herdr:dsh-agent-state'Stable, unique integration source. Herdr attributes the pane's lifecycle authority to this source. Keep it constant. Changing it makes Herdr treat the pane as a different authority mid-session.
transport'socket' | 'cli''socket'How to report to Herdr. Only socket is implemented (speaks the pane socket directly). cli is declared but not yet implemented — it throws at load, so don't set it.
reportSessionbooleantrueReport the pane's session reference (agent_session_id) so Herdr can expose it for restore. Set false to suppress session reporting.
title'session' | 'none''session'Which title to publish as the Herdr pane title (display-only metadata). session mirrors the dsh session title — first-prompt fallback, LLM-generated, or pinned by /rename; none disables title reporting.
message'tool' | 'none''tool'Whether to attach a human label to blocked reports. tool sends the tool name / question summary; none sends blocked with no message.
workingMessage'tool' | 'none''tool'Whether to attach the currently-executing tool name to working reports.
tokens'auto' | 'none''auto'Report the model and ctx (context usage used/window) tokens as Herdr Agent-sidebar metadata. none disables.
stateLabels{ idle?, working?, blocked?, done?, unknown? }{}Display text per Herdr state; non-blank entries are sent as pane state labels.
enabledbooleantrueKill-switch. Set false to disable the reporter in this tree — useful to coexist with another reporter.

How to configure it

The plugin is a bundle row labelled herdr-agent-state, so it is inserted automatically when you dsh plugin add. Because its Config schema gives every field a default, you only set what you want to change; the schema fills the rest. A profile's cordis.patch.yml is a top-level YAML array of loader patch entries, so you target the row by id and replace its config:


### Configuration reference

| Field | Type | Default | Meaning |
| --- | --- | --- | --- |
| `agent` | string | `'dsh'` | The Herdr agent label reported for the pane. Set a frontend's own name (e.g. `blue`) so Herdr's sidebar groups it under that label. |
| `source` | string | `'herdr:dsh-agent-state'` | Stable, unique integration source. Herdr attributes the pane's lifecycle authority to this source. **Keep it constant.** Changing it makes Herdr treat the pane as a *different* authority mid-session. |
| `transport` | `'socket'` \| `'cli'` | `'socket'` | How to report to Herdr. Only `socket` is implemented (speaks the pane socket directly). `cli` is declared but not yet implemented — it throws **at load**, so don't set it. |
| `reportSession` | boolean | `true` | Report the pane's session reference (`agent_session_id`) so Herdr can expose it for restore. Set `false` to suppress session reporting. |
| `title` | `'session'` \| `'none'` | `'session'` | Which title to publish as the Herdr pane title (display-only metadata). `session` mirrors the dsh session title — first-prompt fallback, LLM-generated, or pinned by `/rename`; `none` disables title reporting. |
| `message` | `'tool'` \| `'none'` | `'tool'` | Whether to attach a human label to `blocked` reports. `tool` sends the tool name / question summary; `none` sends `blocked` with no message. |
| `workingMessage` | `'tool'` \| `'none'` | `'tool'` | Whether to attach the currently-executing tool name to `working` reports. |
| `tokens` | `'auto'` \| `'none'` | `'auto'` | Report the `model` and `ctx` (context usage `used/window`) tokens as Herdr Agent-sidebar metadata. `none` disables. |
| `stateLabels` | `{ idle?, working?, blocked?, done?, unknown? }` | `{}` | Display text per Herdr state; non-blank entries are sent as pane state labels. |
| `enabled` | boolean | `true` | Kill-switch. Set `false` to disable the reporter in this tree — useful to coexist with another reporter. |