A real-world workload benchmark inspired by this tweet from dax to test potential sandbox providers for OpenCode.
Median duration per phase of the clone + install + typecheck cycle.
Provider | Phases | Success | Total (med) | Prepare | Bun DL | Bun Unpack | Clone | Install | Typecheck |
|---|---|---|---|---|---|---|---|---|---|
| Isorun | 7/7 | 100% | 33.54s | 1.41s | 0.22s | 0.43s | 1.11s | 8.06s | 19.57s |
| Blaxel | 7/7 | 100% | 43.75s | 1.24s | 0.44s | 0.48s | 1.51s | 9.47s | 23.46s |
| Namespace | 7/7 | 100% | 45.89s | 3.22s | 0.25s | 0.45s | 1.10s | 10.72s | 23.65s |
| CreateOS | 7/7 | 100% | 48.13s | 2.07s | 0.59s | 0.45s | 2.53s | 12.53s | 25.87s |
| Upstash | 7/7 | 100% | 49.41s | 3.68s | 0.26s | 0.62s | 1.66s | 9.90s | 24.04s |
| Mosaic | 7/7 | 100% | 59.71s | 1.20s | 0.31s | 0.63s | 2.31s | 13.88s | 30.38s |
| Arker | 7/7 | 100% | 60.28s | 8.91s | 0.36s | 0.64s | 2.00s | 11.74s | 32.60s |
| Vercel | 7/7 | 100% | 66.84s | 11.13s | 0.25s | 0.69s | 2.08s | 11.31s | 35.33s |
| Daytona | 7/7 | 100% | 73.38s | 5.33s | 0.36s | 0.60s | 1.70s | 14.93s | 37.60s |
| Tenki | 7/7 | 100% | 79.91s | 4.61s | 0.56s | 0.72s | 3.16s | 20.98s | 39.39s |
| Tensorlake | 7/7 | 100% | 85.42s | 17.15s | 0.43s | 1.06s | 3.34s | 17.62s | 39.79s |
| Modal | 7/7 | 100% | 94.26s | 8.57s | 0.38s | 0.70s | 2.36s | 14.03s | 61.26s |
| Sail | 7/7 | 100% | 94.31s | 4.35s | 1.02s | 0.89s | 3.90s | 18.95s | 55.74s |
| Superserve | 7/7 | 100% | 109.94s | 12.18s | 0.40s | 1.07s | 6.22s | 19.55s | 67.31s |
| Runloop | 7/7 | 100% | 120.89s | 16.89s | 0.41s | 0.80s | 3.72s | 39.94s | 53.77s |
| Sandbox0 | 7/7 | 100% | 171.98s | 29.31s | 1.68s | 0.86s | 8.81s | 73.22s | 36.88s |
| Declaw | 7/7 | 100% | 277.34s | 5.65s | 0.71s | 0.78s | 4.95s | 48.25s | 202.77s |
| E2B | 6/7 | 0% | Failed | 10.90s | 0.83s | 0.78s | 2.92s | — | — |
| Microsandbox | 4/7 | 0% | Failed | 2.54s | 0.31s | — | — | — | — |
| OpenComputer | 3/7 | 0% | Failed | 7.34s | — | — | — | — | — |
| Cloud Run | 2/7 | 0% | Failed | — | — | — | — | — | — |
| Archil | 0/7 | 0% | Failed | — | — | — | — | — | — |
| Beam | 0/7 | 0% | Failed | — | — | — | — | — | — |
| Cloudflare | 0/7 | 0% | Failed | — | — | — | — | — | — |
| CodeSandbox | 0/7 | 0% | Failed | — | — | — | — | — | — |
| Freestyle | 0/7 | 0% | Failed | — | — | — | — | — | — |
| givemeanode | 0/7 | 0% | Failed | — | — | — | — | — | — |
| Hopx | 0/7 | 0% | Failed | — | — | — | — | — | — |
| Lightning AI | 0/7 | 0% | Failed | — | — | — | — | — | — |
| Miosa | 0/7 | 0% | Failed | — | — | — | — | — | — |
| Northflank | 0/7 | 0% | Failed | — | — | — | — | — | — |
| Run Cloud | 0/7 | 0% | Failed | — | — | — | — | — | — |
if you think you have a good option run this
— dax (@thdxr) July 17, 2026
curl -fsSL https://t.co/sKj7k7aqWZ | BENCH_PROVIDER=unknown BENCH_REGION=unknown bash
Want to see a provider added?
Each run executes a cold clone + install + typecheck cycle of the opencode repository inside a fresh sandbox: install system packages and Node.js, download and unpack Bun, shallow-clone opencode at a pinned commit, run bun install, then bun typecheck.
Each provider runs 1 iteration per scheduled benchmark run. Benchmarks run via GitHub Actions and results are committed to the public benchmarks repo.
The Composite Score is the median number of the 7 benchmark phases (prepare, cache clear, bun download, bun unpack, clone, install, typecheck) a provider completed before failing, if any — shown as a fraction like 7/7.
The other metrics (Total, Prepare, Clone, Install, Typecheck) are real-world phase durations in seconds — providers are ranked by median duration (lower is better) when one of those is selected. The benchmark requires curl, root/sudo, and a package manager (apt, dnf, or apk) inside the sandbox — providers without those capabilities fail early, which shows up as a low phase count.