
Tu agente es un riesgo de seguridad, así que trátalo como tal. yoloAI hace bien el sandboxing de agentes de IA.
Ejecutor en sandbox para agentes de codificación con IA. Sin fatiga de permisos, sin credenciales en el sandbox, sin cambios en tu proyecto hasta que los apruebes.
Los agentes de codificación con IA funcionan mejor con las protecciones desactivadas, y esa es una forma terrible de ejecutarlos en tu máquina real. yoloAI le da al agente un sandbox desechable donde puede editar cualquier cosa y ejecutar cualquier cosa, sin supervisión. Tu proyecto, tus credenciales y tu red permanecen bajo tu control. Cuando el agente termina, revisa el diff y aplica lo que quieras conservar.
Tú Sandbox Tu proyecto
│ │ │
├─ yoloai new fix-bug . ├─ copia del proyecto en sandbox │
│ │ │
├─ << tus prompts >> ├─ el agente trabaja libremente │
│ │ (sin solicitudes de permiso) │
│ │ │
├─ yoloai diff fix-bug ├─ muestra qué cambió │
│ │ │
├─ yoloai apply fix-bug │ ├─ parches aplicados
│ (tú eliges cuáles) │ │
│ │ │
├─ yoloai destroy fix-bug ├─ destruye el sandbox │
Las solicitudes de permisos existen porque los agentes cometen errores. Después de la centésima aprobación/denegación dejas de leerlas, y --dangerously-skip-permissions está a un agente confundido de un día muy malo. yoloAI reduce el radio de impacto hasta que las solicitudes de permisos sean innecesarias:
diff muestra exactamente qué cambió, apply parchea tu proyecto real preservando los commits individuales, y tus originales nunca cambian hasta que apliques.--network-isolated restringe la salida a los endpoints de API del agente más los dominios que permitas. --network-none elimina la red por completo.Consulta Seguridad para ver el modelo completo, incluidas las limitaciones honestas.
Descarga el archivo para tu plataforma desde la última versión, extrae el binario yoloai y colócalo en tu PATH:
# Linux x86-64 (sustituye por linux_arm64 / darwin_amd64 / darwin_arm64 según sea necesario).
# Establece VERSION con la etiqueta que se muestra en la página de la última versión enlazada arriba, sin
# la "v" inicial — p. ej., VERSION=1.2.3 para la etiqueta v1.2.3.
VERSION=X.Y.Z
curl -fsSL "https://github.com/kstenerud/yoloai/releases/download/v${VERSION}/yoloai_${VERSION}_linux_amd64.tar.gz" \
| tar -xz yoloai
sudo install yoloai /usr/local/bin/
Cada archivo también incluye completaciones de shell, el LICENSE y el registro de cambios. Las versiones están firmadas con cosign (checksums.txt) y llevan procedencia de compilación de GitHub (gh attestation verify yoloai_… --repo kstenerud/yoloai). También se adjuntan paquetes Debian/RPM a cada versión.
brew install --cask kstenerud/tap/yoloai
go install# Última versión
go install github.com/kstenerud/yoloai/cmd/yoloai@latest
# Última versión de desarrollo (inestable)
go install github.com/kstenerud/yoloai/cmd/yoloai@main
Requiere Go 1.26+. El binario se coloca en $GOPATH/bin (normalmente ~/go/bin).
git clone https://github.com/kstenerud/yoloai.git
cd yoloai
git checkout "$(git describe --tags --abbrev=0)" # etiqueta de la versión más reciente; o permanece en main para la versión de desarrollo
make build
sudo install yoloai /usr/local/bin/
Es un único binario Go sin dependencias de tiempo de ejecución más allá del backend que elijas. En la primera ejecución, yoloAI construye su imagen base y crea ~/.yoloai/ (o el directorio al que apuntes con --data-dir).
# Autentícate (yoloAI detecta las credenciales existentes automáticamente)
export ANTHROPIC_API_KEY=sk-ant-... # Claude Code
export GEMINI_API_KEY=... # Gemini CLI
# O simplemente deja que detecte tu sesión ya autenticada
# 1. Crea un sandbox. El agente comienza a trabajar inmediatamente cuando proporcionas un prompt
yoloai new fix-bug ./my-project --prompt "arregla los tests que fallan"
# 2. Mira qué cambió el agente
yoloai diff fix-bug
# 3. Aplica las partes buenas a tu proyecto real
yoloai apply fix-bug
# 4. Desecha el sandbox
yoloai destroy fix-bug
yoloai new exploration ./my-project -a
# Estás dentro del agente, ejecutándose en tmux dentro del sandbox.
# Ctrl-B, D para desacoplar.
# yoloai attach exploration para reconectar.
Para sesiones más largas, trabaja en un bucle: dile al agente que haga commits a medida que avanza, y ejecuta yoloai apply desde otra terminal siempre que quieras traer los commits terminados a tu proyecto real. Cada apply trae solo los commits nuevos desde el último. Cuando estés satisfecho con el resultado, haz push como de costumbre y destruye el sandbox. Consulta la Guía de uso para ver el flujo de trabajo completo.
Creando un sandbox, enviando un prompt al agente y aplicando los resultados:
https://github.com/user-attachments/assets/9d6740b4-a34e-4253-82ec-cb0e4c7a8bd9
Sandboxing
--env, --dir).--cpus, --memory) y reenvío de puertos (--port).clonefile), reflinks por archivo en sistemas de archivos Linux que los soporten (btrfs, XFS). Los sistemas de archivos sin reflink (ext4) reciben una copia normal..gitignore: cualquier cosa ignorada NO se copia al sandbox (práctica de seguridad para credenciales de desarrollo en disco).Credenciales
Flujo de trabajo
.patch, elige commits por ref, o --dry-run primero.yoloai run --prompt ... --rm, con salida --json en cada comando.Integración
shell para cualquier otra cosa.--vscode-tunnel).yoloai mcp serve permite que un agente externo controle sandboxes como herramientas; yoloai mcp proxy ejecuta servidores MCP dentro de un sandbox.yoloai x).~/.yoloai/ (reubicable con --data-dir).Nota: Tart proporciona una VM completa de macOS, lo que te permite ejecutar simuladores dentro del sandbox.
Opcionalmente, mejora el runtime OCI para un aislamiento más fuerte. Los modos gVisor están disponibles en docker y podman; los modos de VM vienen con el backend containerd.
# Usa gVisor para todos los sandboxes nuevos
yoloai config set isolation container-enhanced
# O por sandbox
yoloai new task . --isolation container-enhanced
Usa yoloai system agents para listar los agentes disponibles.
Beta pública. El flujo de trabajo principal es estable y se ejercita a diario; las interfaces pueden cambiar entre versiones 0.x, y cada cambio disruptivo está documentado en CAMBIOS-DISRUPTIVOS. Se agradecen los comentarios.
| Backend | Hosts soportados | Dependencias |
|---|
| docker | Linux, macOS, Windows (WSL2) | Docker Engine, Docker Desktop u OrbStack |
| podman | Linux, macOS | Podman (brew install podman en macOS) |
| containerd | Linux | Kata Containers |
| apple | macOS (Apple Silicon) | Apple Container |
| tart | macOS (Apple Silicon) | Tart (brew install cirruslabs/cli/tart) |
| seatbelt | macOS (cualquiera) | Ninguna (usa sandbox-exec integrado) |
| Modo | Descripción |
|---|
container | runc por defecto: namespaces y cgroups estándar de Linux |
container-enhanced | Kernel en espacio de usuario (gVisor/runsc): intercepción de syscalls, sin necesidad de KVM |
container-privileged | Todas las capacidades, seccomp/AppArmor sin confinar. Úsalo para Docker-in-Docker y Compose |
vm | Kata Containers (QEMU): aislamiento con VM de hardware |
vm-enhanced | Kata + Firecracker microVM: aislamiento con VM ligera |
| Modo | Descripción |
|---|
claude | Ejecuta Claude Code mediante clave de API o credenciales de suscripción (por defecto) |
codex | Ejecuta Codex mediante clave de API o credenciales de suscripción |
gemini | Ejecuta Gemini CLI mediante clave de API o credenciales de suscripción |
aider | Ejecuta Aider (tu configuración se copia) |
opencode | Ejecuta OpenCode (tu configuración se copia) |
shell | Ejecuta un shell de tmux con todas las credenciales del agente sembradas |
idle | Ejecuta un proceso inactivo para permitir el proxy MCP |