Skip to main content
The banner shows the boxd.sh logo next to the Crabbox crab mark and wordmark on a black boxd frame. Crabbox runs your repository’s commands on a machine that is not your laptop: keep editing locally, send your working tree to a remote machine, stream the output, and get the command’s exit code back. One CLI speaks to eighty providers, and the boxd provider gives every lease an isolated KVM microVM:

Crabbox runs doctor, warmup, run, and stop against boxd. The waits are cut short, and the took markers in the prompt show the real clock.

warmup creates the machine with isolated: true, confirms isolation from inventory before touching the guest, installs a fresh SSH key for that lease over boxd’s authenticated exec stream, starts a dedicated sshd on guest port 2222 behind a boxd raw port forward, and pins the guest’s host key before the first connection. run rsyncs your checkout into /home/boxd/crabbox/<lease>/ and runs the command there. stop deletes the machine and removes the local claim. Pass --boxd-delete-on-release=false to stop it instead, so the next run restarts the same disk. Every boxd API key is fenced to one organization, so set CRABBOX_BOXD_ORG to that org: without it Crabbox refuses machines billed to an org it was not told about, and warmup fails closed.
Every machine has a public HTTPS URL, isolated or not. Its default proxy picks the listening port among 80, 443, 8080, 8000, 3000, 5000, and 5173 and falls back to 8000, so keep secrets and private services off those ports.
The provider landed in Crabbox 0.64 on the gRPC API. Releases up to 0.65 fail warmup with SSH host-key verification failed, because the readiness check falls back to port 22 while the forward comes up. The fix is awaiting merge upstream. Until it merges, build Crabbox from the pull request’s branch and everything above works.
Crabbox’s own provider reference covers configuration, ownership fences, and recovery in depth.