Contrôlez l’utilisation des outils et les permissions dans le SDK Claude Code
canUseTool
, les hooks, et les règles de permissions settings.json. Pour la documentation complète de l’API, consultez la référence du SDK TypeScript.
canUseTool
- Approbation dynamique pour les cas non couverts, demande l’autorisation à l’utilisateurquery()
ou le changer dynamiquement pendant les sessions de streaming.
Mode | Description | Comportement des outils |
---|---|---|
default | Comportement de permissions standard | Les vérifications de permissions normales s’appliquent |
plan | Mode planification - pas d’exécution | Claude ne peut utiliser que des outils en lecture seule ; présente un plan avant l’exécution (Actuellement non pris en charge dans le SDK) |
acceptEdits | Accepter automatiquement les modifications de fichiers | Les modifications de fichiers et les opérations du système de fichiers sont automatiquement approuvées |
bypassPermissions | Contourner toutes les vérifications de permissions | Tous les outils s’exécutent sans invites de permissions (à utiliser avec précaution) |
acceptEdits
)bypassPermissions
)bypassPermissions
- Si actif, autorise tous les outils restantscanUseTool
- Gère les cas restantsbypassPermissions
bypassPermissions
outrepasse les règles d’autorisation et canUseTool
canUseTool
est passé comme option lors de l’appel de la fonction query
. Il reçoit le nom de l’outil et les paramètres d’entrée, et doit retourner une décision - soit autoriser soit refuser.
canUseTool se déclenche chaque fois que Claude Code afficherait une invite de permissions à un utilisateur, par exemple les hooks et les règles de permissions ne le couvrent pas et il n’est pas en mode d’acceptation automatique.
Voici un exemple complet montrant comment implémenter l’approbation interactive d’outils :
canUseTool
gère les cas non couverts par les règles de permissionssettings.json
fournissent un contrôle déclaratif avec analyse intégrée des commandes bash. Ces règles sont évaluées avant que canUseTool
ne soit appelé. Pour plus de détails sur la configuration des paramètres, consultez la documentation des paramètres Claude Code.
NomOutil(motif)
Bash(npm:*)
correspond à toute commande commençant par “npm”Read(./src/**/*.ts)
correspond aux fichiers TypeScript dans srcWebFetch
bloque toutes les récupérations webrm -rf
ou curl | sh
Bash(git:*)
- Correspond à toute commande gitBash(npm run test)
- Correspond à la commande exacteBash(npm run test:*)
- Correspond à npm run test:unit, test:integration, etc.