fbpx

Hooks dans claude Code

Les hooks vous permettent d’exécuter des commandes à des moments spécifiques du cycle de vie de Claude Code. La principale différence entre les hooks et tout ce qui est couvert dans ce cours est que les hooks le sont déterministe — ils courent toujours.

Pourquoi utiliser des hooks

Vous pouvez dire à Claude dans votre CLAUDE.md d’exécuter Prettier après chaque modification de fichier. La plupart du temps, ce sera le cas. Mais parfois, ce ne sera pas le cas. Un crochet permet que cela se produise à chaque fois, sans exception.

Les cas d’utilisation courante comprennent notamment

  • Formatage automatique après modifications de fichiers
  • Enregistrement de toutes les commandes exécutées pour la conformité
  • Blocage des opérations dangereuses comme la modification des fichiers de production
  • Envoi de notifications lorsque Claude termine une tâche

Comment ils fonctionnent

Les hooks sont configurés dans votre paramètres.json‘. Vous choisissez un événement, définissez éventuellement un matcher auquel il s’applique et fournissez une commande à exécuter. Les événements disponibles sont les suivants

  • Utilisation pré-outil — s’exécute avant un appel d’outil
  • PostToolUse — s’exécute une fois l’appel d’outil terminé
  • UtilisateurPromptSubmit — s’exécute lorsque vous soumettez une invite, avant que Claude ne la traite
  • Arrêter — s’exécute lorsque Claude finit de répondre
  • Notification — s’exécute lorsque Claude envoie une notification

Vous les configurez via le /hooks commande à l’intérieur de Claude Code, ou par édition paramètres.json directement.

The settings.json file inside the .claude directory with hooks configuration

Un exemple pratique

Le crochet le plus courant : formatage automatique après modifications. Définir un PostToolUse crochet avec un matcher de "Modifier|MultiModifier|Écrire" il se déclenche donc chaque fois que Claude modifie un fichier. La commande vérifie l’extension du fichier et exécute le formateur approprié — Prettier pour TypeScript, gofmt pour Go, quelle que soit l’utilisation de votre projet.

Blocage avec PreToolUse

Les hooks PreToolUse peuvent bloquer les appels d’outils avant qu’ils exécutent. Votre crochet reçoit le nom de l’outil et l’entrée en tant que JSON sur stdin. Le code de sortie détermine le comportement :

  • Code de sortie 0 —, continuez normalement.
  • Code de sortie 2 — bloquer l’action. Le message stderr est renvoyé à Claude en guise de retour afin qu’il sache pourquoi il a été bloqué et puisse s’ajuster.
  • Tout autre code de sortie — une erreur non bloquante qui vous est montrée mais n’arrête rien.

C’est ainsi que vous appliquez des règles strictes. Block écrit dans un répertoire de configuration de production. Bloquer les commandes de base qui contiennent rm-rf‘. Bloc s’engage sur main. Quoi que votre équipe ait besoin d’être garanti, pas suggéré.

A settings.json file showing PreToolUse and PostToolUse hooks with matchers and commands

Partage de hooks avec votre équipe

Hooks configurés en .claude/settings.json sont au niveau du projet et peuvent être vérifiés dans votre pension. Cela signifie que toute votre équipe obtient automatiquement les mêmes hooks. Utilisez le CLAUDE_PROJECT_DIR variable d’environnement dans vos commandes pour référencer les scripts stockés dans votre projet, afin qu’ils fonctionnent quel que soit le répertoire de travail actuel de Claude.

Récapitulatif

Les hooks vous donnent un contrôle déterministe sur le comportement de Claude Code. Utilisez PostToolUse pour le formatage automatique et la journalisation. Utilisez PreToolUse pour bloquer les opérations dangereuses. Configurez-les avec /hooks ou dans paramètres.json‘. Et vérifiez-les dans votre pension afin que votre équipe les reçoive également.

Si quelque chose doit se produire à chaque fois sans faute, ne le mettez pas dans une invite. Mets-le dans un crochet.