Saltar al contenido
Menú
¿Lo necesito?Lo que un agente puede alcanzar en tu máquinaCómo funcionaLas capas entre el agente y tu sistemaCompararSandboxes integrados, Docker y VMsConfigurarAbre solo lo que la tarea necesitaSeguridadEl modelo de amenazas y sus límitesInstalar
Comparar

Tu agente ya tiene un sandbox. Cubre otra mitad.

Los sandboxes integrados y las solicitudes de permiso vigilan los comandos que ejecuta el modelo. ai-jail decide qué puede ver en tu máquina el programa del agente entero. Los dos trabajan juntos.

Última revisión: 21 de septiembre de 2026. Los otros productos cambian rápido, así que cada afirmación sobre ellos enlaza a la documentación del propio fabricante.

Dónde está el muro

Al momento de escribir esto, el sandbox de Claude Code se aplica a los comandos de shell y a sus procesos hijos. Sus herramientas de archivos usan en cambio el sistema de permisos, y su documentación dice que los servidores MCP y los hooks corren sin restricciones en el host. ai-jail arranca al propio agente dentro del muro, así que todo lo que él lanza también queda dentro.

Dos paneles. A la izquierda, un sandbox integrado encierra solo los comandos de shell, mientras el agente, sus servidores MCP y sus hooks quedan fuera del muro, con líneas que llegan a tu directorio home. A la derecha, ai-jail encierra juntos al agente, los servidores MCP, los hooks, los comandos de shell y el proyecto, y tu directorio home queda fuera, atenuado y tras barrotes.
El panel izquierdo sigue la documentación de Claude Code.

Codex también aísla los comandos que lanza y deja fuera el proceso codex. Su documentación no dice dónde corren los servidores MCP locales.

Una solicitud de permiso es otro tipo de protección

Una solicitud le pregunta a una persona, y a una persona se la puede apurar o engañar. Un sandbox le pregunta al kernel, que responde lo mismo todas las veces.

Dos paneles. A la izquierda, una línea que sale del agente atraviesa una pila de diálogos de aprobación con un botón Aprobar y llega a tus claves. A la derecha, la misma línea se detiene en un muro con la etiqueta regla del kernel, y tus claves, detrás, aparecen atenuadas y tras barrotes.
Las solicitudes son útiles. Son un paso de revisión, y un sandbox es una frontera.

Modos que sacan a la persona del medio

Al momento de escribir esto, cada uno de estos agentes tiene un modo que deja de preguntar. Sin la solicitud, el sandbox es la única protección que queda, si hay uno activado.

AgenteModoQué dice el fabricante que hace
Claude CodeautoTodo se ejecuta y un segundo modelo revisa las acciones en tu lugar. La documentación llama a este clasificador un control por acción, no una frontera de aislamiento.
Claude CodebypassPermissions, también --dangerously-skip-permissionsTodo se ejecuta sin comprobaciones. La documentación dice que se use solo en contenedores y VMs aislados.
Codex CLIPolítica de aprobación neverEl agente nunca pregunta. El modo de sandbox sigue aplicándose. Mira aprobaciones y seguridad.
Codex CLIdanger-full-access, o --yoloEl sandbox está apagado. Con --yolo tampoco hay aprobaciones.

Lado a lado

Todo lo que aparece aquí describe la documentación de cada producto al momento de escribir esto. Cuando la documentación que leímos no responde una pregunta, la celda lo dice.

Sandbox de Claude CodeSandbox de Codex CLISandbox de Gemini CLIai-jail
Lo que añade envolver al agente entero
Qué hay dentro del muroLos comandos de Bash, PowerShell y Monitor y sus hijos. El proceso claude, sus herramientas de archivos, los servidores MCP y los hooks quedan fuera.Los comandos que lanza el agente. El proceso codex queda fuera. Servidores MCP locales: no documentado.El proceso entero de la CLI, o solo la shell y las herramientas de escritura con security.toolSandboxing.Todo el árbol de procesos: el agente, sus herramientas de archivos, los servidores MCP, los hooks y cada comando.
Activado por defectoNo. Lo activas con /sandbox o sandbox.enabled. Si falta una dependencia, avisa y ejecuta los comandos sin sandbox, salvo que definas sandbox.failIfUnavailable.Sí. workspace-write es el modo por defecto.Lo activas con -s, GEMINI_SANDBOX o tools.sandbox.Está activado siempre que arrancas al agente a través de él. Si la configuración es inválida, se niega a arrancar.
¿El código aislado puede leer ~/.ssh por defecto?Sí. La documentación dice que la configuración por defecto sigue permitiendo leer archivos de credenciales como ~/.aws/credentials y ~/.ssh/. Las reglas de denegación son opt-in.Sí en Linux, donde todo el sistema de archivos se monta en solo lectura. Las entradas de denegación son opt-in. Valor por defecto en macOS: no documentado.El perfil por defecto en macOS, permissive-open, permite lecturas amplias de archivos. Los perfiles más estrictos son opt-in.No. El agente recibe un directorio home nuevo y vacío. --ssh es opt-in.
Variables de entornoLos comandos aislados heredan por defecto el entorno del proceso padre, credenciales incluidas. sandbox.credentials puede denegarlas o enmascararlas.No documentadoNo documentadoUna lista de permitidos mínima con variables de terminal, locale y toolchain. Añades otras por su nombre con --env.
Vía de escape que el modelo puede usarEl modelo puede reintentar un comando con dangerouslyDisableSandbox, que pasa por el flujo normal de permisos. allowUnsandboxedCommands: false lo desactiva.Con la política on-request el agente pide salir del sandbox para editar fuera del workspace o para usar la red.No documentadoNinguna. Defines la política antes de que el agente arranque, y el archivo .ai-jail del proyecto puede endurecerla pero nunca abrirla.
Funciona con cualquier agenteSolo Claude CodeSolo CodexSolo Gemini CLICualquier comando, con un solo archivo de política para todos tus agentes.
Lo que los sandboxes integrados hacen mejor
Modelo de redUn proxy con una lista de permitidos por dominio. Un dominio nuevo te pide confirmación. La documentación señala que el domain fronting puede saltárselo.Apagada por defecto en workspace-write. Un ajuste la activa, y un proxy opcional añade reglas de permitir y denegar por dominio.El perfil por defecto permite la red. Los perfiles más estrictos y los que usan proxy son opt-in.Todo o nada. Está apagada por defecto, y --network la abre entera. No tiene filtro por dominio, a propósito.
Aprobación de cada comandoSí. Modos de permisos, un modo plan, un modelo clasificador y políticas gestionadas por la organización.Sí. Políticas de aprobación, reglas por categoría y un agente revisor opcional.No documentadoNinguna. ai-jail nunca ve los comandos individuales y nunca pregunta.
Rutas protegidas dentro del proyectoSí. .git/hooks, .git/config, los ajustes de .claude, .mcp.json, los archivos rc de la shell y otros quedan en solo lectura.Sí. .git, .agents y .codex bajo las raíces escribibles quedan en solo lectura.No documentadoNinguna integrada. Todo el proyecto es escribible. Enmascaras o deniegas rutas tú mismo con --mask y deny_paths.
Ocultar secretos al agente sin dejar de usarlosEl enmascaramiento de credenciales puede inyectar el secreto real en el proxy. Requiere un ajuste experimental.No documentadoNo documentadoNo. Un archivo enmascarado es un archivo vacío.
PlataformasmacOS, Linux, WSL2. Ni Windows nativo ni WSL1.macOS, Linux, WSL2 y Windows nativo.Seatbelt en macOS, Docker o Podman, gVisor, LXC (experimental) y Windows nativo.Linux y macOS. En Windows, solo WSL2.
InstalaciónViene con el agente. En Linux necesita bubblewrap y socat.Viene con el agente.Viene con el agente. Los backends de contenedores necesitan Docker o Podman.Un binario aparte. En Linux necesita bubblewrap.

Fuentes: Claude Code sandboxing, Claude Code sandbox environments, Codex approvals and security, Codex Linux sandbox, Gemini CLI sandbox.

Usa los dos

Con la red apagada, un agente en la nube no puede llegar a la API de su propio modelo. En la práctica abres dos cosas: la red y el login del agente.

un agente en la nube, enjaulado
cd ~/Projects/my-appai-jail --network --agent-state claude
Un muro grande con la etiqueta ai-jail encierra al agente, sus servidores MCP, sus hooks, el proyecto y sus comandos de shell. Entre el agente y los comandos de shell está la solicitud de aprobación del propio agente. Una línea sale del muro por una puerta hacia la API del modelo. Tu directorio home queda fuera del muro, atenuado y tras barrotes.
El muro exterior es ai-jail. Dentro, las solicitudes y las reglas del agente siguen haciendo su trabajo.

Lo que siguen haciendo los controles del agente

Las solicitudes de permiso, las reglas de permitir y denegar y el modo plan son parte del programa del agente, así que funcionan dentro de la jaula igual que fuera. Atrapan el comando que tú no habrías aprobado.

Lo que ai-jail garantiza por debajo

El agente, sus servidores MCP y sus hooks nunca ven tu directorio home, tus claves ni los tokens de tu shell, apruebes lo que apruebes. Lo que el agente puede leer, todavía lo puede enviar, así que enmascara los secretos dentro del proyecto.

Docker, dev containers y máquinas virtuales

Estas también son buenas respuestas, y una máquina virtual es una más fuerte. Se diferencian en lo que tienes que construir y mantener al día.

Qué te daQué cuesta
Contenedor DockerSu propio sistema de archivos, su lista de procesos y su red. El agente ve solo lo que montas.Una imagen que construir y mantener, con tus toolchains instaladas por segunda vez. Si montas el socket de Docker, el contenedor equivale a root en el host.
Dev containerEl mismo aislamiento que un contenedor, descrito en un archivo que tu editor entiende y tu equipo puede compartir.El mismo mantenimiento de imágenes, más un editor o una herramienta que entienda el formato.
Máquina virtualSu propio kernel. Es la frontera más fuerte de esta lista, y la correcta para código que crees hostil.La opción más pesada: un sistema invitado que instalar, actualizar, al que darle memoria y al que copiar tu proyecto.
ai-jailUn sandbox alrededor de un comando, con los compiladores y runtimes que ya tienes en tu máquina. No necesita imagen, daemon ni root.Comparte tu kernel, así que un exploit del kernel o de un driver queda fuera de su frontera. Es más débil que una máquina virtual.

La propia documentación de ai-jail lo llama una capa útil, no un reemplazo de una VM desechable. Lee el modelo de amenazas.

Preguntas sobre usarlos juntos

¿Debo desactivar el sandbox y las solicitudes de mi agente?
Conserva las solicitudes y las reglas. Revisan comandos sueltos, cosa que ai-jail nunca hace. El sandbox del sistema operativo del agente es otro asunto en Linux: ai-jail bloquea las llamadas al sistema que necesita un sandbox de bubblewrap anidado, y su documentación no dice que la combinación funcione. Si el agente informa que su sandbox no está disponible dentro de la jaula, la jaula sigue ahí.
¿ai-jail es más seguro que Docker?
Son la misma clase de frontera. Ambos comparten tu kernel y ninguno es una máquina virtual. ai-jail arranca con todo cerrado y no necesita imagen, daemon ni root. Un contenedor monta lo que le digas, y un socket de Docker montado equivale a root en el host. Para código que crees hostil, usa una VM desechable.
¿Por qué no hay una lista de permitidos de red por dominio?
Un filtro que vive dentro del sandbox es un filtro que el agente puede negarse a usar. El mantenedor cerró la petición por estar fuera del alcance: una versión sin root necesita una pila de red en espacio de usuario y, además, o inspección de SNI, que falla cuando el SNI falta o va cifrado, o interceptación TLS del tráfico de API con credenciales del agente. Filtra donde ya existe el privilegio: una regla de nftables para el uid del agente, un slice de systemd con IPAddressAllow=, o un contenedor o una VM que sea dueño del namespace de red.
Solo uso Claude Code. ¿Igual necesito ai-jail?
Tienes tres opciones, al momento de escribir esto. El sandbox integrado cubre los comandos de shell. @anthropic-ai/sandbox-runtime de Anthropic, una beta en research preview, envuelve el proceso entero. ai-jail también envuelve el proceso entero, arranca con tu directorio home y tus variables de entorno cerrados, y usa la misma política para cualquier otro agente que pruebes después. Mira la comparación de entornos de sandbox de Anthropic.

Pon a tu agente tras las rejas

ai-jail es un único binario que no necesita daemon ni root. Añades una palabra delante del comando que ya usas.

terminal
brew tap akitaonrails/tap && brew install ai-jailai-jail claude