Elige y configura tu agente
Cada box ejecuta un agente: cada pestaña de terminal nueva lo arranca. Claude Code, Codex, OpenCode y Gemini CLI vienen preinstalados con las aprobaciones desactivadas, junto a Docker y un juego completo de herramientas de desarrollo.
Elige el agente de un box
Eliges el agente en 2. Agente al crear un box. Para cambiarlo después:
- Abre el box y quédate en Resumen.
- En el panel Agente, elige un valor nuevo en Cada pestaña nueva ejecuta.
- Abre una pestaña nueva. El cambio se aplica a las pestañas que abras a partir de ahora. Las pestañas abiertas conservan su agente.

| Agente | Cómo inicia sesión |
|---|---|
| Claude Code | Tu suscripción de Claude, conectada en el panel, o un inicio de sesión dentro del box |
| Codex | Tu suscripción de ChatGPT, conectada en el panel, o un inicio de sesión dentro del box |
| OpenCode | Su propio inicio de sesión, dentro del box |
| Gemini CLI | Su propio inicio de sesión, dentro del box |
| Claude Code · Z.ai | Tu propia clave de API de Z.ai |
| Claude Code · DeepSeek | Tu propia clave de API de DeepSeek |
| Shell | Un shell de login normal. Ejecuta la herramienta que quieras |
Cambiar a un agente que usa otro tipo de suscripción desvincula la suscripción anterior y desactiva la rotación. Cómo conectar suscripciones se explica en Suscripciones.
Lo que trae cada box
Los boxes nuevos usan la imagen box-v3:
- Ubuntu 26.04 LTS, Docker Engine con compose, Node 24, Python 3.14, git y tmux.
- El usuario
devconsudosin contraseña, en el grupodocker. - CLI de agentes: Claude Code, Codex, OpenCode, Gemini CLI, Happy y DeepSeek Harness (
dsh), más los wrappersclaude-zaiyclaude-deepseek. - Git y GitHub:
gh,glab,git-lfs,delta. - Búsqueda y datos:
ripgrep,fd,fzf,jq,yq,bat,httpie. - Clientes de bases de datos:
sqlite3,psql,redis-cli,mariadb. - Gestores de paquetes:
pipx,uv,mise,bun,pnpm,yarn. - Nube:
kubectl,helm, OpenTofu (tofu), AWS CLI v2.
Las toolchains de lenguajes no vienen preinstaladas, para no comerse tu disco. Añade la que quieras con mise:
mise use -g go@latest
Las CLI viven en tu carpeta personal, así que se actualizan sin sudo. Un box creado antes de box-v3 conserva su imagen Debian anterior hasta que lo restableces. La línea Imagen de Ajustes muestra cuál usa un box.
Las aprobaciones están desactivadas
Un box es un sandbox que puedes restablecer, así que cada agente viene en su modo sin confirmaciones. Un agente que espera un sí a las 2 de la mañana no termina nada.
| Agente | Modo |
|---|---|
| Claude Code | bypassPermissions |
| Codex | Política de aprobación never, acceso completo |
| Gemini CLI | --approval-mode=yolo |
| OpenCode | Permiso allow |
Las pantallas de primer arranque y las preguntas de confianza en carpetas ya están respondidas. Abre una pestaña y el agente está listo para una tarea.
Instrucciones compartidas en AGENTS.md
/etc/detachbox/AGENTS.md es un único archivo de instrucciones que leen todos los agentes. Les explica cómo funcionan las URL de vista previa y cómo darte un comando SSH para puertos TCP sin HTTP. Está enlazado en ~/.claude/CLAUDE.md, ~/.codex/AGENTS.md, ~/.config/opencode/AGENTS.md y ~/.gemini/GEMINI.md.
Si tienes tu propio archivo en uno de esos sitios, sigue siendo tuyo. detachbox solo añade una referencia al archivo compartido.
Claude Code sobre Z.ai o DeepSeek
claude-zai y claude-deepseek ejecutan Claude Code contra el endpoint compatible con Anthropic de cada proveedor, con tu propia clave de API. Cada uno tiene su propia carpeta de configuración, ~/.claude-zai o ~/.claude-deepseek, así que tu sesión de Claude en ~/.claude no se toca.
Guarda la clave en el box una vez y todas las pestañas la usan:
mkdir -p ~/.config/detachbox
read -rs -p 'Key: ' k && printf '%s\n' "$k" > ~/.config/detachbox/zai.key
chmod 600 ~/.config/detachbox/zai.key
Para DeepSeek, escribe ~/.config/detachbox/deepseek.key. También sirve exportar ZHIPU_API_KEY o DEEPSEEK_API_KEY. Sin clave, el wrapper te dice dónde ponerla. Los proveedores Z.ai y DeepSeek integrados en OpenCode se activan con los mismos archivos de clave.
Datos del box en box.env
/etc/detachbox/box.env describe el box a cada shell y a cada agente. detachbox lo reescribe al crear, restablecer, arrancar y cambiar de tamaño, así que no lo edites.
| Variable | Valor |
|---|---|
DETACHBOX_BOX | El nombre del box |
DETACHBOX_SSH | El comando SSH de este box |
DETACHBOX_PLAN | El código del plan |
DETACHBOX_CPUS | Número de vCPU |
DETACHBOX_RAM_GB | Memoria en GB |
DETACHBOX_DISK_GB | Disco en GB |
DETACHBOX_URL | La página del box en el panel |
Las variables se cargan en shells de login, interactivos y no interactivos, incluido ssh <name>@ssh.detachbox.com <command>.
Abre una página en tu navegador con detachbox-open
detachbox-open <url> abre un enlace http o https en el navegador de quien está ante la terminal del box. xdg-open, open y $BROWSER apuntan a él. Así, los inicios de sesión que lanzan gh, el módulo webbrowser de Python o un agente llegan a tu navegador.
Un enlace al propio localhost:<port> del box se convierte en su URL de vista previa. Otros esquemas, como file:, se rechazan. La guía de la terminal muestra qué hace el panel cuando llega una página.
Pásale un prompt a un agente con detachbox-say
detachbox-say <tmux session> <text> entrega un texto al agente de esa pestaña como un prompt nuevo. Usa el mecanismo de entrega del propio agente, nunca pulsaciones de teclas, así que la línea que estás escribiendo queda intacta. Funciona con Claude Code y Codex.
El servidor lo usa para escribir «continue» cuando un límite se reinicia. El código de salida 3 significa que la pestaña no tiene ningún Claude Code ni Codex en marcha al que entregarlo.