Hermes Coach troubleshooting

Fixes for the common Hermes Coach failures — no model configured, a missing Desktop page, per-mode model errors, reviews that never fire — plus its limits and disclosures.

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 soft stop 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.ai and https://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 own COACH.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_env and read through the host’s profile-scoped secret scope. No key is written to config.yaml, and no credential file is read directly.