Automatisation Hooks
À l'issue de cette leçon, le stagiaire configure un hook simple pour automatiser une action récurrente dans Claude Code.
Définition
Un hook est un script déclenché automatiquement par un événement de la session Claude. Quand l'événement se produit, le script s'exécute en tâche de fond, sans intervention. Le résultat peut influer sur le comportement de Claude (autoriser, refuser, transformer une action) ou simplement enregistrer un état (logging).
C'est le mécanisme d'extensibilité côté machine de Claude Code. Là où une Skill apprend à Claude une procédure, un hook applique automatiquement une politique. La distinction compte : la Skill est sollicitée à la demande, le hook s'exécute systématiquement.
Types de hooks
Les principaux événements supportés :
SessionStart : au démarrage d'une session Claude. Pour initialiser un environnement, charger un contexte, vérifier des prérequis.
PreToolUse : avant que Claude n'utilise un outil (lecture fichier, exécution shell, edit). Pour valider, refuser ou transformer la requête.
PostToolUse : après l'utilisation d'un outil. Pour logger, vérifier le résultat, déclencher une chaîne d'actions.
UserPromptSubmit : à chaque prompt envoyé par l'utilisateur. Pour normaliser, ajouter du contexte, ou bloquer si une condition n'est pas remplie.
Cas d'usage
Audit et conformité. Un hook PostToolUse qui logue toutes les commandes shell exécutées dans un fichier. Précieux pour reconstituer une séance après coup, ou pour répondre à une exigence d'auditabilité.
Validation automatique. Un hook PreToolUse qui refuse toute commande contenant rm -rf ou ciblant des fichiers protégés. Sécurité par défaut, indépendamment du jugement de Claude.
Enrichissement de contexte. Un hook SessionStart qui charge le dernier état Git, les tickets ouverts, le statut du build. Claude démarre avec un contexte plus riche que ce que CLAUDE.md fournit seul.
Configuration
Les hooks se déclarent dans un fichier de configuration de Claude Code (généralement ~/.claude/settings.json pour les hooks globaux, ou un settings de projet pour ceux propres à un dépôt). Chaque hook spécifie l'événement déclencheur et le chemin du script à exécuter.
Le script peut être en n'importe quel langage exécutable — shell, Python, Node — pourvu qu'il soit installé sur la machine. Pour des hooks portables entre Mac et Windows, préférez des scripts shell POSIX ou Python plutôt que PowerShell ou batch.
Créer un hook de logging
L'objectif est un hook PostToolUse qui ajoute une ligne dans un journal à chaque action de Claude.
-
Créer un script qui log la date et le nom de l'outil utilisé.
macOS Dans le terminal :nano ~/.claude/log-tool.sh. Coller :echo "$(date) - $1" >> ~/.claude/tool-log.txt. Sauvegarder. Rendre exécutable :chmod +x ~/.claude/log-tool.sh.Windows Dans PowerShell :notepad $env:USERPROFILE\.claude\log-tool.ps1. Coller un équivalent PowerShell :"$(Get-Date) - $args[0]" | Out-File -Append $env:USERPROFILE\.claude\tool-log.txt. -
Ouvrir le fichier de configuration Claude Code :
~/.claude/settings.json. Si absent, le créer. -
Y déclarer le hook :
{ "hooks": { "PostToolUse": [ { "command": "~/.claude/log-tool.sh" } ] } }. Adapter le chemin pour Windows. -
Démarrer une session Claude Code et lancer une action quelconque (lire un fichier, par exemple).
-
Vérifier le journal :
cat ~/.claude/tool-log.txt. Une ligne doit y figurer pour chaque action.
Hook de validation pour votre flux
Identifiez une action que vous voulez systématiquement vérifier ou bloquer (commande dangereuse, edit sur un fichier protégé). Rédigez le script qui l'implémente, déclarez le hook, testez. Notez ce qui a fonctionné, ce qui a posé problème.
- code.claude.com documentation Claude Code
- docs.claude.com documentation produit, chemin précis à vérifier au moment de la consultation
Vous savez configurer un hook simple ?