spin-stack · self-hosted sandboxes
A virtual machine per workspace. A snapshot before, a diff after.
Sandboxes for people and agents that run in your own AWS account. Take a snapshot with the memory of the running processes, see exactly which files changed, and roll back. A workspace's network stays closed until you open it.
Break it. See it. Undo it.
Section titled “Break it. See it. Undo it.”$ spin workspace create --name demo --wait $ spin snapshot create demo --description clean --with-memory --wait $ spin exec demo -- sh -c 'echo hello > /etc/greeting; rm /etc/issue' $ spin snapshot create demo --description after --wait $ spin snapshot diff demo <after-id> --from <clean-id> --under /etc A /etc/greeting M /etc/hosts D /etc/issue $ spin workspace restore demo <clean-id> --with-memory $ spin workspace delete demo
$ spin workspace create --name demo --wait $ spin snapshot create demo --description clean --with-memory --wait $ spin exec demo -- sh -c 'echo hello > /etc/greeting; rm /etc/issue' $ spin snapshot create demo --description after --wait $ spin snapshot diff demo <after-id> --from <clean-id> --under /etc A /etc/greeting M /etc/hosts D /etc/issue $ spin workspace restore demo <clean-id> --with-memory $ spin workspace delete demo
What you get
Section titled “What you get”Every workspace is a KVM virtual machine with its own kernel, root and a persistent disk. Install anything, break anything: nothing reaches the workspace next door.
e2e · TestAWorkspaceBootsARealGuestSnapshots with memoryRestore and the processes are running where they were.
e2e · TestARunningWorkspaceResumesFromASnapshotsMemoryA diff of everythingEvery file added, modified or removed between two snapshots.
e2e · TestADiffOfTwoSnapshotsIsWhatChangedBetweenThemClosed until you open itEgress is closed by default. Policies name what a workspace may reach, and you can watch what it reached, looked up and was refused.
e2e · TestAnOwnerMayOnlyChooseAPolicyTheInstallationDeclaresSecrets the workspace never holdsThe host’s proxy stands in for a brokered name and adds the token, the forge credential or the cloud role on the way out.
spin team secret setBuilt for agentsClaude Code and Codex on the PATH, API keys, JSON output, and a machine an agent can break and you can undo.
e2e · TestTheAgentCLIsAreOnPathWithThePinnedVersionsMoves while it runsA running workspace goes to another host with its processes as they are.
e2e · TestHostsAMoveTakesARunningWorkspaceToAnotherHostIn your AWS accountOne OpenTofu module installs it in your account. There is no hosted version, so your code and your data stay in your account.
Asleep when idle, awake as it wasA workspace nobody uses is suspended with its processes where they are, after asking first, and a start resumes them.
e2e · TestAWorkspaceNobodyUsesIsSuspendedAndAStartResumesItProof, not promises
Section titled “Proof, not promises”75 features built, each with a test or a command that proves it, 5 not built yet and 17 limits, on the status page. An installation runs release v20261019.02; the reference is generated from spin 8eee32b9d.
Straight answers
Section titled “Straight answers”- AWS only. One OpenTofu module installs Spinbox in your account. There is no hosted version.
- x86-64 only. Runners are x86-64 machines with nested virtualization.
- Linux guests only. A workspace boots the kernel Spinbox provides.
- No GPUs. There is no way to ask for a runner of a particular kind.
- One region, one control plane. An installation lives in one AWS region.
Each answer is a limit row of the status page, held to the code by a test. The rest are on Limitations.
Sandboxes you own, from the first snapshot.
Read what it is for, what it costs to run, and how to install it.
Documents Spinbox v20261019.02. This page as Markdown, for a model or a terminal.

