SSH CLI (from outside)
All commands via SSH toboxd.sh. All accept --json for structured output.
Machine management
| Command | Description |
|---|---|
new [--name] [--image] [--restart=always] | Create a machine |
list | List your machines |
destroy <name> | Permanently destroy a machine |
fork <source> [--name] | Copy a machine with full disk state |
new
Create a machine. Blocks until running (up to 30s timeout).| Flag | Default | Description |
|---|---|---|
--name | auto-generated | Machine name. Must be unique. Becomes the HTTPS subdomain. |
--image | cluster default | Container image for the root filesystem. |
--restart | always | Restart policy: always or never. |
list can also be written as ls. destroy can also be written as rm.
destroy
Destroy a machine permanently. The name and IP are reserved for reuse.rm.
fork
Copy a machine with its full disk state. See Fork for details.| Flag | Default | Description |
|---|---|---|
--name | {source}-fork | Name for the new machine. |
Execution
| Command | Description |
|---|---|
exec <name> [--tty] -- <command> | Run a command inside a machine |
connect <name> | Open an interactive shell session |
exec
Run a command inside a machine. Commands execute as theboxd user with passwordless sudo.
--tty for interactive commands:
connect
Open a full interactive shell session.ssh. For automation, use exec instead.
Proxy management
| Command | Description |
|---|---|
proxy list [--vm=NAME] | List proxies (all if --vm omitted) |
proxy new <name> --vm=NAME --port=PORT | Create a subdomain proxy |
proxy delete <name> --vm=NAME | Remove a proxy |
proxy set-port [name] --vm=NAME --port=PORT | Change proxy port |
proxy list
--vm is optional — omit to list all proxies across all machines.
proxy new
Create a subdomain proxy.api.myapp.boxd.sh → port 3001:
proxy delete
proxy rm.
proxy set-port
Change the port for a proxy. Omit the name to change the default proxy.auto detects the port your app is listening on (default proxy only).
Other
| Command | Description |
|---|---|
domain [--name=NAME] | List HTTPS domains |
whoami | Your user ID and SSH keys |
exit / quit | Close the interactive shell |
Global flags
| Flag | Description |
|---|---|
--json | Output as JSON instead of formatted text |
In-VM CLI
Every machine has theboxd command pre-installed. Auth is automatic by source IP — no SSH keys needed. All commands accept --json.
Commands
| Command | Description |
|---|---|
info | Current VM name, status, image, proxies |
list | List all your VMs |
new [--name] [--image] | Create a VM |
fork [source] [--name] | Fork a VM (defaults to current VM) |
destroy <name> | Destroy a VM (cannot destroy self) |
exec <name> -- <cmd> | Run command in another VM |
connect <name> | Interactive shell in another VM |
list/ls, destroy/rm, connect/ssh.
Proxy commands (in-VM)
Default to current VM when--vm is omitted.
| Command | Description |
|---|---|
proxy list [--vm] [--all] | List proxies |
proxy new <name> --port=PORT [--vm] | Create subdomain proxy |
proxy remove <name> [--vm] | Remove proxy |
proxy set-port [name] --port=PORT [--vm] | Change proxy port |