Key capabilities
- Isolated execution per sandbox pod with resource limits
- REST and WebSocket APIs for command execution and streaming output
- File read and write APIs for workspace workflows
- Prebuilt runtime with Node.js, Python, Go, Rust, and common CLI tooling
- Automatic cleanup with per-sandbox timeouts
- Optional warm pool support for faster startup
Architecture overview
Hosted API quickstart
- Register and receive an API key.
- Create a sandbox with a timeout.
- Execute commands inside the sandbox.
TypeScript SDK example
Self-hosted deployment
At a high level, deployment includes:- Build and push the sandbox and controller images.
- Apply the Kubernetes manifests in
k8s/. - Configure secrets for JWT signing and provider keys.
- Deploy the controller and verify pod creation.
API summary
| Method | Path | Description |
|---|---|---|
| POST | /api/v1/sandbox/create | Create a new sandbox |
| GET | /api/v1/sandbox/:id | Get sandbox details |
| GET | /api/v1/sandbox/:id/status | Get sandbox status |
| GET | /api/v1/sandboxes | List sandboxes |
| POST | /api/v1/sandbox/:id/files | Write files to a sandbox |
| GET | /api/v1/sandbox/:id/files?path=... | Read a file from a sandbox |
| POST | /api/v1/sandbox/:id/execute | Execute a command |
| POST | /api/v1/sandbox/:id/stop | Stop and delete a sandbox |
| DELETE | /api/v1/sandbox/:id | Delete a sandbox |
Configuration highlights
| Variable | Default | Description |
|---|---|---|
SANDBOX_IMAGE | - | Base image for sandbox pods |
DEFAULT_CPUS | 2 | Default CPU limit |
DEFAULT_MEMORY | 2Gi | Default memory limit |
DEFAULT_TIMEOUT | 600 | Default timeout in seconds |
MAX_SANDBOXES_PER_ORG | 5 | Max concurrent sandboxes per org |
SANDBOX_EXEC_BACKEND | kubectl | Command exec backend |
WARM_POOL_ENABLED | false | Enable warm pool pods |
Security and isolation
- Sandboxes run as non-root with dropped Linux capabilities.
- Seccomp profiles and resource limits are enforced at the pod level.
- Network policies restrict egress to HTTPS and DNS.