Update · Hermes plugin

DashClaw now ships a Hermes plugin

One install script. Eight lifecycle hooks. Per-turn governance context injection so the model knows what is pending and what is policied. Recognized credential patterns in tool output are replaced before the model receives the hook result. Live session ingest so /code-sessions shows turn-by-turn token counts as the agent runs, not after.

Why Hermes gets a richer surface

Claude Code and Codex expose three lifecycle events DashClaw cares about: pre_tool_call, post_tool_call, stop. Useful, but coarse. Hermes Agent exposes eight, and four of them unlock workflows the others cannot: pre_llm_call (inject context every turn), post_llm_call (live ingest), transform_tool_result (redact secrets before the model sees them), and subagent_stop (record reported delegate_task children for ROI tracking). The existing Claude Code Python hooks still run unchanged for the pre/post tool path; Hermes shares the same stdin JSON shape.

The four new capabilities

  1. Per-turn governance context. pre_llm_call injects active policies, pending approvals, and today's action count via Hermes's context-injection contract. Each observed turn receives the governance state available to the hook, so the model knows what governance state it is in. Cached for 5 minutes so the hot path stays cheap.
  2. Live session ingest. post_llm_call pushes turn structure to /api/code-sessions/ingest-live for each reported turn. No more waiting for a Stop hook to flush a transcript: token costs and tool calls land in /code-sessions as the agent runs.
  3. Secret redaction. transform_tool_result substitutes Anthropic / OpenAI / AWS / GitHub / Slack / Stripe API keys, JWTs, PEM private-key blocks, and DashClaw keys themselves in tool output before the model sees them. Never blocks; just substitutes. The model gets a redacted string with a token-shaped placeholder.
  4. Subagent ROI. Each reported delegate_task child exits through subagent_stop, which records a DashClaw action with action_type=subagent and the child's outcome. Powers the subagent-ROI dashboard: which delegated tasks paid off vs. burned tokens without making progress.

What stays the same

  • · Same /decisions ledger. Hermes actions land alongside Claude Code and Codex with agent_id = "hermes".
  • · Same Discord and Telegram approval bridges.
  • · Same dashclaw_wait_for_approval MCP tool: when Hermes calls it and honors the result, it waits on the same server-side approval decision as Claude Code and Codex.
  • · Same policy packs. No Hermes-specific policies to write.
  • · The dashclaw-governance skill is mirrored into the Hermes plugin from the same canonical source used by the Claude Code and global skill installs.

Try it

# macOS / Linux
bash scripts/install-hermes-plugin.sh

# Windows
powershell -File scripts/install-hermes-plugin.ps1

# Sanity check
hermes dashclaw doctor

Full step-by-step at /guides/hermes. If something breaks, open an issue on GitHub.