Charly
·4 min de lecture

Mes 5 hooks Claude Code qui changent tout au quotidien

Les hooks Claude Code exécutent des commandes shell au démarrage de session, à l'écriture de fichiers et aux appels d'outils. Voici les 5 que j'utilise chaque jour.

La plupart des gens découvrent Claude Code pour l'IA. Ils passent à côté des hooks.

Les hooks sont des commandes shell qui s'exécutent automatiquement quand quelque chose se passe dans ta session Claude Code : une session démarre, un outil s'exécute, Claude s'arrête. Tu les définis dans .claude/settings.json. Ils tournent silencieusement en arrière-plan.

Voici les 5 que j'utilise chaque jour.

À quoi ressemblent les hooks

{
  "hooks": {
    "UserPromptSubmit": [
      {
        "matcher": "",
        "hooks": [
          { "type": "command", "command": "echo 'Aujourd'hui : $(date)'" }
        ]
      }
    ]
  }
}

Les événements disponibles : SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, Stop.


Hook 1 — Injection automatique de la date

Événement : UserPromptSubmit

echo "Contexte : aujourd'hui c'est le $(date '+%A %d %B %Y')."

Claude n'a pas de conscience du temps réel. Chaque prompt reçoit automatiquement la date du jour. Utile pour tout ce qui est sensible au temps : changelogs, deadlines, logique de planification.


Hook 2 — Notification push quand Claude s'arrête

Événement : Stop

osascript -e 'display notification "Claude a terminé" with title "Claude Code"'

Les longues tâches (refactos, exécution de tests, analyses) peuvent prendre 2 à 5 minutes. Sans notification, soit je fixe l'écran, soit je rate le résultat. Ce hook se déclenche dès que Claude finit une tâche, qu'elle ait réussi ou atteint une limite.

Sur macOS tu as une notification native. Sur Linux, remplace par notify-send.


Hook 3 — Safety check avant l'exécution Bash

Événement : PreToolUse (Bash)

command=$(echo "$CLAUDE_TOOL_INPUT" | jq -r '.command')
if echo "$command" | grep -qE '(rm -rf|drop table|DELETE FROM|reset --hard)'; then
  echo "BLOQUÉ : commande destructive détectée. Confirme manuellement." >&2
  exit 1
fi

Ce hook intercepte chaque appel à l'outil Bash et bloque les patterns que j'ai marqués comme dangereux. Un exit code 1 stoppe l'exécution et remonte l'erreur dans le contexte de Claude. Adapte la regex à ce qui te préoccupe.


Hook 4 — Auto-lint après chaque écriture de fichier

Événement : PostToolUse (Write/Edit)

file=$(echo "$CLAUDE_TOOL_INPUT" | jq -r '.file_path')
ext="${file##*.}"
if [[ "$ext" == "ts" || "$ext" == "tsx" ]]; then
  npx eslint --fix "$file" --quiet 2>/dev/null || true
fi

Chaque fichier TypeScript que Claude écrit est immédiatement linté. Plus de 10 erreurs ESLint à découvrir après un gros refacto. Le || true évite de bloquer si le fichier a des erreurs non corrigeables — Claude les voit au prochain appel d'outil.


Hook 5 — Chargement du briefing projet au démarrage

Événement : SessionStart

cat .claude/briefing.md 2>/dev/null && echo "---"
git log --oneline -5 2>/dev/null

Mon .claude/briefing.md contient : l'objectif du sprint en cours, le travail en cours, les blocages connus. Combiné aux 5 derniers commits, Claude démarre chaque session avec l'état réel du projet — pas seulement ce qui est dans CLAUDE.md.

Je mets à jour le fichier de briefing quand les priorités changent. Ça prend 30 secondes.


Où les mettre

Les hooks globaux vont dans ~/.claude/settings.json (s'appliquent à tous les projets). Les hooks projet vont dans .claude/settings.json à la racine du repo (commité, partagé avec l'équipe).

Pour les hooks qui référencent des chemins ou outils spécifiques au projet, utilise le fichier projet.


L'effet cumulatif

Aucun de ces hooks n'est spectaculaire pris individuellement. Ensemble, ils suppriment les petites frictions qui cassent le flow : noter la date manuellement, vérifier si Claude a fini, attraper les commandes destructives trop tard, corriger le lint en second passage, ré-expliquer le contexte.

C'est là que passe le temps. Les hooks sont comment tu le récupères.

Le Claude Code Skills Starter Kit inclut des hooks prêts à l'emploi pour le formatage automatique, la détection de secrets et le blocage des commandes destructives — à déposer dans ~/.claude/.

Reçois le prochain article par mail

Des astuces concrètes pour construire avec l'IA. Un email par article.

Articles liés