Blog

Les hooks de Claude Code, ou comment une règle cesse d'être un vœu

Par , formateur IA & Claude Code ·

Un vendredi soir, l’affiche « on ne pousse pas sans relecture » ne dit rien. Le script, lui, refuse.

Voici comment les hooks marchent, d’après la documentation d’Anthropic relevée le 29 septembre 2026.

Ce qu’est un hook

Un script que Claude Code lance à un moment précis de la session. Vous choisissez le moment. Claude Code lance votre script. Ce que le script renvoie décide de la suite.

Les moments s’appellent des événements. La documentation en liste treize, du démarrage de la session à sa fin.

Les événements qui servent vraiment

Inutile de tous les apprendre. Six suffisent à couvrir ce qu’une équipe cherche à contrôler.

PreToolUse se déclenche avant l’exécution d’un appel d’outil, et il peut le bloquer.

PostToolUse se déclenche après un appel réussi. Il sert au contrôle qualité : lancer les tests, relancer un vérificateur, enregistrer une trace.

UserPromptSubmit se déclenche quand vous envoyez une demande, avant que Claude la traite.

Stop et SubagentStop se déclenchent quand Claude a fini de répondre. C’est l’endroit où l’on vérifie qu’un travail est bien terminé.

SessionStart se déclenche au démarrage ou à la reprise d’une session. C’est là qu’on injecte du contexte que personne ne doit avoir à coller à la main.

Comment un hook bloque

Le code de sortie 2.

La documentation est nette. Sur les événements qui peuvent bloquer, un code de sortie 2 refuse l’action. Il la refuse que le hook imprime du JSON ou non. Même un permissionDecision à allow renvoyé en JSON ne passe pas devant.

La décision ne se négocie pas.

Ce que le code 2 produit dépend de l’événement. Sur PreToolUse, il bloque l’appel d’outil. Sur UserPromptSubmit, il bloque le traitement et efface la demande. Sur Stop et SubagentStop, il empêche Claude de s’arrêter et poursuit la conversation. Sur TaskCompleted, il empêche la tâche d’être marquée terminée. Sur PreCompact, il bloque le résumé automatique de la conversation.

Formation en entreprise · finançable OPCO

Ce que ça donne quand une équipe s'y met vraiment

Animée par Fathi Sehla, qui construit des agents Claude Code et des automatisations n8n en production. Il anime lui-même les sessions. Sur Malt, 4,7/5, moyenne de 8 avis, pour 14 projets.

  • 1 000 € HT la journée, quel que soit le nombre de participants
  • Finançable par votre OPCO, souvent jusqu'à 100 %. Dossier et convention portés par Alfie Formation, organisme certifié Qualiopi
  • Chez Digital.Green, une équipe qui ne savait pas encore tirer pleinement parti de l'IA, formée en neuf jours. Deux workflows d'audit tournent encore

Une question avant de vous engager ? Appelez, c'est le plus rapide : 07 43 44 61 22.

Le JSON, pour les cas plus fins

Un hook peut aussi renvoyer du JSON sur la sortie standard.

Sur PreToolUse, le champ permissionDecision accepte quatre valeurs : allow, deny, ask, defer. C’est le seul endroit où un hook peut demander une autorisation plutôt que trancher.

Sur les autres événements, le champ decision n’accepte qu’une valeur, block, accompagnée d’un reason. Le message que voit l’utilisateur est ce reason quand il existe, et la sortie d’erreur du script sinon.

Les trois événements du travail en équipe

Ils sont arrivés avec les équipes d’agents.

TeammateIdle se déclenche quand un coéquipier s’apprête à se mettre en attente. Un code de sortie 2 lui renvoie un retour et le remet au travail.

TaskCreated se déclenche à la création d’une tâche, et un code 2 empêche cette création.

TaskCompleted se déclenche quand une tâche est marquée terminée, et un code 2 empêche qu’elle le soit.

TaskCompleted est le plus utile en pratique. C’est là qu’on vérifie qu’une tâche annoncée finie l’est. Par les tests, plutôt que par la déclaration de l’agent.

Ce que la documentation dit de ne pas faire

Pour une autorisation dure, la documentation renvoie au système de permissions.

La documentation en donne la raison. Le filtre qui choisit quels appels déclenchent un hook fait de son mieux, sans garantie.

Une façon simple de trancher. Le hook fait respecter vos règles de qualité. Pour couper un accès, c’est le système de permissions.

Ce que ça donne dans une équipe

Le cas qui rend service tout de suite est le contrôle avant commit. Un hook sur PreToolUse lit ce qui part, et refuse si une étape obligatoire manque.

Le même hook vaut pour une relecture, un test qui passe, une ligne de journal présente. Tout ce que votre équipe se promet de faire et oublie sous pression.

L’autre cas est l’injection de contexte au démarrage. Vos conventions arrivent dans chaque session sans que personne les colle.

Personne n’a besoin de s’en souvenir. Le dépôt s’en souvient.

Où on les déclare

Dans les fichiers de réglages, dont le .claude/settings.json du projet.

Cet emplacement compte plus que les autres pour une équipe. Une règle posée là vit dans le dépôt. Elle s’applique à tout le monde au prochain git pull. Y compris à la personne arrivée lundi, qui n’était pas à la réunion.

Le lien avec le reste

Un hook est la couche qui fait tenir les décisions prises ailleurs. La règle de relecture, le découpage du travail, ce à quoi un agent n’a pas accès. Ces décisions se prennent en amont, et je les détaille dans Claude Code en équipe.

Les sous-agents ont leurs propres événements, SubagentStart et SubagentStop, traités dans les sous-agents de Claude Code.

L’ANSSI a aussi des recommandations sur les droits d’un agent. Voir notre page sur la sécurité de l’IA en entreprise.

C’est ce qu’on installe pendant la formation Claude Code, sur vos dépôts. Une règle de votre équipe, transformée en script qui refuse.

Source relevée le 29 septembre 2026, la documentation des hooks d’Anthropic.

FAQ

Questions fréquentes

Qu'est-ce qu'un hook Claude Code ?

Un script que Claude Code lance à un moment précis de la session. Avant un appel d'outil, après, au démarrage, à la fin d'un tour. Il peut refuser l'action selon son code de sortie.

Comment un hook Claude Code bloque-t-il une action ?

Par le code de sortie 2. Sur les événements qui peuvent bloquer, ce code refuse l'action. Il la refuse que le hook imprime du JSON ou non. Même un permissionDecision à allow ne passe pas devant.

Quels événements de hook Claude Code servent au travail en équipe ?

Trois, d'après la documentation d'Anthropic relevée le 29 septembre 2026. TeammateIdle se déclenche quand un coéquipier s'apprête à se mettre en attente. TaskCreated à la création d'une tâche. TaskCompleted quand une tâche est marquée terminée.

Un hook Claude Code remplace-t-il les permissions ?

Non, et la documentation d'Anthropic, relevée le 29 septembre 2026, le dit elle-même. Pour une autorisation dure, elle renvoie au système de permissions. Le hook valide, le contrôle d'accès reste ailleurs.

Que peut renvoyer un hook Claude Code en JSON ?

Sur PreToolUse, un champ permissionDecision qui accepte allow, deny, ask ou defer. Au 29 septembre 2026, sur les autres événements, un champ decision qui n'accepte que block, accompagné d'un reason.

Un hook Claude Code peut-il empêcher Claude de s'arrêter ?

Oui. Sur les événements Stop et SubagentStop, un code de sortie 2 empêche Claude de s'arrêter. La conversation se poursuit. C'est ce qu'indique la documentation.

Où se déclare un hook Claude Code ?

Dans les fichiers de réglages, dont le .claude/settings.json du projet. Une règle posée là vit dans le dépôt, donc elle s'applique à toute l'équipe au prochain git pull.

Parlons de votre équipe

On regarde ensemble ce que votre équipe peut déléguer ?

L'audit de cadrage est offert. On identifie vos cas d'usage et on priorise ce qui vaut le coup, puis je bâtis le programme dessus. Devis sous 48 h ouvrées.

C'est moi qui réponds. Et si je n'ai rien à vous apporter, je vous le dis.

Par écrit : contact@formation-ia-claude.fr