Workbranch › Guías
GuíaCómo gestionar los permisos en Claude Code
Claude Code pregunta antes de ejecutar comandos o editar archivos, y demasiadas preguntas te frenan, mientras que muy pocas pueden ser arriesgadas. Esta guía explica las solicitudes, los modos de permisos y las reglas que puedes guardar, para que apruebes el trabajo rutinario una sola vez y mantengas bloqueado lo peligroso.
Respuesta rápida: responde a cada solicitud con Yes (Sí), Yes, and don't ask again (Sí, y no volver a preguntar) o No, y pulsa Shift+Tab (Mayús+Tab) para cambiar de modo, por ejemplo a aceptar ediciones o a plan. Para aprobar comandos rutinarios para siempre, escribe /permissions o añade reglas allow como Bash(npm run *) a .claude/settings.json, y añade reglas deny como Read(./.env) para lo que Claude no debe tocar nunca.
Esto sigue la documentación de Claude Code de Anthropic en octubre de 2026. ¿Eres nuevo en Claude Code? Empieza por cómo empezar con Claude Code.
Sobre qué pregunta Claude Code
| Acción | ¿Pregunta en modo Manual? | «Don't ask again» dura |
|---|---|---|
| Leer archivos, buscar | No, dentro de tus directorios de trabajo | No hace falta |
| Comandos de shell | Sí, salvo un conjunto integrado de comandos de solo lectura | Para siempre, por repositorio y comando |
| Editar o escribir archivos | Sí | Hasta que termina la sesión |
| Obtener una página web | Sí, salvo algunos sitios de documentación | Para siempre, por repositorio y dominio |
| Búsqueda web | Sí | Para siempre, por repositorio |
Una solicitud muestra lo que Claude quiere hacer y tus opciones. En la mayoría de solicitudes puedes situarte en Yes o No y pulsar Tab para añadir un comentario; con No, el comentario le llega a Claude como tu motivo y Claude sigue trabajando teniéndolo en cuenta.
Elige un modo de permisos
Pulsa Shift+Tab durante una sesión para recorrer los modos; la barra de estado muestra cuál está activo. También puedes empezar en uno con claude --permission-mode plan.
| Modo | Qué hace | Úsalo cuando |
|---|---|---|
Manual (default) | Pregunta la primera vez que se usa cada herramienta | Quieres verlo todo |
Accept edits (aceptar ediciones, acceptEdits) | Aplica sin preguntar ediciones de archivos y comandos de archivo sencillos como mkdir o mv en tu proyecto | Confías en la tarea y vas a revisar el diff |
Plan (plan) | Explora y propone un plan; no edita nada hasta que lo apruebes | Cambios grandes o poco claros |
Auto (auto) | Se salta las solicitudes rutinarias; un clasificador en segundo plano comprueba los comandos y las peticiones de red frente a lo que pediste | Tareas más largas con menos interrupciones |
Don't ask (no preguntar, dontAsk) | Rechaza todo lo que generaría una solicitud y solo ejecuta lo aprobado de antemano | Scripts muy restringidos y CI; no está en el ciclo de Shift+Tab, inícialo con --permission-mode dontAsk |
Bypass (omitir, bypassPermissions) | Se salta las solicitudes, también para carpetas protegidas como .git | Solo en un contenedor o una máquina virtual aislados |
Las versiones recientes inician en modo auto las sesiones interactivas de terminal y de VS Code, y funciona en todos los planes, solo con los modelos más nuevos. Para elegir tú el modo inicial, define "defaultMode" dentro de permissions en ~/.claude/settings.json. Los modos auto y bypass definidos en los archivos de configuración de un proyecto se ignoran, así que un repositorio no puede activarlos por ti.
Guarda reglas allow, ask y deny
- En una sesión, escribe
/permissions. El diálogo muestra todas las reglas y de qué archivo de configuración viene cada una, y te deja añadir o quitar reglas. Los cambios se aplican desde la siguiente acción de Claude. - O edita directamente un archivo de configuración. Las reglas compartidas del equipo van en
.claude/settings.json(haz commit); las tuyas, en.claude/settings.local.jsono, para todos los proyectos, en~/.claude/settings.json. - Escribe las reglas como
TooloTool(pattern):Bash(npm run *): cualquier script de npmBash(git commit *): commits, pero no otros comandos de gitRead(./.env): el archivo.envdel proyectoWebFetch(domain:example.com): páginas de ese sitiomcp__github__*: todas las herramientas de un servidor MCP llamado github
Un punto de partida típico:
{"permissions": {"allow": ["Bash(npm run *)", "Bash(git commit *)"], "deny": ["Bash(git push *)", "Read(./.env)", "Read(./secrets/**)"]}}
Las reglas se comprueban en un orden fijo: primero deny, luego ask y después allow. Un deny siempre gana, incluso frente a un allow más específico, y una regla ask pregunta aunque también coincida un allow.
Cómo trabajar de forma segura
- Pon el
*después del subcomando.Bash(git log *)solo permitegit log;Bash(git *)permite todos los comandos de git, incluidos los que ejecutan otros programas. - Ojo con el espacio.
Bash(ls *)no coincide conlsof;Bash(ls*)sí. - Las reglas de comandos no son un muro. Un deny para
Bash(rm *)no impidebash -c 'rm …'ni/bin/rm. Claude Code sí separa los comandos encadenados, así que un comando permitido seguido de&&y otro sigue necesitando que todas las partes estén permitidas. Para límites estrictos de archivos y red, usa el sandboxing de Claude Code. - Bloquea los secretos con reglas deny de Read. En versiones recientes, un deny de
Readtambién impide que se adjunten las rutas de imagen coincidentes que pegas en el mensaje, y oculta los nombres coincidentes cuando mencionas una carpeta con @. - Los archivos protegidos siguen protegidos. Las reglas allow nunca aprueban de antemano escrituras en sitios como
.git,.claude,.mcp.jsony archivos de shell como.zshrc. Fuera del modo bypass se te pregunta antes, o en modo auto el clasificador revisa la escritura. - Desactiva los modos arriesgados. Define
permissions.disableBypassPermissionsModeopermissions.disableAutoModecomo"disable"para que no se puedan usar.
Si no funciona
- Una regla allow sigue preguntando: puede que coincida una regla deny o ask de otro archivo de configuración. Abre
/permissionspara ver el origen de cada regla. - Una regla para otra carpeta no se aplica: Claude solo trabaja dentro de sus directorios de trabajo. Inicia con
claude --add-dir patho añade la carpeta aadditionalDirectories. - Una regla de ruta en la configuración de usuario no alcanza tu proyecto: las rutas que empiezan por
/en~/.claude/settings.jsonson relativas a~/.claude. Usa~/o//para rutas absolutas. - La solicitud no tiene «don't ask again»: esa opción solo aparece cuando la solicitud puede mostrar todo lo que cubriría una regla guardada. Aprueba una vez o escribe tú la regla.
Fuentes
- Claude Code user FAQ (Centro de ayuda de Claude, consultado el 30 de octubre de 2026)
- Configure permissions (Claude Code Docs, consultado el 30 de octubre de 2026)
- Permission modes (Claude Code Docs, consultado el 30 de octubre de 2026)
Preguntas frecuentes
¿Puedo decirle a Claude en CLAUDE.md que no ejecute ciertos comandos?
Puedes, pero nada lo hace cumplir. CLAUDE.md orienta las decisiones de Claude, mientras que Claude Code solo aplica reglas de permisos, modos y hooks. Usa una regla deny para todo lo que no deba ocurrir nunca.
¿Dónde guarda mi elección «don't ask again»?
Para comandos y dominios web escribe una regla en .claude/settings.local.json, en la raíz del repositorio git, así que se aplica a las sesiones futuras allí. Las aprobaciones de ediciones de archivos solo duran hasta que termina la sesión.
¿Mi empresa puede bloquear estos ajustes?
Sí. Los administradores pueden desplegar una configuración gestionada que los ajustes de usuario y de proyecto no pueden anular, incluida la desactivación de los modos bypass o auto.