Pricing
Pay for seconds. Keep the safety.
Every plan gets real isolation, full lifecycle controls, and the MCP server. Runtime is metered per second by isolation class — and cleanup never costs a cent.
Free
$0
Real sandboxes, real isolation, zero card. For trying things that might explode.
- 2 concurrent shells
- wasm + container runtimes
- All 5 language presets
- Sealed networking by default
- Full lifecycle controls (snapshot, wipe, reinstall)
- MCP server + typed SDK access
- Community support
Pro
$20/mo + usage
For teams shipping agents and CI workloads on sandboxes every day.
- 25 concurrent shells
- wasm + container + microvm runtimes
- Internet & localhost network modes
- Multi-region placement
- Short-lived term credentials API
- Per-second usage billing
- Priority support
Enterprise
Custom
Tenancy contracts, custom regions, and governance for fleets of agents.
- Unlimited concurrent shells
- Dedicated regions & capacity
- Keystone SSO / OIDC integration
- Entitlement & usage controls per org
- Audit-grade activity history
- Custom isolation policy
- Dedicated support engineer
Runtime matrix
Rates scale with the wall, not the workload.
Choose the isolation class per shell. A wasm sandbox for a quick eval costs a fraction of a microVM — and you decide, per create call, which one the job deserves.
| Runtime | Isolation | Start | Rate | Roughly |
|---|---|---|---|---|
| wasm | Capability-scoped WebAssembly | ~10ms cold start | $0.000014/s | ≈ $0.05 per hour of active runtime |
| container | Namespace-isolated container | sub-second start | $0.000042/s | ≈ $0.15 per hour of active runtime |
| microvm | Hardware-virtualized microVM | ~1–2s start | $0.000083/s | ≈ $0.30 per hour of active runtime |
Metering starts at session start (the shells.session.started meter). Lifecycle actions — snapshot, wipe_state, reinstall_os, restart, logs, stop — are free on every plan.
Plan matrix
Line by line.
| Capability | Free | Pro | Enterprise |
|---|---|---|---|
| Concurrent shells | 2 | 25 | Unlimited |
| Runtime classes | wasm, container | wasm, container, microvm | All + custom policy |
| Language presets | bash, node, python, rust, go | All | All + custom images |
| Network modes | sealed | sealed, internet, localhost | All + egress policy |
| Lifecycle controls | Full set | Full set | Full set + approval gates |
| Term credentials | Console only | Console + API | Console + API + custom TTL |
| MCP agent access | Yes | Yes | Yes + per-agent entitlements |
| Regions | Nearest | Multi-region | Custom / dedicated |
| SSO | — | — | Keystone OIDC |
| Support | Community | Priority | Dedicated engineer |
FAQ
The fine print, in plain type.
If your question isn't here, ask a human — the contact page reaches the people who built the billing.
Seconds where your shell session is actively running. Stopped shells don't bill compute. Metering starts when a session starts — that's the shells.session.started meter you'll see on your invoice.