Hermes — Wednesday’s executor runtime + command plane
Category: hermes
Where it works: powers Telegram + IRC (chat channels) · commandable from Claude Code
Source: ~/.hermes/ (gateway), _infra/scripts/hermes_run_dispatch.py, _infra/mcp/servers/hermes/
Personal scope
This Nevermore/Hermes system is private, personal, passion-driven, and noncommercial. It is not published or commercialized, and this guide does not authorize selling, productizing, or sharing any workspace material externally.
What it is
Hermes is one of Wednesday’s bodies — the executor runtime (on whatever model Hermes is currently configured to) that runs the Telegram + IRC channels and has its own toolset (web/X search, computer-use, honcho memory, the wednesday-* skills). Wednesday is the brain; Hermes is the executor she summons. (Rework 2026-05-29: “Wednesday possesses Hermes”.)
How to trigger / use it
You mostly use Hermes by just chatting on Telegram (or IRC) — that’s Wednesday-on-Hermes. Memory + skills are live there.
Wednesday (from Claude Code) commands Hermes via the command plane:
hermes_run(task, skill?, profile?)— full-toolset Hermes agent; returns a STRUCTURED result with thetool_callsit made. Theprofileparameter is retained only for API compatibility; omit it while structured profile routes remain unavailable.hermes_skill_invoke,hermes_mcp_call(proxy a Hermes MCP tool),hermes_send(deliver a message as Wednesday to a channel),hermes_status.- Or from a shell:
python3 _infra/scripts/hermes_run_dispatch.py --task "…" --json. - Doctrine: skill command-hermes (sk-265).
Key controls (ops — Wednesday uses these)
| command | what it does |
|---|---|
hermes gateway status | is the gateway up + health |
hermes status / hermes dump | full stack snapshot |
hermes send --to telegram '…' | push a message as Wednesday |
hermes curator status/run | the native skill-curator (creates/prunes Hermes skills) |
hermes kanban swarm "<goal>" --worker … --verifier … --synthesizer … | multi-agent fan-out (workers → verifier → synthesizer) |
hermes proxy status | the OpenAI-compat proxy (:8645) |
hermes profile list | lists profile configuration directories; it does not prove structured HTTP routing |
Practical examples
- Heavy task off your desktop — Wednesday:
hermes_run("search the vault for X and summarize")→ a Hermes agent runs it with full tools, returns the result + which tools it used. - Notify you — Wednesday:
hermes_send("telegram", "backup done")→ you get a Telegram ping (no agent loop). - Swarm —
hermes kanban swarm "research 3 options"→ parallel workers → verifier → synthesizer (see the swarm verb above).
Notes / limits
Structured profile routing is currently unavailable. Profile directories such
as researcher, coder, or batch may exist, but the installed gateway returns
HTTP 404 for /p/<profile>/v1/runs. The client is configured to fail closed for
any named-profile request; it never falls back to the unprefixed default route.
Use the unprefixed structured route for Hermes; use a native runtime agent for
foreground role isolation.
Hermes runs on whatever model it is currently configured to, not Claude; do
not infer a separate cheap lane. MCP set trimmed to honcho + obsidian
(200-tool cap). The hermes MCP server is Claude-Code-only (Hermes commanding
itself = circular). Session commands (boot/close/handoff) → see
Wednesday-Session-Lifecycle.md. WhatsApp lane retired 2026-05-29.