Controlla l’uso degli strumenti e i permessi nel Claude Code SDK
canUseTool
, gli hook e le regole di permesso di settings.json. Per la documentazione completa dell’API, consulta il riferimento TypeScript SDK.
canUseTool
- Approvazione dinamica per casi non coperti, richiede il permesso all’utentequery()
o cambiarla dinamicamente durante le sessioni di streaming.
Modalità | Descrizione | Comportamento Strumento |
---|---|---|
default | Comportamento standard dei permessi | Si applicano i controlli normali dei permessi |
plan | Modalità pianificazione - nessuna esecuzione | Claude può utilizzare solo strumenti di sola lettura; presenta un piano prima dell’esecuzione (Attualmente non supportato nell’SDK) |
acceptEdits | Accetta automaticamente le modifiche ai file | Le modifiche ai file e le operazioni del filesystem vengono approvate automaticamente |
bypassPermissions | Bypassa tutti i controlli dei permessi | Tutti gli strumenti vengono eseguiti senza richieste di permesso (usa con cautela) |
acceptEdits
)bypassPermissions
)bypassPermissions
- Se attiva, permette tutti gli strumenti rimanenticanUseTool
- Gestisce i casi rimanentibypassPermissions
bypassPermissions
sovrascrive le regole di permesso e canUseTool
canUseTool
viene passato come opzione quando si chiama la funzione query
. Riceve il nome dello strumento e i parametri di input, e deve restituire una decisione - permettere o negare.
canUseTool si attiva ogni volta che Claude Code mostrerebbe una richiesta di permesso a un utente, ad esempio quando gli hook e le regole di permesso non lo coprono e non è in modalità accettazione automatica.
Ecco un esempio completo che mostra come implementare l’approvazione interattiva degli strumenti:
canUseTool
gestisce i casi non coperti dalle regole di permessosettings.json
forniscono controllo dichiarativo con parsing integrato dei comandi bash. Queste regole vengono valutate prima che venga chiamato canUseTool
. Per maggiori dettagli sulla configurazione delle impostazioni, consulta la documentazione delle impostazioni di Claude Code.
NomeStrumento(pattern)
Bash(npm:*)
corrisponde a qualsiasi comando che inizia con “npm”Read(./src/**/*.ts)
corrisponde ai file TypeScript in srcWebFetch
blocca tutti i fetch webrm -rf
o curl | sh
Bash(git:*)
- Corrisponde a qualsiasi comando gitBash(npm run test)
- Corrisponde al comando esattoBash(npm run test:*)
- Corrisponde a npm run test:unit, test:integration, ecc.