Escolha e configure seu agente
Cada box roda um agente: toda aba de terminal nova o inicia. Claude Code, Codex, OpenCode e Gemini CLI vêm pré-instalados com as aprovações desligadas, ao lado do Docker e de um conjunto completo de ferramentas de desenvolvimento.
Escolha o agente de um box
Você escolhe o agente em 2. Agente ao criar um box. Para trocar depois:
- Abra o box e fique em Visão geral.
- No painel Agente, escolha um novo valor em Toda aba nova inicia.
- Abra uma aba nova. A troca vale para as abas que você abrir daqui em diante. As abas abertas mantêm o agente delas.

| Agente | Como faz login |
|---|---|
| Claude Code | Sua assinatura do Claude, conectada no painel, ou um login dentro do box |
| Codex | Sua assinatura do ChatGPT, conectada no painel, ou um login dentro do box |
| OpenCode | Login próprio, dentro do box |
| Gemini CLI | Login próprio, dentro do box |
| Claude Code · Z.ai | Sua própria chave de API da Z.ai |
| Claude Code · DeepSeek | Sua própria chave de API da DeepSeek |
| Shell | Um shell de login puro. Inicie a ferramenta que quiser |
Trocar para um agente que usa outro tipo de assinatura desvincula a assinatura antiga e desliga a alternância. Como conectar assinaturas está em Assinaturas.
O que vem em todo box
Boxes novos rodam a imagem box-v3:
- Ubuntu 26.04 LTS, Docker Engine com compose, Node 24, Python 3.14, git e tmux.
- O usuário
devcomsudosem senha, no grupodocker. - CLIs de agentes: Claude Code, Codex, OpenCode, Gemini CLI, Happy e DeepSeek Harness (
dsh), mais os wrappersclaude-zaieclaude-deepseek. - Git e GitHub:
gh,glab,git-lfs,delta. - Busca e dados:
ripgrep,fd,fzf,jq,yq,bat,httpie. - Clientes de banco de dados:
sqlite3,psql,redis-cli,mariadb. - Gerenciadores de pacotes:
pipx,uv,mise,bun,pnpm,yarn. - Nuvem:
kubectl,helm, OpenTofu (tofu), AWS CLI v2.
As toolchains de linguagens não vêm pré-instaladas, para não comer o seu disco. Adicione uma com o mise:
mise use -g go@latest
As CLIs ficam na sua pasta home, então se atualizam sem sudo. Um box criado antes da box-v3 mantém a imagem Debian antiga até você resetá-lo. A linha Imagem em Configurações mostra qual imagem o box roda.
Aprovações desligadas
Um box é um sandbox que você pode resetar, então todo agente vem no modo sem confirmações. Um agente que espera um sim às 2 da manhã não termina nada.
| Agente | Modo |
|---|---|
| Claude Code | bypassPermissions |
| Codex | Política de aprovação never, acesso total |
| Gemini CLI | --approval-mode=yolo |
| OpenCode | Permissão allow |
As telas de primeira execução e as perguntas de confiança na pasta já vêm respondidas. Abra uma aba e o agente está pronto para uma tarefa.
Instruções compartilhadas no AGENTS.md
/etc/detachbox/AGENTS.md é um arquivo de instruções que todos os agentes leem. Ele explica aos agentes como funcionam as URLs de preview e como passar para você um comando SSH para portas TCP puras. Ele fica ligado a ~/.claude/CLAUDE.md, ~/.codex/AGENTS.md, ~/.config/opencode/AGENTS.md e ~/.gemini/GEMINI.md.
Mantenha seu próprio arquivo num desses lugares e ele continua seu. O detachbox só acrescenta uma referência ao arquivo compartilhado.
Rode o Claude Code na Z.ai ou na DeepSeek
claude-zai e claude-deepseek rodam o Claude Code contra o endpoint compatível com a Anthropic de cada fornecedor, com a sua própria chave de API. Cada um tem a própria pasta de configuração, ~/.claude-zai ou ~/.claude-deepseek, então o seu login do Claude em ~/.claude fica intacto.
Coloque a chave no box uma vez, e toda aba passa a usá-la:
mkdir -p ~/.config/detachbox
read -rs -p 'Key: ' k && printf '%s\n' "$k" > ~/.config/detachbox/zai.key
chmod 600 ~/.config/detachbox/zai.key
Para a DeepSeek, grave ~/.config/detachbox/deepseek.key. Exportar ZHIPU_API_KEY ou DEEPSEEK_API_KEY também funciona. Sem chave, o wrapper mostra onde colocá-la. Os provedores Z.ai e DeepSeek embutidos no OpenCode ligam com os mesmos arquivos de chave.
Dados do box no box.env
/etc/detachbox/box.env descreve o box para todo shell e todo agente. O detachbox o reescreve na criação, no reset, no início e na mudança de tamanho, então não o edite.
| Variável | Valor |
|---|---|
DETACHBOX_BOX | O nome do box |
DETACHBOX_SSH | O comando SSH deste box |
DETACHBOX_PLAN | O código do plano |
DETACHBOX_CPUS | Número de vCPU |
DETACHBOX_RAM_GB | Memória em GB |
DETACHBOX_DISK_GB | Disco em GB |
DETACHBOX_URL | A página do box no painel |
As variáveis carregam em shells de login, interativos e não interativos, inclusive em ssh <name>@ssh.detachbox.com <command>.
Abra uma página no seu navegador com o detachbox-open
detachbox-open <url> abre um link http ou https no navegador de quem está no terminal do box. xdg-open, open e $BROWSER apontam todos para ele. Assim, os logins iniciados pelo gh, pelo webbrowser do Python ou por um agente caem no seu navegador.
Um link para o localhost:<port> do próprio box vira a URL de preview dele. Outros esquemas, como file:, são recusados. O guia do terminal mostra o que o painel faz quando chega uma página.
Passe um prompt para o agente com o detachbox-say
detachbox-say <tmux session> <text> entrega um texto ao agente daquela aba como um prompt novo. Ele usa o mecanismo de entrega do próprio agente, nunca teclas simuladas, então uma linha que você está digitando fica intacta. Funciona com o Claude Code e o Codex.
O servidor usa esse comando para digitar "continue" quando um limite renova. O código de saída 3 quer dizer que a aba não tem Claude Code nem Codex rodando para receber o texto.