claude), Codex (codex), and OpenCode (opencode). Type the command from any directory and go. Forks and fresh machines have them too, since the agents are part of the image.
claude starts already logged in on a fresh machine.
Already configured for boxd
Each machine carries an instructions file that every agent reads through its own convention:~/.claude/CLAUDE.md for Claude Code, ~/.codex/AGENTS.md for Codex, and ~/.config/opencode/AGENTS.md for OpenCode. It tells the agent about the environment: the in-VM boxd CLI, the default proxy on port 8000, and how to create sibling machines, manage proxies, and clean up. You skip the part where you explain the platform, because the agent already knows it.
A repo-level CLAUDE.md or AGENTS.md merges on top, so your project conventions come for free as well.
The in-VM boxd CLI is pre-authenticated (how), so any of the three agents can create machines, exec into them, and expose ports without a token or key setup.
Logins
- Claude Code is keyed to your boxd account. Sign in once on any machine, and every machine you touch afterwards already has you logged in. Forks, resets, and new machines included. The credential is stored encrypted on your account and injected at boot, and you can revoke it from the console.
- Codex and OpenCode need a one-time
codex/opencodelogin per machine. The login persists on the machine’s disk and carries into its forks. A brand new machine asks again.
ANTHROPIC_API_KEY (or the equivalent for the other agents) as an env var or secret and the same binaries use it.
On shared org machines, personal agent logins are wiped by design, so a teammate can never read your tokens. See VM sharing.
Use them
Interactive:An agent that is always available
The machine keeps running when you disconnect, so an agent session that lives on the machine outlives your laptop. Three pieces make it permanent:tmux keeps the terminal session alive on the machine, Claude Code runs inside it, and remote control connects the session to your Claude account so you can drive it from anywhere.
tmux keeps the session on the machine, and remote control makes it reachable from anywhere.
boxd connect myapp followed by tmux attach -t agent.
A long-running session that works quietly can look idle to the machine’s network idle timers. For an agent that must keep going unattended, disable hibernation:
boxd machine config set myapp auto-hibernate.timeout 0.Many agents at once
One agent on one machine is the starting point. To fan a problem out across many agents in parallel, each on its own machine with a lead agent merging the results, see Agent swarm intelligence.FAQ
Do sessions survive a reboot?
Do sessions survive a reboot?
Yes. Session state lives on the persistent disk. Resume after a reboot with
claude --resume <session-id>, and the same holds for the other agents’ session storage.Where does the Claude Code auth live?
Where does the Claude Code auth live?
On your boxd account, encrypted, injected into the machine at boot. Revoke it from the console at any time.
Can the agents run Docker, systemd, anything?
Can the agents run Docker, systemd, anything?
Yes. A boxd machine is a full VM with its own kernel, so anything you’d do on a Linux server, the agent can do here. See Run Docker.
Which instructions file wins when a repo has its own?
Which instructions file wins when a repo has its own?
The repo-level
CLAUDE.md or AGENTS.md merges on top of the boxd-provided one, so the agent keeps the platform context and adds your conventions.