Controla el uso de herramientas y permisos en el SDK de Claude Code
canUseTool
, hooks y reglas de permisos de settings.json. Para documentación completa de la API, consulta la referencia del SDK de TypeScript.
canUseTool
- Aprobación dinámica para casos no cubiertos, solicita permiso al usuarioquery()
o cambiarlo dinámicamente durante sesiones de streaming.
Modo | Descripción | Comportamiento de Herramientas |
---|---|---|
default | Comportamiento estándar de permisos | Se aplican verificaciones normales de permisos |
plan | Modo de planificación - sin ejecución | Claude solo puede usar herramientas de solo lectura; presenta un plan antes de la ejecución (Actualmente no soportado en el SDK) |
acceptEdits | Auto-aceptar ediciones de archivos | Las ediciones de archivos y operaciones del sistema de archivos son aprobadas automáticamente |
bypassPermissions | Omitir todas las verificaciones de permisos | Todas las herramientas se ejecutan sin solicitudes de permisos (usar con precaución) |
acceptEdits
)bypassPermissions
)bypassPermissions
- Si está activo, permite todas las herramientas restantescanUseTool
- Maneja casos restantesbypassPermissions
bypassPermissions
anula las reglas de permitir y canUseTool
canUseTool
se pasa como una opción al llamar la función query
. Recibe el nombre de la herramienta y los parámetros de entrada, y debe devolver una decisión: permitir o denegar.
canUseTool se activa cuando Claude Code mostraría una solicitud de permisos a un usuario, por ejemplo, los hooks y reglas de permisos no lo cubren y no está en modo de auto-aceptación.
Aquí hay un ejemplo completo que muestra cómo implementar aprobación interactiva de herramientas:
canUseTool
maneja casos no cubiertos por reglas de permisossettings.json
proporcionan control declarativo con análisis integrado de comandos bash. Estas reglas se evalúan antes de que se llame canUseTool
. Para más detalles sobre configuración de settings, consulta la documentación de configuración de Claude Code.
NombreHerramienta(patrón)
Bash(npm:*)
coincide con cualquier comando que comience con “npm”Read(./src/**/*.ts)
coincide con archivos TypeScript en srcWebFetch
bloquea todas las búsquedas webrm -rf
o curl | sh
Bash(git:*)
- Coincide con cualquier comando gitBash(npm run test)
- Coincide con comando exactoBash(npm run test:*)
- Coincide con npm run test:unit, test:integration, etc.