Permisos
El sistema de permisos de Claude Code garantiza que nada ocurra sin tu conocimiento. Aprende a configurar qué puede y qué no puede hacer Claude.
Filosofía de permisos
Claude Code sigue el principio de mínimo privilegio: por defecto pide confirmación para cualquier acción potencialmente irreversible o que afecte a recursos fuera de tu proyecto. Tú decides cuándo darle más autonomía.
Herramientas y sus permisos
Claude Code tiene acceso a estas herramientas, cada una con su nivel de riesgo por defecto:
| Herramienta | Qué hace | Confirmación por defecto |
|---|---|---|
Read | Leer archivos de tu proyecto | No |
Edit | Editar archivos existentes | Sí (muestra diff) |
Write | Crear nuevos archivos | Sí |
Bash | Ejecutar comandos de terminal | Sí |
WebFetch | Hacer peticiones HTTP | Sí |
WebSearch | Buscar en internet | No |
TodoRead/Write | Gestionar lista de tareas interna | No |
Permitir y denegar operaciones
Configura permisos en .claude/settings.json para no tener que confirmar operaciones frecuentes:
{
"permissions": {
"allow": [
"Bash(npm run:*)",
"Bash(git:*)",
"Bash(npx:*)",
"Read(**)",
"Edit(**)",
"Write(**)",
"WebFetch(domain:api.github.com)"
],
"deny": [
"Bash(rm -rf:*)",
"Bash(sudo:*)",
"WebFetch(domain:*.evil.com)"
]
}
}Sintaxis de permisos
Los permisos usan el formato Herramienta(patrón:valor):
Bash(npm:*)— permite cualquier comando npmBash(git commit:*)— permite git commit con cualquier argumentoRead(**)— permite leer cualquier archivo (**= cualquier ruta)WebFetch(domain:api.example.com)— permite fetch solo a ese dominioEdit(src/**)— permite editar solo archivos bajosrc/
Gestión interactiva de permisos
Dentro de Claude Code, usa el comando:
/permissionsEsto abre un panel interactivo donde puedes ver, añadir o revocar permisos de la sesión actual.
Permisos durante una sesión
Cuando Claude Code solicita hacer algo que no tienes pre-autorizado, te mostrará un diálogo como este:
Claude quiere ejecutar:
git push origin main
¿Permitir? [s/N/siempre/nunca] _- s — permitir solo esta vez.
- N — denegar (Claude buscará otra alternativa).
- siempre — añadir a la lista de permisos permanentes.
- nunca — añadir a la lista de denegados permanentes.
Modo sin permisos (peligroso)
Para entornos controlados (CI, Docker, sandboxes), puedes desactivar todas las confirmaciones:
claude --dangerously-skip-permissions "implementa los tests unitarios"Buenas prácticas de seguridad
- Usa git: trabajar en un repositorio git te permite revertir cualquier cambio que Claude haya hecho con
git restore. - Limita el scope en producción: en servidores de producción, no le des permisos de escritura a Claude.
- Revisa los diffs: Claude siempre muestra un diff antes de editar. Léelo antes de aceptar.
- Permisos por dominio: si usas WebFetch, especifica los dominios exactos en lugar de
WebFetch(*). - Variables de entorno: Claude no puede leer tus secretos a menos que estén en el entorno o se los pases explícitamente.
Configuración de permisos para equipo
Añade .claude/settings.json a tu repositorio para que todo el equipo use la misma configuración de permisos base:
# .gitignore — NO ignorar settings.json del equipo
# (sí ignorar settings.local.json para configs personales)
.claude/settings.local.jsonsettings.local.json para configuraciones personales que no deben compartirse (como tu API key o rutas locales). Claude Code lo lee y tiene prioridad sobre settings.json.