Hook: automazione deterministica
Gli hook sono comandi shell che Claude Code esegue automaticamente in punti definiti del suo ciclo di vita. Mentre i permessi decidono se un'azione è consentita, gli hook permettono a te di eseguire logica deterministica attorno a essa — formattazione, validazione, logging, gate. Sono il modo per rendere un comportamento garantito anziché un "ricordati di".
Quando ricorrere a un hook
- Auto-formattazione / lint dopo ogni modifica di file (
PostToolUse). - Bloccare un'azione che viola una regola prima che venga eseguita (
PreToolUse). - Notificare o registrare quando una sessione termina o un'attività si conclude (
Stop). - Iniettare contesto all'avvio della sessione.
Come funzionano
Registri gli hook in settings.json, associandoli a un evento (e spesso a un matcher di strumento). Quando l'evento si verifica, Claude esegue il tuo comando e ne legge il risultato — un'uscita diversa da zero o un output specifico può bloccare l'azione e restituire un messaggio a Claude.
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{ "type": "command", "command": "npx prettier --write \"$CLAUDE_FILE_PATH\"" }
]
}
]
}
}
L'hook riceve il contesto (ad esempio il percorso del file, il nome dello strumento) tramite ambiente/stdin — vedi la documentazione per il payload esatto, che varia in base all'evento.
Il modello mentale
Buone pratiche
- Mantieni gli hook veloci e idempotenti — vengono eseguiti molto spesso.
- Segnala forte i problemi reali, ma non bloccare per questioni estetiche.
- Tratta l'output dell'hook come feedback per Claude — un messaggio chiaro lo aiuta a correggersi da solo.
- Gli hook vengono eseguiti con i privilegi della tua shell — rivedi qualsiasi hook che non hai scritto tu (Revisione del codice di terze parti).
Starter da copia-incolla si trovano in Ricette per hook e settings.json.
Avanti
- settings.json · Permessi
- Skill — competenza contro automazione
- Rendere robuste le esecuzioni autonome