boxd command pre-installed. Authentication is automatic by source IP — no SSH keys or tokens needed. This lets agents and scripts running inside a VM manage other VMs directly.
Commands
list/ls, destroy/rm, connect/ssh.
All commands accept --json for structured output.
pause vs reboot
pause/resume: warm. Freezes the VMM process, keeps memory, running processes, and open sockets intact. Resume is sub-millisecond. Same mechanism as auto-suspend, but user-triggered. Status becomesstandby.reboot: cold. Kills the VMM process and spawns a new one. Memory lost, takes ~2s.
Running commands in other VMs
The
-- separator (e.g. boxd exec other-vm -- uname -a) is also accepted. Older CLI versions required it; current versions accept both forms.The remote command’s stdout and stderr are merged into a single output stream
on this CLI. If you need to filter them separately (e.g.
2>/dev/null to drop
warnings), either redirect inside the command ('cmd 2>/dev/null') or use the
external CLI / SDK from outside the VM, which preserve the split.Copying files between VMs
Paths after: are relative to /home/boxd unless they start with /. Uploads stream automatically — no inherent file-size cap.
Proxy management
Defaults to the current VM when--vm is omitted.
The internal CLI uses
proxy remove (alias proxy rm) while the SSH CLI uses proxy delete. Both do the same thing.Local machine access
When client tools are installed on the user’s machine, the internal CLI can access files and a browser on the user’s local machine:BOXD_CLIENTD environment variable to be set, which happens automatically when client tools are installed.
How it works
The internal CLI communicates over HTTP to a metadata server on the bridge gateway (port 9002). Forexec and connect, it uses a binary TCP protocol on port 9003. Authentication is implicit — the metadata server maps your VM’s source IP to your user account.