Vue d’ensemble
hermes hooks inspecte les hooks shell déclarés dans ~/.hermes/config.yaml, les teste avec des payloads synthétiques et gère la liste d’autorisation du premier usage dans ~/.hermes/shell-hooks-allowlist.json.
hermes hooks <list|test|revoke|doctor>
Les alias sont acceptés : ls pour list, remove/rm pour revoke.
Sous-commandes
list (ou ls) — Lister les hooks configurés
hermes hooks list
hermes hooks ls
Affiche le matcher, le délai d’expiration et l’état de consentement de chaque hook.
test — Déclencher les hooks correspondants avec un payload synthétique
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 | Description |
|---|---|
event (positionnel) |
Nom de l’évent hook, ex. pre_tool_call, pre_llm_call, subagent_stop. |
--for-tool FOR_TOOL |
Ne déclencher que les hooks dont le matcher correspond à ce nom d’outil (pour pre_tool_call / post_tool_call). |
--payload-file PAYLOAD_FILE |
Chemin vers un fichier JSON fusionné dans le payload synthétique avant exécution. |
revoke (ou remove, rm) — Supprimer les entrées d’autorisation d’une commande
hermes hooks revoke "~/.hermes/hooks/notify.sh"
hermes hooks rm "~/.hermes/hooks/notify.sh"
Supprime les entrées de la liste d’autorisation pour la chaîne de commande exacte déclarée dans config.yaml. La modification prend effet au prochain redémarrage d’Hermes.
doctor — Vérifier chaque hook configuré
hermes hooks doctor
Valide chaque hook : bit exécutable, état de la liste d’autorisation, dérive mtime, validité JSON et durée d’exécution synthétique.
Scénarios courants
Vérifier tous les hooks après une édition de configuration
hermes config edit
hermes hooks list
Tester un hook avant de l’approuver
hermes hooks test pre_tool_call --for-tool terminal
Révoquer le consentement d’un hook
hermes hooks revoke "~/.hermes/hooks/backup.sh"
Diagnostiquer les problèmes de hooks
hermes hooks doctor
Astuces
- Les hooks sont définis dans
~/.hermes/config.yaml; le consentement est suivi séparément dans~/.hermes/shell-hooks-allowlist.json. - Révoquer le consentement ne supprime pas la définition du hook — il réinitialise seulement l’approbation, et la modification s’applique après un redémarrage d’Hermes.
- Utilisez
hermes hooks testavec--payload-filepour simuler des payloads réalistes sans exécuter une session complète. hermes hooks doctorest le moyen le plus rapide de trouver des problèmes de permissions, de syntaxe ou de durée d’exécution.- Examinez toujours les scripts de hook avant d’accorder le consentement ; ils s’exécutent avec les mêmes permissions que le processus Hermes.