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 |
|---|---|---|---|---|---|---|---|---|---|
| Miosa | 7/7 | 100% | 39.32s | 1.37s | 0.63s | 0.44s | 2.41s | 11.22s | 21.37s |
| Isorun | 7/7 | 100% | 39.54s | 1.15s | 0.28s | 0.43s | 1.21s | 8.82s | 22.81s |
| Namespace | 7/7 | 100% | 40.22s | 4.01s | 0.29s | 0.43s | 1.22s | 8.11s | 20.40s |
| Blaxel | 7/7 | 100% | 45.60s | 1.21s | 0.43s | 0.48s | 1.78s | 10.80s | 23.98s |
| CreateOS | 7/7 | 100% | 49.17s | 2.73s | 0.45s | 0.48s | 2.54s | 11.95s | 26.69s |
| Upstash | 7/7 | 100% | 50.44s | 3.86s | 0.26s | 0.62s | 1.68s | 9.49s | 25.01s |
| Mosaic | 7/7 | 100% | 59.22s | 1.21s | 0.38s | 0.62s | 2.44s | 14.69s | 28.70s |
| Arker | 7/7 | 100% | 62.55s | 12.04s | 0.34s | 0.62s | 2.18s | 11.18s | 32.18s |
| Sail | 7/7 | 100% | 69.39s | 4.32s | 0.84s | 0.90s | 3.56s | 16.32s | 34.43s |
| Vercel | 7/7 | 100% | 69.68s | 12.96s | 0.28s | 0.68s | 1.88s | 11.51s | 36.17s |
| E2B | 7/7 | 100% | 71.97s | 7.72s | 0.66s | 0.72s | 2.89s | 14.65s | 34.38s |
| Tenki | 7/7 | 100% | 75.34s | 6.07s | 0.67s | 0.63s | 4.14s | 19.02s | 40.13s |
| CodeSandbox | 7/7 | 100% | 81.23s | — | 0.47s | 0.60s | 3.25s | 6.55s | 57.70s |
| Tensorlake | 7/7 | 100% | 92.64s | 19.27s | 0.30s | 1.10s | 3.03s | 17.68s | 44.90s |
| Modal | 7/7 | 100% | 97.71s | 8.54s | 0.30s | 0.70s | 2.37s | 19.78s | 58.97s |
| Runloop | 7/7 | 100% | 114.37s | 16.19s | 0.35s | 0.77s | 10.31s | 28.34s | 52.96s |
| Superserve | 7/7 | 100% | 119.82s | 11.23s | 0.43s | 1.12s | 5.67s | 19.24s | 78.88s |
| Daytona | 7/7 | 100% | 141.26s | 8.31s | 0.34s | 0.68s | 4.11s | 37.19s | 34.93s |
| Declaw | 7/7 | 100% | 172.63s | 7.77s | 0.74s | 0.72s | 4.15s | 25.08s | 122.56s |
| OpenComputer | 3/7 | 0% | Failed | 6.25s | — | — | — | — | — |
| Cloud Run | 2/7 | 0% | Failed | — | — | — | — | — | — |
| Sandbox0 | 2/7 | 0% | Failed | — | — | — | — | — | — |
| Archil | 0/7 | 0% | Failed | — | — | — | — | — | — |
| Beam | 0/7 | 0% | Failed | — | — | — | — | — | — |
| Cloudflare | 0/7 | 0% | Failed | — | — | — | — | — | — |
| Hopx | 0/7 | 0% | Failed | — | — | — | — | — | — |
| Lightning AI | 0/7 | 0% | Failed | — | — | — | — | — | — |
| Microsandbox | 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.