Tous les modules

Module 10 / 12

Hooks

Automatiser des actions et imposer des règles autour du cycle de vie de l'agent.

Avancé10 min de lecture

Le principe des hooks

Les hooks sont des commandes shell que Claude Code exécute automatiquement à des moments précis du cycle de vie de l'agent : avant d'utiliser un outil, après, quand une session démarre ou se termine, etc. Ils permettent d'imposer des règles déterministes (pas soumises à l'interprétation du modèle) : formatage automatique, blocage de commandes interdites, notifications, journalisation.

Les événements disponibles

ÉvénementDéclenché...
PreToolUseavant l'exécution d'un outil — peut bloquer l'appel
PostToolUseaprès l'exécution d'un outil — peut réagir au résultat
UserPromptSubmitquand l'utilisateur envoie un message
SessionStart / SessionEndau démarrage / à la fin d'une session
Stopquand l'agent termine sa réponse
Notificationsur certains événements informatifs

Exemple : formater automatiquement après chaque édition

.claude/settings.json :

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [{ "type": "command", "command": "npx prettier --write \"$CLAUDE_FILE_PATHS\"" }]
      }
    ]
  }
}

Ici, chaque fois que Claude Code utilise Edit ou Write, Prettier reformate automatiquement le ou les fichiers concernés — sans dépendre du modèle pour s'en souvenir.

Exemple : bloquer une commande dangereuse

Un hook PreToolUse peut inspecter la commande proposée et la refuser (code de sortie non nul, ou sortie JSON {"decision":"block"}) avant qu'elle ne s'exécute :

#!/bin/bash
# .claude/hooks/block-force-push.sh
if echo "$CLAUDE_TOOL_INPUT" | grep -q "push --force"; then
  echo "Force-push bloqué par hook de sécurité" >&2
  exit 2
fi

Les hooks tournent avec les permissions de votre utilisateur système : ils sont puissants, mais doivent être audités comme du code de production — un hook mal écrit peut bloquer (ou pire, casser) des actions légitimes.

Points clés à retenir

  • Les hooks exécutent des commandes shell à des points précis du cycle de vie de l'agent.
  • PreToolUse peut bloquer un appel d'outil ; PostToolUse réagit après coup.
  • Ils servent à imposer des règles déterministes : formatage auto, blocage de commandes, logs.
  • Un hook s'exécute avec vos permissions système — à auditer comme du code de prod.

Tester ce module

12 questions corrigées sur « Hooks »