Command Hermes — pune Hermes la treabă ca executorul lui Wednesday

Category: skill (hermes-command) Where it works: Claude Code (preferat, tool-uri MCP hermes_*) · oricând prin Bash Source: _infra/core/wednesday/skills/command_hermes.md (sk-265) · _infra/scripts/hermes_run_dispatch.py · _infra/mcp/servers/hermes/server.py

What it is

Wednesday e creierul-orchestrator; Hermes e unul din corpurile ei — executorul pe Grok care ține canalele de chat și are propriul toolset complet (web/X search, browser, terminal, generare imagine/video, computer-use, MCP-urile, skill-urile wednesday-*). Skill-ul ăsta e felul în care Wednesday cheamă Hermes, îi dă o sarcină și citește înapoi exact ce a făcut (tool-call-uri structurate, nu un blob opac). Hermes nu e un rival sau un peer mai capabil — e brațul cu care ajunge Wednesday.

How to trigger it

  • Natural language: “trimite asta pe Hermes”, “rulează pe Grok / off my desktop”, “caută pe X despre ”, “fă research-ul ăsta în background”, “notifică-mă pe Telegram când e gata”.
  • Auto-fires? Da — Wednesday auto-rutează când o sarcină vrea o unealtă care trăiește doar în corpul Hermes (X search, generare media, computer-use) sau când vrea execuție mărginită ca să-și țină contextul curat.
  • Pur raționament sau o unealtă pe care Claude Code o are deja → Wednesday o face singură (nu pasează muncă trivială prin Hermes).

How to use it

Preferat — tool-uri MCP hermes_* (apar după restart de sesiune, din serverul MCP hermes, Claude-Code-only):

  • hermes_run(task, skill?, profile?) → agent cu toolset complet; întoarce {result, tool_calls, status, usage, run_id}. Citește tool_calls ca să vezi ce a invocat efectiv Hermes — ăsta e tot rostul “posesiei”.
  • hermes_skill_invoke(skill, args?) → rulează un skill Hermes (search, briefing, ingest…).
  • hermes_mcp_call(server, tool, args_json?) → pune Hermes să apeleze UNA din uneltele lui MCP și întoarce rezultatul brut (util pentru cele 14 MCP-uri Claude-Code-only nemutate pe Hermes).
  • hermes_send(channel, message) → vorbește CA Wednesday pe telegram.
  • hermes_status() → sănătatea stack-ului Hermes.

Fallback — Bash (mereu disponibil, fără restart):

python3 _infra/scripts/hermes_run_dispatch.py --task "<task>" [--skill search] [--profile researcher] --json

Întoarce același dict structurat. thing.py / hermes_dispatch.py = doar pentru calea text rapidă, nestructurată (când nu-ți trebuie vizibilitatea tool-call-urilor).

Specialist profiles (rutează după rol)

researcher (web/X + research adânc) · coder (terminal + execuție cod) · gemini-batch (lane ieftin de background). Pasează profile= la hermes_run sau --profile la bridge. Listează/creezi cu _infra/scripts/setup-hermes-profiles.sh / hermes profile list.

Practical examples

  1. Research off-desktop — tu: “caută pe vault + web ce-am decis despre DNS și rezumă”hermes_run("…", profile="researcher") rulează pe Grok → primești rezumatul + tool_calls (ce a căutat) fără să-ți umpli contextul Claude.
  2. Notificare — tu: “anunță-mă pe Telegram când termină backup-ul”hermes_send("telegram", "backup gata") → primești pingul ca de la Wednesday.
  3. Unealtă Hermes-only — tu: “vezi ce zice X despre lansarea aia”hermes_mcp_call(...) / hermes_run(profile="researcher") folosește X search (nu există pe Claude Code).
  4. Background ieftin — orice batch/recurent → profile="gemini-batch" (NICIODATĂ Claude pentru background).

Notes / limits

  • După hermes_run, inspectează tool_calls + status înainte să crezi result. status != "completed" → raportează, nu inventa.
  • No-background-Claude rămâne în picioare: muncă programată/batch → gemini-batch sau Grok, niciodată Claude.
  • Hermes rulează ca Wednesday (același SOUL) — output-ul e al lui Wednesday, sub framing-ul [Hermes]-ca-corp, nu o persona separată.
  • Hermes MCP set e trimuit la honcho + obsidian (plafonul Grok de 200 tool-uri). Restul MCP-urilor Hermes-side se ating prin hermes_mcp_call.
  • Serverul MCP hermes e Claude-Code-only (circular dacă l-ai adăuga în Hermes).