# Spinbox

**Spinbox is experimental: APIs change and data may be lost.** What is built and what proves it is on [Status](https://spin-stack.github.io/website/reference/status.md); what Spinbox does not do is on [Limitations](https://spin-stack.github.io/website/overview/limitations.md).

> Self-hosted sandboxes in your own AWS account, a virtual machine per workspace, with snapshots, rollback and a diff of what changed.

## Break it. See it. Undo it.

1. **Take a snapshot, memory and all.** A machine of its own, and a snapshot of its disk with the memory of every running process. ([status](https://spin-stack.github.io/website/reference/status.md#snapshots))

```bash
spin workspace create --name demo --wait
spin snapshot create demo --description clean --with-memory --wait
```

2. **Let anyone break anything.** A person or an agent is root in a KVM machine with its own kernel: nothing they do reaches another workspace. ([status](https://spin-stack.github.io/website/reference/status.md#workspaces))

```bash
spin exec demo -- sh -c 'echo hello > /etc/greeting; rm /etc/issue'
spin snapshot create demo --description after --wait
```

3. **See exactly what changed.** Every file added, modified or removed between two snapshots, read by a separate machine. ([status](https://spin-stack.github.io/website/reference/status.md#snapshots))

```bash
spin snapshot diff demo <after-id> --from <clean-id> --under /etc
```

```text
A  /etc/greeting
M  /etc/hosts
D  /etc/issue
```

4. **Go back as if it never happened.** The disk as it was, and the processes running where they were. ([status](https://spin-stack.github.io/website/reference/status.md#snapshots))

```bash
spin workspace restore demo <clean-id> --with-memory
spin workspace delete demo
```

## What you get

- **[A whole machine, not a container](https://spin-stack.github.io/website/reference/status.md#workspaces).** 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.
- **[Snapshots with memory](https://spin-stack.github.io/website/reference/status.md#snapshots).** Restore and the processes are running where they were.
- **[A diff of everything](https://spin-stack.github.io/website/reference/status.md#snapshots).** Every file added, modified or removed between two snapshots.
- **[Closed until you open it](https://spin-stack.github.io/website/reference/status.md#network).** Egress is closed by default. Policies name what a workspace may reach, and you can watch what it reached, looked up and was refused.
- **[Secrets the workspace never holds](https://spin-stack.github.io/website/reference/status.md#network).** The host's proxy stands in for a brokered name and adds the token, the forge credential or the cloud role on the way out.
- **[Built for agents](https://spin-stack.github.io/website/reference/status.md#workspaces).** Claude Code and Codex on the PATH, API keys, JSON output, and a machine an agent can break and you can undo.
- **[Moves while it runs](https://spin-stack.github.io/website/reference/status.md#workspaces).** A running workspace goes to another host with its processes as they are.
- **[In your AWS account](https://spin-stack.github.io/website/aws/overview.md).** One 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 was](https://spin-stack.github.io/website/reference/status.md#workspaces).** A workspace nobody uses is suspended with its processes where they are, after asking first, and a start resumes them.

## 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](https://spin-stack.github.io/website/reference/status.md). An installation runs release `v20261019.02`; the reference is generated from spin `8eee32b9d`.

## 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](https://spin-stack.github.io/website/reference/status.md), held to the code by a test.
The rest are on [Limitations](https://spin-stack.github.io/website/overview/limitations.md).

**Sandboxes you own, from the first snapshot.** Read what it is for, what it costs to run, and how to install it.

- [Install on AWS](https://spin-stack.github.io/website/aws/overview.md)
- [Evaluate](https://spin-stack.github.io/website/overview.md)
- [Quickstart](https://spin-stack.github.io/website/quickstart.md)
- [For agents](https://spin-stack.github.io/website/use/agents.md)
