Claude Code --dangerously-skip-permissions con seguridad

Qué se salta el flag --dangerously-skip-permissions de Claude Code, qué lo sigue frenando, los riesgos reales y alternativas más seguras: modos, reglas allow y sandbox.

Solviera Teknoloji 12 min de lectura

--dangerously-skip-permissions inicia Claude Code en modo bypassPermissions, así que las llamadas a herramientas se ejecutan sin preguntarte antes. Es la forma más rápida de acabar con las peticiones, y también la más arriesgada. La propia documentación de Anthropic dice que se use solo en entornos aislados, como contenedores o VMs. Normalmente no lo necesitas. Unas cuantas reglas allow, el modo auto o un sandbox eliminan la mayoría de las peticiones y mantienen las barreras.

Este artículo explica qué se salta el flag, qué no, dónde falla y cuáles son las opciones más seguras. Al final muestra cómo resuelve AgentVera el mismo problema cuando hay varios agentes en marcha a la vez.

Qué hace realmente el flag

Claude Code tiene modos de permisos. El flag es un atajo para uno de ellos:

claude --dangerously-skip-permissions
# same as
claude --permission-mode bypassPermissions

En este modo Claude edita archivos, ejecuta comandos de shell y llama a herramientas sin detenerse. Según la documentación de los modos de permisos, algunas cosas lo siguen frenando:

  • Reglas deny. Una regla deny en tus ajustes bloquea una herramienta en todos los modos, incluido bypass.
  • Reglas ask explícitas. Si escribiste una regla ask, sigue preguntando.
  • Preguntas que te hace Claude. Claude todavía puede detenerse para hacerte una pregunta.
  • Borrado de rutas críticas. rm o rmdir sobre la raíz del sistema de archivos, carpetas de primer nivel, tu carpeta personal o el directorio de trabajo y sus padres siguen pidiendo confirmación.

Las reglas allow no tienen efecto en modo bypass, porque ya está todo permitido. También se permiten las escrituras en rutas protegidas como .git y .claude.

Algunos detalles más importan en la práctica:

  • La primera vez que lo usas de forma interactiva, Claude Code muestra un diálogo de advertencia. Al aceptarlo se escribe skipDangerousModePermissionPrompt: true en ~/.claude/settings.json.
  • En una ejecución no interactiva (claude -p) no hay diálogo.
  • En Linux y macOS el flag se niega a ejecutarse como root o con sudo. La comprobación se omite dentro de un sandbox reconocido.
  • No puedes pasar a bypass desde una sesión que no empezó con él. --allow-dangerously-skip-permissions añade el modo al ciclo de Shift+Tab sin activarlo.
  • Los administradores pueden desactivar el modo para todos con permissions.disableBypassPermissionsMode: "disable" en los ajustes gestionados.

Los riesgos

La documentación lo dice claramente: el modo bypass «no ofrece protección contra la inyección de prompts ni contra acciones no deseadas». Esto es lo que significa en el día a día.

Inyección de prompts

Claude lee archivos, páginas web, texto de issues y salida de herramientas. Si algo de eso contiene instrucciones, el modelo podría seguirlas. Con las peticiones activadas, ves ese curl raro a un host desconocido antes de que se ejecute. En modo bypass te enteras después.

Comandos destructivos que no están en la lista de críticos

La comprobación de rutas críticas cubre rm sobre tu carpeta personal o la raíz del proyecto. No cubre git reset --hard, git clean -fd, una tabla de base de datos eliminada, un force push ni una migración lanzada contra el entorno equivocado. Todo eso se ejecuta sin pedir confirmación.

Secretos y el resto de tu máquina

En tu portátil, Claude se ejecuta como tú. Puede leer tus claves SSH, tus credenciales en la nube y tus archivos .env, y puede acceder a la red. Un error o una instrucción inyectada tienen toda tu cuenta con la que trabajar.

Los checkpoints no lo cubren todo

Claude Code crea un checkpoint antes de cada prompt, y /rewind (o Esc dos veces) restaura el código, la conversación o ambos. Pero la documentación de checkpoints dice que los cambios hechos por comandos de Bash como rm, mv y cp no se registran, ni tampoco los cambios fuera de la sesión. Rewind no sustituye a git.

Formas más seguras de reducir las peticiones de permiso

La mayoría recurre al flag porque las peticiones los frenan. Estas opciones se ocupan de las peticiones y mantienen las barreras.

1. Elige el modo de permisos adecuado

ModoSe ejecuta sin preguntarIdeal para
default (Manual)Solo lecturasCódigo desconocido, repositorios sensibles
acceptEditsLecturas, edición de archivos, comandos de archivos comunes como mkdir, mv, cpProgramación diaria en la que revisas el diff
planSolo lecturas, sin editar código fuenteExplorar y planificar antes de un cambio
autoTodo, con un clasificador que comprueba antes cada acciónTareas largas en las que confías en la dirección
dontAskSolo herramientas preaprobadas; todo lo demás se deniegaCI y scripts
bypassPermissionsTodo salvo los casos anterioresSolo contenedores y VMs aislados

Shift+Tab recorre los modos dentro de una sesión. --permission-mode elige uno al arrancar, y permissions.defaultMode en los ajustes fija tu modo por defecto.

El modo auto es el punto medio que quiere la mayoría. Un modelo clasificador revisa cada acción antes de ejecutarla. Bloquea las acciones que van más allá de lo que pediste, que apuntan a infraestructura que no reconoce o que parecen dirigidas por contenido hostil. Si bloquea tres veces seguidas o 20 en total, el modo auto se pausa y vuelven las peticiones normales. Se aplican dos límites: necesita un modelo compatible, y la documentación dice que «reduce las peticiones de permiso pero no garantiza la seguridad». Las versiones recientes de Claude Code inician las sesiones interactivas en modo auto por defecto. Revisa /permissions para ver en qué modo estás.

2. Escribe reglas allow y deny

Las reglas de permisos viven en settings.json y las aplica Claude Code, no el modelo. Se comprueban en orden: deny, luego ask, luego allow. Gana la primera coincidencia, así que una regla allow nunca puede anular una deny.

{
  "permissions": {
    "allow": ["Bash(npm run test *)", "Bash(npm run lint)", "Bash(git diff *)"],
    "ask": ["Bash(git commit *)"],
    "deny": ["Bash(git push *)", "Read(./.env)"]
  }
}

Usa /permissions para ver y editar reglas en una sesión. Permite los comandos que ejecutas cincuenta veces al día, como tests, lint y git de solo lectura. Deniega los que nunca quieres que ejecute un agente. CLAUDE.md es una guía para el modelo. No cambia los permisos.

Para scripts, dontAsk con una lista corta de allow es más estricto que bypass:

claude -p "run the test suite and fix failures" \
  --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read" "Edit"

3. Activa el sandbox de Bash

La documentación de sandboxing describe un sandbox a nivel de sistema operativo que limita a qué archivos y dominios de red pueden llegar los comandos de shell. Actívalo con /sandbox o sandbox.enabled: true. Funciona en macOS, Linux y WSL2. Se aplica solo a los comandos de shell. Las herramientas de archivos, los servidores MCP y los hooks se ejecutan fuera de él.

4. Si te saltas los permisos, aísla primero

A veces bypass es la decisión correcta, como en una ejecución larga sin supervisión sobre código desechable. Entonces sigue la configuración de la documentación: un contenedor, VM o dev container, un usuario no root, sin secretos montados y, idealmente, sin acceso a internet. La forma habitual sin supervisión es:

claude -p "<task>" --dangerously-skip-permissions

Ejecútalo dentro del contenedor, no en tu portátil.

5. Trabaja en un worktree y haz commits a menudo

Un git worktree da al agente su propia carpeta y rama. Si destroza la rama, borras el worktree y main ni se entera. Los commits frecuentes te dan puntos de restauración que también cubren lo que cambió Bash, algo que los checkpoints no pueden.

Una tabla de decisión rápida

SituaciónQué usar
Sigues aprobando los mismos comandos de tests y lintReglas allow
Quieres menos peticiones pero con una comprobación de seguridadModo auto
Trabajo de CI o script con un conjunto conocido de herramientasdontAsk más --allowedTools
Los comandos de shell no deben tocar la red ni tu carpeta personalSandbox de Bash
Ejecución larga sin supervisión sobre código desechableBypass dentro de un contenedor, como no root
Credenciales de producción en la máquinaNunca bypass

Cómo lo gestiona AgentVera

Cuando ejecutas varios agentes, las peticiones se multiplican. Cinco agentes son cinco sitios que pueden estar esperando un sí. AgentVera te da las mismas opciones por agente, además de formas de responder a las peticiones desde cualquier sitio.

Un nivel de permisos para cada agente

En el diálogo del agente y en el selector de modelo hay un campo Permissions con tres opciones:

  • Ask: la CLI pregunta como de costumbre.
  • Auto: el modo auto propio de la CLI. Las ediciones y los comandos seguros siguen adelante, los arriesgados siguen deteniéndose. Para Claude Code esto inicia el agente con --permission-mode auto.
  • Full access: nunca pregunta. Para Claude Code es --dangerously-skip-permissions. La pista de la app lo dice claro: «Best in a worktree or container».

La cabecera del agente muestra una insignia como «Permissions: Auto». Codex y otras CLI tienen sus propios equivalentes. Cambiar el nivel reinicia el agente, y la conversación continúa. Si una política de equipo limita las aprobaciones, los agentes siguen preguntando.

Aprobar automáticamente las peticiones seguras (Pro y Team)

La aprobación automática es un camino intermedio para los agentes de Claude Code. Con Auto-approve safe requests activado, AgentVera responde solo a las peticiones por las que Claude habría preguntado de todas formas, y solo a las seguras:

  • herramientas de lectura como Read, Glob, Grep y LS,
  • comandos de shell y git de solo lectura,
  • comandos de test, lint, typecheck y build para npm, pnpm, yarn, bun, pytest, cargo, go y más.

Los comandos con >, $() o comillas invertidas nunca se aprueban automáticamente. Tus propias reglas allow y deny de Claude siguen aplicándose. Also approve file edits inside the project está desactivado por defecto. Cuando se activa, cubre las ediciones dentro del proyecto o worktree y nunca toca .git ni .env. La lista Never auto-approve empieza con git push, npm publish, rm, git reset --hard y git clean, y puedes añadir las tuyas. Recent auto-approvals muestra lo que pasó en la sesión actual.

El interruptor viene activado por defecto, pero solo surte efecto en Pro y Team. En el plan gratuito, las peticiones siguen llegándote a ti.

Responde desde tu escritorio, tu móvil o Telegram

Las peticiones que quedan te llegan estés donde estés. En el escritorio hay una cola de aprobaciones en la barra de estado, ⇧⌘A salta al agente que lleva más tiempo esperando y el Dock muestra una insignia. Si dejas una aprobación esperando, llega un recordatorio a los cinco minutos. Consulta notificaciones y aprobaciones.

Lejos del escritorio:

  • Telegram envía las peticiones de aprobación con botones Approve y Deny.
  • La vista de móvil en app.agentvera.dev muestra las aprobaciones con Approve y Reject.
  • La app móvil envía notificaciones push para ellas.

Como responder a una petición lleva segundos, tienes menos motivos para recurrir a Full access.

Agentes en Docker para un aislamiento real

Para las ejecuciones en las que sí quieres Full access, inicia el agente con Run in a Docker container. Funciona con los agentes locales de Claude Code y Codex, y está en todos los planes. Consulta agentes en Docker.

  • El contenedor solo ve la carpeta del proyecto, no tus claves SSH ni el resto de tu ordenador.
  • Cuando el agente se detiene, el contenedor se elimina. Solo quedan los cambios en la carpeta del proyecto.
  • Puedes fijar límites de CPU y memoria.
  • Los hooks y MCP siguen funcionando.

Necesita Docker Desktop, Colima u OrbStack. Es el entorno aislado que pide la documentación de Claude Code, sin que tengas que escribir un Dockerfile.

Checkpoints en cada turno

Los checkpoints de AgentVera hacen una instantánea de la carpeta de trabajo en una ref de git oculta al inicio de cada turno, y conservan los últimos 60 turnos por agente. Como la instantánea es de la propia carpeta, también capturan los archivos que cambió un comando de shell. Puedes ver qué archivos tocó un turno, deshacer el turno y deshacer el deshacer. Tus ramas, el índice y el stash no se tocan.

Lista de comprobación antes de saltarte los permisos

  • ¿Podrían las reglas allow o el modo auto eliminar las peticiones en su lugar?
  • ¿Está el agente en un contenedor o VM, no en tu máquina principal?
  • ¿Se ejecuta como usuario no root?
  • ¿Están fuera de su alcance los secretos, las claves SSH y las credenciales de producción?
  • ¿El acceso a la red está limitado o desactivado?
  • ¿Está el trabajo en su propia rama o worktree, con un commit reciente al que volver?
  • ¿Cubren las reglas deny git push y todo lo demás que nunca quieres?

Para terminar

--dangerously-skip-permissions es una herramienta real con un uso estrecho: entornos desechables y aislados. Para el trabajo diario, las reglas allow y deny, el modo auto y el sandbox eliminan la mayoría de las peticiones y dejan el control en tus manos. Si ejecutas muchos agentes, da a cada uno el nivel que necesita. Deja pasar las peticiones seguras por sí solas, responde el resto desde el móvil y pon en un contenedor a los agentes que necesiten Full access.

Para seguir leyendo:

Para probar AgentVera, empieza en la página de inicio.

Preguntas frecuentes

¿Qué hace --dangerously-skip-permissions en Claude Code?

Inicia la sesión en modo bypassPermissions, igual que --permission-mode bypassPermissions. Las llamadas a herramientas se ejecutan sin preguntar, salvo las reglas ask explícitas, las reglas deny, las preguntas que te hace Claude y el borrado de rutas críticas como tu carpeta personal.

¿Es seguro usar --dangerously-skip-permissions?

Solo en un entorno aislado. La documentación de Anthropic dice que se use en contenedores, VMs o dev containers sin acceso a internet, y advierte de que no ofrece protección contra la inyección de prompts ni contra acciones no deseadas.

¿Por qué Claude Code se niega a saltarse los permisos como root?

En Linux y macOS el flag se niega a ejecutarse con privilegios de root o sudo, por motivos de seguridad. La comprobación se omite dentro de un sandbox reconocido. Ejecuta Claude Code como un usuario normal, o como un usuario no root dentro de un contenedor.

¿Qué alternativa más segura hay a saltarse los permisos?

Reglas allow en settings.json para los comandos de confianza, reglas deny para los que nunca quieres, el modo auto con su clasificador de seguridad y el sandbox de Bash. Juntos eliminan la mayoría de las peticiones sin renunciar al control.

¿Cómo gestiona AgentVera los permisos de Claude Code?

Cada agente tiene un ajuste Permissions: Ask, Auto o Full access. En Pro y Team, Auto-approve safe requests responde por ti a los comandos de solo lectura y de tests. Los agentes también pueden ejecutarse en un contenedor Docker, y cada turno tiene un checkpoint que puedes deshacer.

Reúne a tus agentes en un mismo escritorio.

Descarga AgentVera gratis; tus CLI instaladas ya están listas.

Más artículos