Skip to main content
A sandbox is a real Linux machine in the cloud — your own microVM with root, up in seconds and yours to do anything with: run commands, SSH in, serve a dev URL behind a protected link, mount persistent storage, even a full browser desktop. Create one from the API, CLI, SDK, or dashboard; pause it when idle and it’s waiting right where you left off, no rebuild.

Create a sandbox

Creation returns as soon as the control plane has accepted the sandbox and started either a warm-pool claim or a cold boot. Use runtools sandbox get, runtools sandbox watch, or await sandbox.waitForReady() when you need to wait for SSH readiness.

Templates

Command Execution

Command execution wakes a paused sandbox when possible before dispatching the command.

SSH

Register an SSH key once:
Then connect:
Password access is available for quick experiments:

Protected Dev URLs

Ask Runtools for a protected URL for any port:
The REST endpoint is:
Dev URL requests also wake a paused sandbox when possible. Desktop URLs normalize to the browser desktop route for desktop templates.

Workspace Mounts

Mount org workspaces under /workspace or a safe subpath:
SDK:
Only org workspaces can be mounted into sandboxes; Personal workspaces stay reserved for thread storage and personal cloud files. Mount targets must be /workspace or a safe subpath under /workspace. For agents linked to this sandbox, the mounted workspace is their persistent filesystem memory. Anything the agent writes under /workspace remains in the workspace for future runs and for new sandboxes that mount the same workspace. See Workspaces for workspace creation, file APIs, and the agent memory model.

Pause, Resume, Destroy

SDK:
Pause/resume preserves lifecycle state for an existing sandbox. Named checkpoint, restore, and clone APIs are not part of the current public surface.

Monitoring

The SDK subscribes to live state and metrics when you register listeners:
The CLI has a live view:
Logs are available separately:

Common Fields

Sandbox lists are paginated. By default, list views show active lifecycle states rather than destroyed or orphaned history.

Best Practices

IDs are precise, but friendly names make repeated commands easier.
Sandbox-local files are removed when a sandbox is destroyed. Workspace mounts are the durable boundary.
Pause when you want to keep state for later. Destroy when the environment is no longer needed.