← BLOG
Tutorial

Automatisez Votre Workflow de Dev avec les Hooks Claude Code

Les Hooks vous permettent d'exécuter des commandes shell personnalisées quand Claude Code effectue des actions spécifiques. Auto-formatez à la sauvegarde, bloquez les éditions dangereuses ou injectez du contexte automatiquement.

Les Hooks de Claude Code sont des commandes shell qui s'exécutent automatiquement en réponse à des événements. Quand Claude Code édite un fichier, exécute une commande ou démarre une session, vos hooks se déclenchent. Cela vous permet de mettre en place des garde-fous, d'appliquer des standards et d'automatiser les configurations répétitives sans intervention manuelle.

Quels événements de hooks sont disponibles ?

ÉvénementQuand il se déclencheCas d'utilisation courant
PreToolUseAvant que Claude exécute un outilBloquer les opérations dangereuses, valider les entrées
PostToolUseAprès que Claude a exécuté un outilAuto-formater les fichiers édités, lancer les linters
NotificationQuand Claude envoie une notificationLogger dans un fichier, envoyer sur Slack
SessionStartQuand une nouvelle session commenceInjecter du contexte, vérifier l'environnement
ConfigChangeQuand les paramètres changentValider la configuration

Comment créer un hook ?

Utilisez le menu interactif ou éditez directement settings.json :

bash
# Configuration interactive des hooks
claude /hooks

# Ou éditez settings.json directement
# Projet : .claude/settings.json
# Global : ~/.claude/settings.json

Voici un settings.json avec des hooks configurés :

json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "command": "npx prettier --write \"$CLAUDE_FILE_PATH\"",
        "description": "Auto-formater les fichiers édités avec Prettier"
      }
    ],
    "PreToolUse": [
      {
        "matcher": "Edit|Write",
        "command": "echo $CLAUDE_FILE_PATH | grep -q \\.env && echo 'BLOQUÉ : Impossible d'éditer les fichiers .env' && exit 1 || exit 0",
        "description": "Bloquer les éditions des fichiers .env"
      }
    ],
    "SessionStart": [
      {
        "command": "cat .claude/context-injection.md",
        "description": "Injecter du contexte supplémentaire au démarrage de session"
      }
    ]
  }
}

Quels sont les hooks les plus utiles ?

1. Auto-formatage à l'édition

Lancez Prettier, Black ou gofmt chaque fois que Claude Code édite un fichier :

json
// Hook PostToolUse
{
  "matcher": "Edit|Write",
  "command": "npx prettier --write \"$CLAUDE_FILE_PATH\""
}

2. Bloquer l'édition de fichiers sensibles

Empêchez Claude Code de modifier les fichiers d'environnement, les secrets ou les configurations critiques :

json
// Hook PreToolUse
{
  "matcher": "Edit|Write",
  "command": "echo $CLAUDE_FILE_PATH | grep -qE \"\.env|\.secret|credentials\" && exit 1 || exit 0"
}

3. Réinjecter du contexte après la compaction

Quand Claude Code compacte sa fenêtre de contexte, des détails importants peuvent être perdus. Un hook peut réinjecter les informations critiques :

json
// Hook PostToolUse pour la compaction
{
  "matcher": "Compact",
  "command": "cat .claude/critical-context.md"
}
TIP

Commencez par le hook d'auto-formatage. C'est le hook à plus haute valeur avec le plus faible risque. Une fois à l'aise, ajoutez la protection de fichiers et l'injection de contexte.

Questions fréquemment posées

Un hook peut-il empêcher Claude Code de faire quelque chose ?+
Oui. Les hooks PreToolUse peuvent quitter avec le code 1 pour bloquer l'action. Claude Code verra le message de blocage et essaiera une approche différente. C'est ainsi que vous créez des garde-fous pour les opérations sensibles.
Les hooks fonctionnent-ils en mode headless ?+
Oui. Les hooks s'exécutent dans tous les modes, y compris le mode headless (CI/CD). Cela les rend utiles pour appliquer des standards dans les pipelines automatisés où aucun humain ne vérifie chaque action.
Quelles variables d'environnement sont disponibles dans les hooks ?+
Les hooks reçoivent du contexte via des variables d'environnement comme $CLAUDE_FILE_PATH (le fichier en cours d'édition), $CLAUDE_TOOL_NAME (l'outil utilisé) et $CLAUDE_SESSION_ID. Les variables exactes dépendent du type d'événement.
Les hooks peuvent-ils ralentir Claude Code ?+
Oui, si la commande du hook est lente. Gardez les hooks rapides (moins d'1 seconde). Évitez les hooks qui font des requêtes réseau ou lancent des builds lourds. Utilisez la journalisation asynchrone si vous devez suivre les actions sans bloquer.
ALL POSTSSTART FREE COURSE →