Les hooks permettent d’exécuter vos propres commandes avant ou après que Claude utilise un outil. Ils s’intègrent dans le flux normal d’une session Claude Code sans intervention de votre part.Documentation Index
Fetch the complete documentation index at: https://tramio.fr/llms.txt
Use this file to discover all available pages before exploring further.
Comment fonctionnent les hooks
Le flux d’une interaction Claude Code est : requête → décision d’utiliser un outil → exécution de l’outil → réponse. Les hooks s’insèrent à deux points de ce flux :- PreToolUse — s’exécute avant l’appel d’outil. Peut bloquer l’opération.
- PostToolUse — s’exécute après l’appel d’outil. Ne peut pas bloquer, mais peut fournir du feedback à Claude.
Configuration
Les hooks se définissent dans les fichiers de configuration de Claude Code :| Fichier | Portée |
|---|---|
~/.claude/settings.json | Tous vos projets |
.claude/settings.json | Projet partagé (versionné) |
.claude/settings.local.json | Projet personnel (non versionné) |
Ce que reçoit votre script
Quand votre commande s’exécute, Claude lui envoie les détails de l’appel d’outil via l’entrée standard (stdin) au format JSON :- Code 0 — autoriser l’opération
- Code 2 — bloquer l’opération (PreToolUse uniquement). Tout message écrit sur stderr est transmis à Claude comme explication.
Exemple concret : protéger les fichiers .env
Un hook PreToolUse qui empêche Claude de lire les fichiers sensibles :Read et Grep (selon le matcher configuré) et bloque celles qui ciblent un fichier .env. Claude reçoit le message d’erreur et comprend pourquoi l’opération a échoué.
Cas d’usage typiques
Sécurité — interdire l’accès à certains fichiers ou répertoires sensibles. Qualité de code — lancer un formateur automatiquement après chaque modification de fichier. Tests — exécuter la suite de tests dès qu’un fichier source est modifié. Vérification de types — lancertsc --noEmit après chaque édition et transmettre les erreurs à Claude pour correction immédiate.
Prévention de duplication — utiliser le SDK Claude Code dans un hook PostToolUse pour analyser si du code nouvellement écrit duplique des fonctions existantes.
Déboguer un hook
Pour comprendre exactement ce que reçoit votre script, créez un hook temporaire qui enregistre l’entrée dans un fichier :/tmp/hook-debug.json pour connaître la structure exacte des données reçues selon le type de hook et l’outil appelé.
Au-delà de PreToolUse et PostToolUse
D’autres types de hooks sont disponibles pour des scénarios avancés :Notification— s’exécute quand Claude attend une permission ou après 60 secondes d’inactivitéStop— s’exécute quand Claude a terminé de répondreSubagentStop— s’exécute quand un sous-agent termine sa tâchePreCompact— s’exécute avant une opération de compactageUserPromptSubmit— s’exécute quand vous soumettez une requête, avant que Claude ne la traiteSessionStart/SessionEnd— s’exécute au début et à la fin d’une session