detachbox
PagesChoisir et configurer votre agent

Choisir et configurer votre agent

Chaque box fait tourner un agent : chaque nouvel onglet de terminal le lance. Claude Code, Codex, OpenCode et Gemini CLI sont préinstallés, demandes d’autorisation coupées, à côté de Docker et d’une panoplie complète d’outils de développement.

Choisir l’agent d’une box

Vous choisissez l’agent sous 2. Agent à la création de la box. Pour le changer ensuite :

  1. Ouvrez la box et restez sur Vue d’ensemble.
  2. Dans le panneau Agent, choisissez une nouvelle valeur sous Chaque nouvel onglet lance.
  3. Ouvrez un nouvel onglet. Le changement s’applique aux onglets ouverts à partir de maintenant. Les onglets déjà ouverts gardent leur agent.
La page de la box shipyard : CPU, mémoire et disque en direct, la commande SSH, l’agent et le compte Claude avec lequel il se connecte, et les interrupteurs pour ce qui se passe quand l’agent s’arrête.
AgentComment il se connecte
Claude CodeVotre abonnement Claude, connecté dans le tableau de bord, ou une connexion dans la box
CodexVotre abonnement ChatGPT, connecté dans le tableau de bord, ou une connexion dans la box
OpenCodeSa propre connexion, dans la box
Gemini CLISa propre connexion, dans la box
Claude Code · Z.aiVotre propre clé d’API Z.ai
Claude Code · DeepSeekVotre propre clé d’API DeepSeek
ShellUn shell de connexion nu. Lancez l’outil de votre choix

Passer à un agent qui utilise un autre type d’abonnement délie l’ancien abonnement et désactive la rotation. La connexion des abonnements est décrite dans Abonnements.

Ce que contient chaque box

Les nouvelles box tournent sur l’image box-v3 :

  • Ubuntu 26.04 LTS, Docker Engine avec compose, Node 24, Python 3.14, git et tmux.
  • L’utilisateur dev avec sudo sans mot de passe, dans le groupe docker.
  • CLI d’agents : Claude Code, Codex, OpenCode, Gemini CLI, Happy et DeepSeek Harness (dsh), plus les wrappers claude-zai et claude-deepseek.
  • Git et GitHub : gh, glab, git-lfs, delta.
  • Recherche et données : ripgrep, fd, fzf, jq, yq, bat, httpie.
  • Clients de bases de données : sqlite3, psql, redis-cli, mariadb.
  • Gestionnaires de paquets : pipx, uv, mise, bun, pnpm, yarn.
  • Cloud : kubectl, helm, OpenTofu (tofu), AWS CLI v2.

Les chaînes d’outils des langages ne sont pas préinstallées : elles ne mangent pas votre disque. Ajoutez-en une avec mise :

mise use -g go@latest

Les CLI vivent dans votre dossier personnel et se mettent donc à jour sans sudo. Une box créée avant box-v3 garde son ancienne image Debian jusqu’à sa réinitialisation. La ligne Image sous Paramètres indique celle que fait tourner une box.

Les demandes d’autorisation sont coupées

Une box est un bac à sable que vous pouvez réinitialiser : chaque agent est donc livré dans son mode sans confirmation. Un agent qui attend un oui à 2 h du matin ne termine rien.

AgentMode
Claude CodebypassPermissions
CodexPolitique d’approbation never, accès complet
Gemini CLI--approval-mode=yolo
OpenCodePermission allow

Les écrans du premier lancement et les questions de confiance sur les dossiers sont déjà passés. Ouvrez un onglet : l’agent est prêt pour une tâche.

Des instructions partagées dans AGENTS.md

/etc/detachbox/AGENTS.md est un fichier d’instructions unique que lit chaque agent. Il explique aux agents comment fonctionnent les URL d’aperçu et comment vous donner une commande SSH pour les ports TCP bruts. Il est lié dans ~/.claude/CLAUDE.md, ~/.codex/AGENTS.md, ~/.config/opencode/AGENTS.md et ~/.gemini/GEMINI.md.

Gardez votre propre fichier à l’un de ces emplacements et il reste le vôtre. detachbox ne fait qu’y ajouter une référence au fichier partagé.

Faire tourner Claude Code sur Z.ai ou DeepSeek

claude-zai et claude-deepseek font tourner Claude Code sur le point d’accès compatible Anthropic du fournisseur, avec votre propre clé d’API. Chacun a son propre dossier de configuration, ~/.claude-zai ou ~/.claude-deepseek : votre connexion Claude dans ~/.claude reste intacte.

Déposez la clé dans la box une fois, et chaque onglet la récupère :

mkdir -p ~/.config/detachbox
read -rs -p 'Key: ' k && printf '%s\n' "$k" > ~/.config/detachbox/zai.key
chmod 600 ~/.config/detachbox/zai.key

Pour DeepSeek, écrivez plutôt ~/.config/detachbox/deepseek.key. Exporter ZHIPU_API_KEY ou DEEPSEEK_API_KEY fonctionne aussi. Sans clé, le wrapper indique où la mettre. Les fournisseurs Z.ai et DeepSeek intégrés à OpenCode s’activent à partir des mêmes fichiers de clé.

Les informations de la box dans box.env

/etc/detachbox/box.env décrit la box à chaque shell et à chaque agent. detachbox le réécrit à la création, à la réinitialisation, au démarrage et au changement de taille : ne le modifiez pas.

VariableValeur
DETACHBOX_BOXLe nom de la box
DETACHBOX_SSHLa commande SSH de cette box
DETACHBOX_PLANLe code de l’offre
DETACHBOX_CPUSNombre de vCPU
DETACHBOX_RAM_GBMémoire en GB
DETACHBOX_DISK_GBDisque en GB
DETACHBOX_URLLa page de la box dans le tableau de bord

Les variables se chargent dans les shells de connexion, interactifs et non interactifs, y compris ssh <name>@ssh.detachbox.com <command>.

Ouvrir une page dans votre navigateur avec detachbox-open

detachbox-open <url> ouvre un lien http ou https dans le navigateur de la personne devant le terminal de la box. xdg-open, open et $BROWSER pointent tous vers lui. Les connexions lancées par gh, par le webbrowser de Python ou par un agent arrivent ainsi dans votre navigateur.

Un lien vers le localhost:<port> de la box devient son URL d’aperçu. Les autres schémas, comme file:, sont refusés. Le guide du terminal montre ce que fait le tableau de bord quand une page arrive.

Donner un prompt à un agent avec detachbox-say

detachbox-say <tmux session> <text> transmet un texte à l’agent de cet onglet sous forme de nouveau prompt. Il passe par le mécanisme de l’agent lui-même, jamais par des frappes clavier : une ligne que vous êtes en train de taper reste intacte. Il fonctionne avec Claude Code et Codex.

Le serveur s’en sert pour taper « continue » quand une limite se recharge. Le code de sortie 3 signifie que l’onglet n’a pas de Claude Code ou de Codex en marche à qui transmettre le texte.