
Sandbox y proxy MCP que bloquea a los agentes de codificación de IA para que no lean claves SSH, credenciales de AWS y archivos .env, con una política de denegación por defecto y registros de auditoría a prueba de manipulaciones.
El sandbox de Claude Code permite que un agente lea tus claves SSH y credenciales de AWS por defecto. Aegis no.
Dos capas, ambas verificadas en hardware real.
Sandbox del kernel — el propio shell del agente no puede alcanzar una ruta denegada:
$ ! cat ~/.ssh/id_rsa
cat: /Users/you/.ssh/id_rsa: Operation not permitted
$ ! cat ~/.aws/credentials
cat: /Users/you/.aws/credentials: Operation not permitted
$ tail ~/Library/Application\ Support/Aegis/denials.log
kernel denied file-read-data /Users/you/.ssh/id_rsa to cat(pid 41560)
kernel denied file-read-data /Users/you/.aws/credentials to cat(pid 42180)
Proxy MCP — misma herramienta, mismo archivo, con y sin Aegis por delante:
direct to the server: allowed: TOKEN=proof-env-secret
through aegis proxy: AEGIS DENIED: read_text_file
Reason: path matches deny rule '.env'
Rule: deny_paths
Cada línea está respaldada por una prueba que se ejecutó contra esta versión; cuando algo aún no está probado, se indica.
aegis workspace add / remove / list — cambia en qué carpetas puede trabajar el agente sin editar policy.json. Añadir siempre requiere --confirm-grant; eliminar nunca lo requiere. add rechaza tu directorio home, cualquier cosa que contenga los propios archivos de Aegis, una ruta con .., una carpeta que no existe, un symlink situado dentro de un workspace, y un workspace dentro de otro o que lo rodee. Cada cambio se registra en el log de auditoría y regenera el perfil del sandbox. Una sesión que ya está en ejecución conserva los workspaces con los que se inició — incluido uno que acabas de eliminar — medido contra una sesión en sandbox activa.aegis policy set-folder, otorgando acceso dondequiera que apuntara el enlace; y un workspace creado dentro de otro podía después intercambiarse por un symlink y seguirse en el siguiente arranque. Ambos se reprodujeron en 0.8.1 y ahora son tests de regresión permanentes que se ha demostrado que fallan allí.policy.json. Una ruta relativa se resolvía contra la carpeta desde la que se inició Aegis, por lo que aegis run y el wrapper de arranque podían aplicar sandboxes distintos a partir de una misma política (medido: digests de perfil distintos). Las rutas deben ser absolutas o empezar por ~/.aegis doctor ya no informa de una discrepancia entre una edición y el siguiente arranque.aegis run y aegis doctor imprimen la ruta real de Claude Code — leída del wrapper que escribió Aegis — y /login, para ejecutarlo fuera del sandbox. No corregido: un token revocado o caducado sigue leyéndose como sesión iniciada hasta que falla el primer mensaje (el estado de Claude Code no informa de caducidad), y el inicio de sesión sigue sin poder ocurrir dentro del sandbox; eso requiere un broker de credenciales que aún no existe.aegis init protege a un usuario nuevo que aún no ha iniciado sesión. Detectado siguiendo el tutorial en un entorno limpio: en 0.8.1, un Claude Code que nunca había iniciado sesión quedaba sin envolver por defecto, tras una pregunta que la documentación nunca mencionaba, por lo que claude permanecía fuera del sandbox. Ahora, una vez que aceptas el sandboxing, queda envuelto, con una advertencia destacada para iniciar sesión una vez fuera del sandbox (la ruta real de Claude Code, luego /login); los pasos finales de aegis init ponen eso primero, y aegis doctor falla hasta que lo hagas. La misma ejecución también corrigió el texto de apertura y cierre de init, unificó en una sola instrucción de inicio de sesión para aegis init, aegis run y aegis doctor, y evitó que un cambio sin efecto imprimiera nothing to change (nothing to change).Aún no probado en 0.9.0: Linux; clientes distintos de Claude Code; el flujo de /login de principio a fin; una app de escritorio reconstruida.
Se sitúa entre tu agente de programación con IA y tu máquina:
cat .env no puede eludirloaegis doctor, y con checkpoint
desde fuera del sandbox bajo una clave que el sandbox no puede leer ni escribir¿Eres nuevo aquí? docs/getting-started.md es la ruta paso a paso, incluidas las dos preguntas que por defecto son No.
¿Seguiste instrucciones anteriores que decían aegis-mcp? Ese paquete no es Aegis — es un proyecto no relacionado instalado bajo el mismo nombre de importación, aegis. Elimínalo primero:
python3 -m pip uninstall aegis-mcp
Si aegis-sandbox ya está instalado, esa desinstalación también elimina dos de sus archivos, así que reinstálalo después: python3 -m pip install --force-reinstall aegis-sandbox.
python3 -m pip install aegis-sandbox
aegis init # detects Claude Code / Cursor, asks a few questions
aegis doctor # proves the boundary is actually in place
¿Actualizando? Vuelve a ejecutar aegis init. Tu policy.json es tuyo y nunca se reescribe a tus espaldas, así que un nuevo dominio de sandbox no aparece por sí solo — y sin el endpoint de token OAuth, un cliente en sandbox deja de funcionar cuando su token expira. aegis init ofrece los nuevos hosts; aceptar es una sola pulsación de tecla.
aegis init; aegis doctor falla si un cliente envuelto no ha iniciado sesiónModelo de amenazas completo: THREAT-MODEL.md
MIT