Accueil › Claude Code › Hooks
Vue d’ensembleInstallationréférence de la CLITarifs et limitesAgent SDKCompétences et pluginsGitHubWeb, bureau et IDEModèlesErreursOpen source ?TutorielPour les étudiantsAutomatisation de l’assurance qualitéComparaison avec CursorComparaison avec Codex et OpenCodeSous-agentsHooksMCPÉcosystèmeVS CodeOpenRouterLimites de débitGuide en chinois
Dernière mise à jour : 11 octobre 2026

Hooks de Claude Code : un contrôle déterministe des actions de l’agent

Les hooks sont des commandes shell que Claude Code exécute à des moments précis de sa boucle — avant un appel d’outil, après un appel, lorsque vous soumettez un prompt ou lorsqu’il termine. Contrairement aux instructions dans CLAUDE.md, que le modèle peut suivre ou non, un hook s’exécute toujours. Ils permettent de faire respecter les règles.

TLDR

  • Configurés dans .claude/settings.json (projet) ou ~/.claude/settings.json (utilisateur), ou avec /hooks.
  • Événements : PreToolUse, PostToolUse, UserPromptSubmit, Notification, Stop, SubagentStop, PreCompact, SessionStart.
  • Le hook reçoit JSON sur stdin (nom de l’outil, entrée, session) ; le code de sortie 0 autorise l’exécution, le code de sortie 2 la bloque et transmet stderr à Claude.
  • Utilisations courantes : formater après chaque modification, bloquer les commandes dangereuses, exiger des tests avant l’arrêt, envoyer des notifications de bureau.

Anatomie d’un hook

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          { "type": "command", "command": "npx prettier --write \"$(jq -r .tool_input.file_path)\"" }
        ]
      }
    ]
  }
}

Trois parties : l’événement, un filtre de correspondance (une expression régulière sur le nom de l’outil pour les événements d’outil ; omettez-le pour tout sélectionner), et une ou plusieurs commandes. La commande reçoit sur stdin un objet JSON décrivant l’événement — pour les événements d’outil, il comprend tool_name et tool_input, ce qui permet à l’exemple ci-dessus de trouver le fichier qui vient d’être modifié. Placez-le dans .claude/settings.json pour le partager avec le dépôt, ~/.claude/settings.json pour votre usage personnel, ou exécutez /hooks et laissez Claude Code l’écrire.

Les événements

  • PreToolUse — avant l’exécution d’un outil. Le seul événement qui peut bloquer : le code de sortie 2 annule l’appel et Claude lit votre sortie stderr pour en connaître la raison.
  • PostToolUse — après la réussite d’un outil. Formatage, linting et vérification des types sur le fichier modifié.
  • UserPromptSubmit — lorsque vous envoyez un prompt ; peut injecter du contexte ou rejeter le prompt.
  • Stop / SubagentStop — lorsque l’agent (ou un sous-agent) est sur le point de terminer. Le code de sortie 2 signifie ici « pas encore terminé » — l’usage classique consiste à refuser l’arrêt tant que les tests échouent.
  • PreCompact — avant /compact ; enregistrez tout ce dont vous avez besoin dans la transcription complète.
  • SessionStart — lorsqu’une session commence ou reprend ; charger l’environnement, afficher des rappels.
  • Notification — lorsque Claude Code sollicite votre attention (demande d’autorisation, inactivité) ; reliez-le à une notification de bureau ou Slack.

Bloquer les commandes dangereuses

#!/usr/bin/env bash
# .claude/hooks/guard.sh  -- PreToolUse, matcher: Bash
cmd=$(jq -r '.tool_input.command')
if echo "$cmd" | grep -Eq 'rm -rf|git push --force|DROP TABLE|--no-verify'; then
  echo "blocked by guard.sh: $cmd" >&2
  exit 2
fi
exit 0

Le code de sortie 2 constitue le contrat : l’appel d’outil n’a pas lieu, et tout ce que le hook a écrit sur stderr devient l’explication que Claude voit, afin qu’il puisse choisir une autre approche au lieu de réessayer la même chose. Tout autre code de sortie non nul est consigné, mais ne bloque pas l’exécution.

« Ne pas s’arrêter tant que les tests ne réussissent pas »

#!/usr/bin/env bash
# Stop hook: refuse to finish while the suite is red
if ! npm test --silent >/tmp/claude-test.log 2>&1; then
  echo "Tests are failing; fix them before finishing:" >&2
  tail -n 40 /tmp/claude-test.log >&2
  exit 2
fi

Associez-le à une limite de --max-turns dans les exécutions sans interface afin qu’un échec réellement impossible à corriger ne provoque pas une boucle infinie.

Hooks, CLAUDE.md et autorisations

CLAUDE.md contient des conseils que le modèle lit ; /permissions est une liste de ce qu’il peut faire sans demander ; les hooks sont du code qui s’exécute dans tous les cas. Utilisez CLAUDE.md pour le style et le contexte, les autorisations pour définir ce qui est permis ou nécessite une demande, et les hooks pour tout ce qui doit être garanti à chaque fois — formatage, détection de secrets, contrôles de tests, journaux d’audit. Ils se combinent : une autorisation permet l’exécution de Bash(git *) , tandis qu’un hook PreToolUse bloque toujours git push --force.

Les hooks et la passerelle

Les hooks s’exécutent localement et ne font jamais appel à l’API ; rien ne change donc lorsque Claude Code pointe vers ANTHROPIC_BASE_URL=https://aiprimetech.io. Une combinaison utile : un hook Stop qui affiche /costdes données d’utilisation dans ce style à partir de vos propres journaux, afin qu’une équipe utilisant des crédits facturés à l’usage voie le coût de chaque session à sa clôture.

Essayez gratuitement pour commencer

Les nouveaux comptes reçoivent 5 $ de crédit API offert avec le code CLAUDECODE — de quoi passer une soirée à utiliser Claude Code avec Sonnet — puis des crédits valant 7.69231× leur valeur nominale.

export ANTHROPIC_BASE_URL=https://aiprimetech.io
export ANTHROPIC_API_KEY=your_key

Créer un compte avec le code CLAUDECODE

Questions fréquentes

Que sont les hooks de Claude Code ?

Des commandes shell que Claude Code exécute automatiquement lors d’événements de sa boucle — avant ou après les appels d’outils, à l’envoi d’un prompt, à l’arrêt. Ils sont déterministes, contrairement aux instructions dans CLAUDE.md.

Comment bloquer une commande avec un hook ?

Un hook PreToolUse avec le filtre Bash qui examine tool_input.command depuis stdin et se termine avec le code 2 ; le texte de stderr est présenté à Claude comme raison.

Où placer les hooks ?

Dans .claude/settings.json au sein du projet (partagé) ou dans ~/.claude/settings.json (personnel), sous la clé hooks ; /hooks permet de les modifier de manière interactive.

Utilisez Claude Code sur la passerelle

Les mêmes modèles, deux variables d’environnement, des crédits valant 7.69231× leur valeur nominale — ou une offre illimitée à tarif forfaitaire. Nouveaux comptes : 5 $ de crédit API offert avec le code CLAUDECODE.

Obtenir une clé API Voir les offres illimitées

AI Prime Tech est une passerelle API indépendante et n’est ni affiliée à Anthropic, ni approuvée ou parrainée par Anthropic. « Claude » et « Claude Code » sont des marques commerciales d’Anthropic. Les fonctionnalités de Claude Code décrites ici correspondent à la documentation publique d’Anthropic au moment de la rédaction et évoluent fréquemment ; les prix et les listes de modèles de cette page proviennent des paramètres en temps réel de cette passerelle.

Autres guides Claude Code

Claude Code : le guide completComment installer Claude CodeDocumentation de la CLI Claude Code : commandes et optionsLes tarifs et limites de Claude Code expliquésLe SDK Claude Code, désormais Claude Agent SDKCompétences et plugins Claude CodeClaude Code dans GitHub : l’App, l’Action et @claudeClaude Code dispose-t-il d’une interface web ? Le web, le bureau et l’IDE expliquésQuel modèle Claude Code utilise et comment en changerLes erreurs de Claude Code et comment les résoudreClaude Code est-il open source ?Tutoriel Claude Code : votre première vraie sessionClaude pour les étudiants : Claude Code, l’API et ce que le statut étudiant vous apporte réellementComment utiliser Claude Code pour automatiser l’assurance qualitéClaude Code ou Cursor : lequel choisir, quand — et comment utiliser les deuxClaude Code vs Codex vs OpenCode : comparaison des agents de terminalSous-agents de Claude Code : fonctionnement, définition et équipes d’agentsMCP dans Claude Code : connexion de serveurs, portées, MCP distant et exemples concretsL’écosystème Claude Code : routeurs, frameworks, plugins et listes qui les recensentClaude Code dans VS Code : l’extension, l’utilisation via le terminal et les erreursComment utiliser OpenRouter dans Claude Code (et quand s’en passer)Erreur de limite de débit de Claude : ce que signifie « API error: rate limit reached » et comment la résoudreComment utiliser Claude Code : de l’installation à l’utilisation quotidienne