Inizia con i hook di Claude Code
Impara come personalizzare ed estendere il comportamento di Claude Code registrando comandi shell
Gli hook di Claude Code sono comandi shell definiti dall’utente che vengono eseguiti in vari punti del ciclo di vita di Claude Code. Gli hook forniscono controllo deterministico sul comportamento di Claude Code, garantendo che certe azioni avvengano sempre piuttosto che affidarsi al LLM per scegliere di eseguirle.
Per la documentazione di riferimento sugli hook, vedi Riferimento hook.
Esempi di casi d’uso per gli hook includono:
- Notifiche: Personalizza come ricevi notifiche quando Claude Code è in attesa del tuo input o permesso per eseguire qualcosa.
- Formattazione automatica: Esegui
prettier
sui file .ts,gofmt
sui file .go, ecc. dopo ogni modifica di file. - Logging: Traccia e conta tutti i comandi eseguiti per conformità o debugging.
- Feedback: Fornisci feedback automatizzato quando Claude Code produce codice che non segue le convenzioni della tua codebase.
- Permessi personalizzati: Blocca modifiche ai file di produzione o directory sensibili.
Codificando queste regole come hook piuttosto che istruzioni di prompt, trasformi suggerimenti in codice a livello di app che viene eseguito ogni volta che è previsto che venga eseguito.
Devi considerare le implicazioni di sicurezza degli hook mentre li aggiungi, perché gli hook vengono eseguiti automaticamente durante il loop dell’agente con le credenziali del tuo ambiente attuale. Ad esempio, codice hook malevolo può esfiltare i tuoi dati. Rivedi sempre l’implementazione dei tuoi hook prima di registrarli.
Per le migliori pratiche di sicurezza complete, vedi Considerazioni sulla Sicurezza nella documentazione di riferimento degli hook.
Panoramica degli Eventi Hook
Claude Code fornisce diversi eventi hook che vengono eseguiti in punti diversi del flusso di lavoro:
- PreToolUse: Viene eseguito prima delle chiamate agli strumenti (può bloccarle)
- PostToolUse: Viene eseguito dopo il completamento delle chiamate agli strumenti
- Notification: Viene eseguito quando Claude Code invia notifiche
- Stop: Viene eseguito quando Claude Code finisce di rispondere
- SubagentStop: Viene eseguito quando i task del subagent si completano
Ogni evento riceve dati diversi e può controllare il comportamento di Claude in modi diversi.
Quickstart
In questo quickstart, aggiungerai un hook che registra i comandi shell che Claude Code esegue.
Prerequisiti
Installa jq
per l’elaborazione JSON nella riga di comando.
Passo 1: Apri la configurazione degli hook
Esegui il comando slash /hooks
e seleziona
l’evento hook PreToolUse
.
Gli hook PreToolUse
vengono eseguiti prima delle chiamate agli strumenti e possono bloccarle fornendo
a Claude feedback su cosa fare diversamente.
Passo 2: Aggiungi un matcher
Seleziona + Add new matcher…
per eseguire il tuo hook solo sulle chiamate agli strumenti Bash.
Digita Bash
per il matcher.
Usa una stringa vuota ""
per abbinare tutti gli strumenti. Il carattere *
non è un matcher valido da solo.
Passo 3: Aggiungi l’hook
Seleziona + Add new hook…
e inserisci questo comando:
Passo 4: Salva la tua configurazione
Per la posizione di archiviazione, seleziona User settings
dato che stai registrando nella tua directory
home. Questo hook si applicherà quindi a tutti i progetti, non solo al tuo progetto
attuale.
Poi premi Esc finché non torni al REPL. Il tuo hook è ora registrato!
Passo 5: Verifica il tuo hook
Esegui di nuovo /hooks
o controlla ~/.claude/settings.json
per vedere la tua configurazione:
Passo 6: Testa il tuo hook
Chiedi a Claude di eseguire un comando semplice come ls
e controlla il tuo file di log:
Dovresti vedere voci come:
Altri Esempi
Per un esempio di implementazione completo, vedi l’esempio di validatore di comandi bash nella nostra codebase pubblica.
Hook di Formattazione Codice
Formatta automaticamente i file TypeScript dopo la modifica:
Hook di Notifica Personalizzato
Ricevi notifiche desktop quando Claude ha bisogno di input:
Hook di Protezione File
Blocca modifiche ai file sensibili:
Scopri di più
- Per la documentazione di riferimento sugli hook, vedi Riferimento hook.
- Per le migliori pratiche di sicurezza complete e linee guida sulla sicurezza, vedi Considerazioni sulla Sicurezza nella documentazione di riferimento degli hook.
- Per i passaggi di risoluzione dei problemi e tecniche di debugging, vedi Debugging nella documentazione di riferimento degli hook.