A sandbox is a full Linux virtual machine in the cloud. Each one has its own filesystem, network stack, and process space — completely isolated from other sandboxes via hardware-level virtualization. Think of it as a disposable laptop that starts in milliseconds and sleeps when idle.Documentation Index
Fetch the complete documentation index at: https://docs.opencomputer.dev/llms.txt
Use this file to discover all available pages before exploring further.
Creating a Sandbox
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
template | string | "base" | Template for the VM root filesystem |
timeout | number | 300 | Idle timeout in seconds (resets on every operation) |
envs | object | — | Environment variables set inside the VM |
metadata | object | — | Arbitrary key-value pairs stored with the sandbox |
cpuCount | number | — | CPU cores. TypeScript and HTTP API only |
memoryMB | number | — | Memory in MB. TypeScript and HTTP API only |
diskMB | number | 20480 | Workspace disk size in MB (20GB–256GB). See disk sizing note below. |
secretStore | string | — | Secret store name — resolves encrypted secrets and egress allowlist |
image | Image | — | Declarative image definition (see Templates) |
snapshot | string | — | Name of a pre-built snapshot for instant boot |
apiKey | string | — | Defaults to OPENCOMPUTER_API_KEY env var |
apiUrl | string | — | Defaults to OPENCOMPUTER_API_URL env var |
cpuCount, memoryMB, and secretStore are not available in the Python SDK. Use the HTTP API directly for custom resources from Python.Disk sizing (closed beta). Every sandbox ships with a 20GB workspace on
/home/sandbox. You can request up to 256GB via diskMB; any GB above the
20GB baseline is metered per-second at a rate comparable to AWS EBS gp3.
Larger disk limits are gated per-organization during the beta — book a
call to have your
org’s ceiling raised.Connecting to an Existing Sandbox
Lifecycle
Sandboxes have four states:| Status | Description |
|---|---|
running | Active, accepting operations |
hibernated | State saved, no compute cost |
stopped | Terminated |
error | Failed |
Hibernation & Wake
Hibernation snapshots the VM state and stops it — no cost while hibernated. Wake restores the sandbox, typically fast, with a cold-boot fallback if snapshot restore is unavailable.Methods
| Method | TypeScript | Python | Description |
|---|---|---|---|
| Kill | await sandbox.kill() | await sandbox.kill() | Terminate the sandbox |
| Check status | await sandbox.isRunning() | await sandbox.is_running() | Returns boolean |
| Set timeout | await sandbox.setTimeout(600) | await sandbox.set_timeout(600) | Update idle timeout (seconds) |
| Hibernate | await sandbox.hibernate() | — | Snapshot and stop |
| Wake | await sandbox.wake() | — | Resume from hibernation |
Properties
| Property | TypeScript | Python | Description |
|---|---|---|---|
| Sandbox ID | sandbox.sandboxId | sandbox.sandbox_id | Unique identifier |
| Status | sandbox.status | sandbox.status | Current lifecycle state |
| Domain | sandbox.domain | — | Preview URL domain for port 80 |
| Agent | sandbox.agent | sandbox.agent | Agent sessions |
| Exec | sandbox.exec | sandbox.exec | Command execution |
| Files | sandbox.files | sandbox.files | Filesystem |
| PTY | sandbox.pty | sandbox.pty | Interactive terminals |
Python Context Manager
The Python SDK supportsasync with for automatic cleanup:
Forking from Checkpoints
Create a sandbox from a saved checkpoint — useful for parallel testing from a known-good state:Related
Running Commands
Execute shell commands
Working with Files
Read, write, and manage files
Interactive Terminals
PTY sessions for interactive work
Checkpoints
Snapshot, fork, and restore
Templates
Custom VM images
Preview URLs
Expose ports to the internet