Common failures
- “no coach model configured”
- Expected until you choose a model. Open Settings → Plugins → Coach, or run
/coach model. - No Coach page in Settings
- The Desktop half is off. Enable it in Settings → Plugins, then reload desktop plugins with ⌘K.
- The model picker is empty
- The host returned no providers. Authenticate one in Hermes first.
- A per-mode model fails while the shared model works
- Grant the model-override permission on the Status tab, or run
/coach grant. - Active review never fires
- It is off by default, and the default cadence ignores turns that made no tool calls.
- Completion review never fires
- It only runs on turns that edited files. A turn that only answered a question has no diff to review.
- The gate keeps sending the agent back
- Lower “Holds allowed per request”. One per request is the intended setting.
- Reviews stopped on their own
- The session budget was reached. The default
softstop disables the automatic modes but leaves consults working.
Limits
- Tested on Linux, macOS and Windows — the GitHub Actions matrix runs the full suite on all three for every push.
- Messaging surfaces (Telegram, Discord and similar) never receive corrective turns; advice stays ambient there.
- Ambient advice arrives one turn late by design, and a note whose turns expire is dropped rather than delivered stale.
- In very long sessions, older turns collapse to one line per tool call. User messages are kept; tool detail is what thins out.
- The completion gate reviews a diff, not a plan, a document or a chat answer.
- One coach at a time: no panel, no vote.
What it reads and sends
The plugin touches what it needs and nothing else. This is the catalog-style disclosure, kept here so it is easy to audit.
- Network
- Consult, Active and Review calls go through the host’s model router. Only the optional Decide backends call out directly —
https://openrouter.aiandhttps://api.typesafe.ai— and only when Decide is enabled. No other third-party traffic, no telemetry. - Reads
- The completion review reads the turn’s git diff, worktree status and new files through read-only git commands. The plugin never writes outside
$HERMES_HOME/coach/and the project’s ownCOACH.md. - Processes
- One bounded worker thread runs background reviews inside the hook budgets. The only child processes are the read-only git queries. Nothing inherits YOLO or non-interactive mode, and anything awaiting a person fails rather than hanging under cron or the gateway.
- Credentials
- Decide keys are declared under
requires_envand read through the host’s profile-scoped secret scope. No key is written toconfig.yaml, and no credential file is read directly.