Gli hook ti consentono di eseguire logica personalizzata in risposta agli eventi del ciclo di vita dell’agente. Puoi usare gli hook per applicare policy, aggiungere contesto, registrare azioni, modificare le autorizzazioni o integrarti con sistemi esterni. Devin CLI utilizza un formato di hook compatibile con gli hook di Claude Code. Se hai già hook configurati per Claude Code, funzioneranno automaticamente con Devin CLI.Documentation Index
Fetch the complete documentation index at: https://docs.devinenterprise.com/llms.txt
Use this file to discover all available pages before exploring further.
Cosa possono fare gli Hook?
Applicare policy
Bloccare comandi pericolosi, richiedere conferma per azioni specifiche o limitare l’accesso ai file.
Aggiungere contesto
Inserire istruzioni o informazioni aggiuntive quando vengono richiamati strumenti specifici.
Eseguire effetti collaterali
Eseguire script, inviare notifiche o registrare eventi quando si verificano determinate condizioni.
Modificare le autorizzazioni
Concedere o limitare dinamicamente le autorizzazioni in base al contesto.
Esempio rapido
.devin/hooks.v1.json nel tuo progetto:
./scripts/check-command.sh prima di ogni esecuzione di un comando shell. Lo script riceve i dati dell’evento su stdin e può bloccare l’azione restituendo un codice di uscita non zero.
Eventi degli hook
| Evento | Quando si attiva |
|---|---|
PreToolUse | Prima dell’esecuzione di uno strumento |
PostToolUse | Dopo il completamento di uno strumento |
PermissionRequest | Quando è necessaria una decisione su un’autorizzazione |
UserPromptSubmit | Quando l’utente invia un messaggio |
Stop | Quando l’agente vuole interrompersi |
SessionStart | Quando inizia una sessione |
SessionEnd | Quando termina una sessione |
Formato degli hook
command o prompt), un matcher facoltativo (regex sul tool_name dell’evento hook) e una configurazione:
| Field | Descrizione |
|---|---|
matcher | Espressione regolare confrontata con tool_name dell’evento hook. Una stringa vuota o l’omissione di matcher corrisponde a tutti i nomi degli strumenti. |
type | "command" per eseguire un comando shell oppure "prompt" per valutare un prompt LLM. |
command | Comando shell da eseguire (per il tipo command). |
prompt | Prompt LLM da valutare (per il tipo prompt). |
timeout | Timeout in secondi (facoltativo). |
Hook di comando
| Campo di output | Descrizione |
|---|---|
decision | "approve", "block" o "deny" |
reason | Spiegazione mostrata all’agente |
DEVIN_PROJECT_DIR viene impostata automaticamente sulla directory radice del progetto.
Consulta Using the Matcher per i nomi degli strumenti integrati e il formato dei nomi degli strumenti MCP che puoi abbinare.
Codici di uscita
| Codice | Significato |
|---|---|
| 0 | Successo — l’hook continua normalmente |
| 2 | Blocco — l’azione viene negata |
| Altri | Errore — viene registrato ma non blocca |
Dove si trovano gli hook
A livello di progetto
| Percorso | Descrizione |
|---|---|
.devin/hooks.v1.json | File hooks indipendente (consigliato) |
.devin/config.json | chiave "hooks" nel file di configurazione |
.devin/config.local.json | chiave "hooks" (override locale, ignorato da git) |
.claude/settings.json | chiave "hooks" (formato Claude Code) |
.claude/settings.local.json | chiave "hooks" (formato Claude Code) |
A livello di utente (globale)
| Posizione | Descrizione |
|---|---|
~/.config/devin/config.json (%APPDATA%\devin\config.json in Windows) | chiave "hooks" nella configurazione utente |
~/.claude.json | chiave "hooks" (formato Claude Code) |
~/.claude/settings.json | chiave "hooks" (formato Claude Code) |
~/.claude/settings.local.json | chiave "hooks" (formato Claude Code) |
In
.devin/hooks.v1.json, l’oggetto hooks coincide con l’intero file (non è necessaria alcuna chiave contenitore). In tutte le altre posizioni, hooks è annidato sotto la chiave "hooks" in un file Settings.Gli hook dei percorsi
.claude/ vengono caricati quando read_config_from.claude è abilitato (per impostazione predefinita). Se necessario, puoi disabilitarlo nella tua configurazione utente.Verifica degli hook
/hooks per visualizzare tutti gli hook attualmente caricati e i relativi file sorgente:
Prossimi passaggi
Hook del ciclo di vita
Approfondisci ogni tipo di evento e i dati disponibili.
Documentazione degli hook di Claude Code
Riferimento completo per il formato degli hook.
