Überblick
hermes hooks inspiziert in ~/.hermes/config.yaml deklarierte Shell-Script-Hooks, testet sie mit synthetischen Payloads und verwaltet die Allowlist für die Erstverwendung unter ~/.hermes/shell-hooks-allowlist.json.
hermes hooks <list|test|revoke|doctor>
Aliase werden akzeptiert: ls für list, remove/rm für revoke.
Unterbefehle
list (oder ls) — Konfigurierte Hooks anzeigen
hermes hooks list
hermes hooks ls
Zeigt Matcher, Timeout und Zustimmungsstatus jedes Hooks an.
test — Passende Hooks mit synthetischem Payload ausführen
hermes hooks test pre_tool_call
hermes hooks test pre_tool_call --for-tool terminal
hermes hooks test subagent_stop --payload-file ./payload.json
| Flag | Beschreibung |
|---|---|
event (positional) |
Name des Hook-Events, z. B. pre_tool_call, pre_llm_call, subagent_stop. |
--for-tool FOR_TOOL |
Nur Hooks auslösen, deren Matcher diesen Tool-Namen entspricht (für pre_tool_call / post_tool_call). |
--payload-file PAYLOAD_FILE |
Pfad zu einer JSON-Datei, deren Inhalt vor der Ausführung in den synthetischen Payload gemergt wird. |
revoke (oder remove, rm) — Allowlist-Einträge eines Befehls entfernen
hermes hooks revoke "~/.hermes/hooks/notify.sh"
hermes hooks rm "~/.hermes/hooks/notify.sh"
Entfernt Allowlist-Einträge für die in config.yaml deklarierte exakte Befehlszeichenkette. Die Änderung wirkt sich erst nach dem nächsten Neustart von Hermes aus.
doctor — Jeden konfigurierten Hook überprüfen
hermes hooks doctor
Prüft jeden Hook auf: Ausführungsbit, Allowlist-Zustand, mtime-Drift, JSON-Gültigkeit und synthetische Laufzeit.
Häufige Szenarien
Alle Hooks nach Konfigurationsänderung überprüfen
hermes config edit
hermes hooks list
Einen Hook vor der Genehmigung testen
hermes hooks test pre_tool_call --for-tool terminal
Zustimmung für einen Hook widerrufen
hermes hooks revoke "~/.hermes/hooks/backup.sh"
Hook-Probleme diagnostizieren
hermes hooks doctor
Tipps
- Hooks werden in
~/.hermes/config.yamldefiniert; die Zustimmung wird separat in~/.hermes/shell-hooks-allowlist.jsongespeichert. - Das Widerrufen der Zustimmung löscht nicht die Hook-Definition — es setzt nur die Genehmigung zurück und wirkt sich erst nach einem Neustart aus.
- Verwende
hermes hooks testmit--payload-file, um realistische Payloads zu simulieren, ohne eine vollständige Sitzung auszuführen. hermes hooks doctorist der schnellste Weg, Berechtigungs-, Syntax- oder Laufzeitprobleme zu finden.- Prüfe Hook-Skripte immer, bevor du die Zustimmung erteilst; sie laufen mit denselben Berechtigungen wie der Hermes-Prozess.