Snapshot & fork
Seed a database once, then fork it a hundred times — the migration runs a single time.
sbx snapshot · sbx forkEvery agent, task or branch gets its own Postgres, Redis or browser to work in — a disposable sandbox on your laptop, a VM or a Kubernetes cluster, all driven from one CLI. Awake on connect, asleep at 0 B.
/work, isolated from your machine.sbx create pr-4711 --spec sandbox.json # golang:1.26, repo at /work sbx exec pr-4711 dev go build ./... sbx exec pr-4711 dev go test ./... # ← wakes the box
/work, fully isolated, and sleeps to 0 B when I step away.Opening a socket is the only signal — so an agent’s tools (psql, a driver, a test runner) wake its sandbox without an SDK, and a few idle minutes sleep it back to zero.
One command realises the spec — a real Postgres, Redis or browser. --template works with nothing on disk.
Ignore it and it sleeps to 0 B — a stopped container, volume intact. You never turn it off.
psql, a pool, Playwright or a test runner opens a socket and it's back in a second. You never turn it on.
Local agents or remote, it runs anywhere docker or kubernetes does — and sbx ui --connect drives every sandbox, wherever it lives.
Any TCP connection. No SDK, no client library, no wrapper.
Idle sandboxes cost no memory. Volume intact, back in a second.
The same spec local or in a cluster. sbx doctor tells you what a host can do.
sbx ui --connect reaches sandboxes on a VM or cluster and drives them from your terminal.
Seed one database, then fork a hundred. The migration runs a single time.
sandbox.json says what a branch needs. Reads with --json for agents.
sbx ui — cpu and memory against each service's limit, a live trace of where it's been, and one keystroke to wake, sleep, cap or port-forward. Local, or over --connect to a deployment.
curl -fsSL https://raw.githubusercontent.com/aryanmehrotra/sbx/main/scripts/install.sh | sh