detachbox
PáginasEscolha e configure seu agente

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:

  1. Abra o box e fique em Visão geral.
  2. No painel Agente, escolha um novo valor em Toda aba nova inicia.
  3. Abra uma aba nova. A troca vale para as abas que você abrir daqui em diante. As abas abertas mantêm o agente delas.
A página do box shipyard: CPU, memória e disco ao vivo, o comando SSH, o agente e a conta do Claude com que ele entra, e as chaves do que acontece quando o agente para.
AgenteComo faz login
Claude CodeSua assinatura do Claude, conectada no painel, ou um login dentro do box
CodexSua assinatura do ChatGPT, conectada no painel, ou um login dentro do box
OpenCodeLogin próprio, dentro do box
Gemini CLILogin próprio, dentro do box
Claude Code · Z.aiSua própria chave de API da Z.ai
Claude Code · DeepSeekSua própria chave de API da DeepSeek
ShellUm 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 dev com sudo sem senha, no grupo docker.
  • CLIs de agentes: Claude Code, Codex, OpenCode, Gemini CLI, Happy e DeepSeek Harness (dsh), mais os wrappers claude-zai e claude-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.

AgenteModo
Claude CodebypassPermissions
CodexPolítica de aprovação never, acesso total
Gemini CLI--approval-mode=yolo
OpenCodePermissã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ávelValor
DETACHBOX_BOXO nome do box
DETACHBOX_SSHO comando SSH deste box
DETACHBOX_PLANO código do plano
DETACHBOX_CPUSNúmero de vCPU
DETACHBOX_RAM_GBMemória em GB
DETACHBOX_DISK_GBDisco em GB
DETACHBOX_URLA 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.