Permission modes
Las reglas de la lección anterior afinan el detalle. El permission mode pone la línea base: cuánto te interrumpe Claude por defecto. Las dos capas trabajan juntas — el modo decide el comportamiento general, las reglas pre-aprueban o bloquean casos concretos.
Los modos
| Modo | Qué corre sin preguntar | Para qué |
|---|---|---|
default | solo lecturas | empezar, trabajo sensible |
acceptEdits | lecturas + edición de ficheros + mkdir/mv/cp… en tu working dir | iterar revisando luego con git diff |
plan | solo lecturas (explora y propone, no edita) | entender el repo antes de tocar |
auto | todo, con un clasificador de seguridad detrás (research preview) | tareas largas con dirección confiable |
dontAsk | solo lo pre-aprobado en allow | CI y scripts bloqueados |
bypassPermissions | todo, sin red de seguridad | solo en contenedores/VMs aislados |
Los dos que usarás a diario son default (revisas cada acción) y acceptEdits (le dejas editar y revisas después con git diff). plan es el "mira antes de tocar" que adelantamos en la intro.
Cómo cambiar de modo
El modo se controla desde la herramienta, no pidiéndoselo a Claude en el chat:
- En vivo (CLI): pulsa
Shift+Tabpara ciclardefault → acceptEdits → plan. El modo actual aparece en la barra de estado. - Al arrancar:
claude --permission-mode plan. - Por defecto:
defaultModeen settings.
{ "permissions": { "defaultMode": "acceptEdits" } }
En VS Code / Desktop hay un selector de modo en la caja del prompt.
Rutas protegidas
En todos los modos salvo bypassPermissions, hay un conjunto de rutas que nunca se auto-aprueban, para que el agente no corrompa por accidente el estado del repo o su propia config:
- directorios como
.git,.config/git,.claude(excepto.claude/worktrees, donde Claude guarda sus propios worktrees),.vscode,.idea,.husky,.devcontainer… - ficheros como
.mcp.json,.gitconfig, tu.bashrc/.zshrc…
Escribir ahí siempre pregunta (o se deniega en dontAsk). Es una red contra errores del modelo.
Y aunque estés en
acceptEdits, hay ficheros de config que dan ejecución de código —.npmrc,.yarnrc*,bunfig.toml,.bazelrc,.pre-commit-config.yaml, los de.devcontainer/…— que también te preguntan antes de tocarlos. La auto-aprobación de ediciones no se extiende a lo que podría ejecutarse luego en tu máquina.
El modo peligroso: bypassPermissions
bypassPermissions (alias --dangerously-skip-permissions) se salta todas las comprobaciones, incluidas las rutas protegidas. Solo rm -rf / y rm -rf ~ siguen preguntando, como cortacircuitos.
Úsalo solo en un entorno aislado —contenedor, VM, dev container sin internet— donde Claude no pueda dañar tu host. Nunca en tu máquina de trabajo. No protege contra inyección de prompt; para "menos prompts pero con red de seguridad", el modo
autoes la opción, no este. (En Linux/macOS, además, se niega a arrancar como root.)
Un admin puede bloquear este modo con permissions.disableBypassPermissionsMode: "disable" en managed settings.
Cómo encaja con las reglas
Los modos ponen la base; las reglas de la lección anterior se superponen en cualquier modo (excepto bypassPermissions, que se salta la capa de permisos entera). Combinación recomendada para empezar:
- Modo
defaultoacceptEdits. - Tus
allow/denyversionados en.claude/settings.json. bypassPermissionsreservado para sandboxes (siguiente: la red de seguridad del sistema operativo).
Qué llevas hasta aquí
- Seis modos; en el día a día,
defaultyacceptEdits, conplanpara explorar. - Cambias de modo con
Shift+Tab,--permission-modeodefaultMode— no por chat. - Las rutas protegidas te cubren en todos los modos salvo
bypassPermissions, que se reserva para entornos aislados.
En las dos últimas lecciones: el porqué de todo esto (seguridad) y la barrera que impone el sistema operativo (sandbox).
Fuente oficial: Permission modes
¿Quieres llevar la cuenta de las lecciones que has terminado?
Entrar para guardar progreso