Cloud sandboxes, measured
Oct 22–26, 2026 · 8 providers (9 configs) · 2 caller locations: Florida, US & Frankfurt, DE · 100 runs per main test, 20 per location test
Oct 22–26, 2026 · 8 providers (9 configs) · 2 caller locations: Florida, US & Frankfurt, DE · 100 runs per main test, 20 per location test
Upstash appears twice: Box can pause; Ephemeral Box starts in 0.68 s but can't pause.
Upstash appears twice: Box can pause; Ephemeral Box starts in 0.68 s but can't pause.
By location
How network distance changes latency: the same tests run from EU-Central (Frankfurt) and US-East (Florida).
Cold start by caller location
Median time from each caller location · Colored bar marks the faster location · Lower is better
Oct 26, 2026 · 5–20 runs per test
Run a command
fastest location- E2B
- 0.12 sUS-East×1.5
- Daytona
- 0.10 sUS-East×1.6
- Upstash Box
- 0.22 sUS-East×2.5
- Boat
- 0.11 sEU-Central×2.9
- boxd
- 0.17 sEU-Central×1.7
- Freestyle
- 0.16 sUS-East×1.6
- Tenki
- 0.17 sUS-East×1.4
- Superserve
- 0.15 sUS-East×1.6
Write + read 10 MB
fastest location- E2B
- 1.3 sUS-East×2.1
- Daytona
- 1.8 sUS-East×1.1
- Upstash Box
- 2.1 sUS-East×1.9
- Boat
- 3.5 sEU-Central×2.0
- boxd
- 0.74 sEU-Central×3.9
- Freestyle
- 2.1 sUS-East×2.3
- Tenki
- 2.0 sUS-East×1.5
- Superserve
- 0.61 sUS-East×3.6
Agent tool replay
fastest location- E2B
- 14 sUS-East×1.6
- Daytona
- 17 sUS-East×1.3
- Upstash Box
- 21 sUS-East×1.8
- Boat
- 23 sEU-Central×1.8
- boxd
- 17 sEU-Central×1.8
- Freestyle
- 19 sUS-East×1.7
- Tenki
- 15 sUS-East×1.6
- Superserve
- 11 sUS-East×2.0
| Test | E2B | Daytona | Upstash Box | Boat | boxd | Freestyle | Tenki | Superserve |
|---|---|---|---|---|---|---|---|---|
| Cold start | 0.48 sUS-East | 0.99 sUS-East | 2.5 sUS-East | 0.78 sEU-Central | 1.0 sUS-East | 0.81 sUS-East | 0.91 sUS-East | 0.49 sUS-East |
| Run a command | 0.12 sUS-East | 0.10 sUS-East | 0.22 sUS-East | 0.11 sEU-Central | 0.17 sEU-Central | 0.16 sUS-East | 0.17 sUS-East | 0.15 sUS-East |
| Write + read 1 KB | 0.20 sUS-East | 0.12 sUS-East | 0.31 sUS-East | 0.43 sEU-Central | 0.24 sEU-Central | 0.19 sUS-East | 0.19 sUS-East | 0.08 sUS-East |
| Write + read 10 MB | 1.3 sUS-East | 1.8 sUS-East | 2.1 sUS-East | 3.5 sEU-Central | 0.74 sEU-Central | 2.1 sUS-East | 2.0 sUS-East | 0.61 sUS-East |
| Reconnect | 0.41 sUS-East | 0.24 sUS-East | 0.41 sUS-East | 0.25 sEU-Central | 0.42 sEU-Central | 0.47 sUS-East | 0.65 sUS-East | 0.28 sUS-East |
| Pause + resume | 0.73 sUS-East | Not measured | 1.2 sUS-East | Not measured | 0.19 sEU-Central | 0.83 sUS-East | 60 stie | 0.87 sUS-East |
| Destroy | 0.11 sUS-East | 0.79 sUS-East | 0.59 sUS-East | 0.07 sEU-Central | 0.03 sEU-Central | 0.38 sUS-East | 0.14 sUS-East | 0.21 sUS-East |
| Dev server ready | 2.1 sUS-East | 3.0 sUS-East | 3.1 sUS-East | 1.6 sEU-Central | 2.0 sEU-Central | 1.9 sUS-East | 1.8 sUS-East | 1.6 sUS-East |
| Preview URL first byte | 0.22 sUS-East | 0.20 sUS-East | 0.22 sUS-East | 0.13 sEU-Central | 0.07 sEU-Central | 0.46 sUS-East | 0.38 sUS-East | 0.16 sUS-East |
| Edit, rebuild, reload | 0.33 sUS-East | 0.42 sUS-East | 0.37 sUS-East | 0.47 sEU-Central | 0.26 sEU-Central | 0.26 sUS-East | 0.51 sUS-East | 0.47 sUS-East |
| Agent tool replay | 14 sUS-East | 17 sUS-East | 21 sUS-East | 23 sEU-Central | 17 sEU-Central | 19 sUS-East | 15 sUS-East | 11 sUS-East |
Boat (Northern France) and boxd (Frankfurt) run their sandboxes in Europe; the remaining providers run in US-East. In-sandbox CPU, memory, disk, and package install speed do not change with caller location and are omitted here.
Cold start from EU-Central (Frankfurt am Main, DE)
Median cold start and HTTPS first byte from OVH SAS · Lower is better
| Test | E2B | Daytona | Upstash Box | Boat | boxd | Freestyle | Tenki | Superserve |
|---|---|---|---|---|---|---|---|---|
| Cold start | 0.67 s | 1.5 s | 3.0 s | 0.78 s | 1.6 s | 1.1 s | 1.1 s | 0.71 s |
| Run a command | 0.18 s | 0.17 s | 0.54 s | 0.11 s | 0.17 s | 0.24 s | 0.24 s | 0.24 s |
| Write + read 1 KB | 0.33 s | 0.24 s | 0.45 s | 0.43 s | 0.24 s | 0.37 s | 0.33 s | 0.22 s |
| Write + read 10 MB | 2.7 s | 2.0 s | 4.0 s | 3.5 s | 0.74 s | 4.9 s | 3.0 s | 2.2 s |
| Reconnect | 0.66 s | 0.57 s | 0.93 s | 0.25 s | 0.42 s | 0.80 s | 0.97 s | 0.50 s |
| Pause + resume | 0.97 s | Not measured | 1.9 s | Not measured | 0.19 s | 1.2 s | 60 s | 1.1 s |
| Destroy | 0.17 s | 0.97 s | 0.90 s | 0.07 s | 0.03 s | 0.46 s | 0.19 s | 0.27 s |
| Dev server ready | 2.9 s | 4.7 s | 5.1 s | 1.6 s | 2.0 s | 3.2 s | 2.9 s | 2.4 s |
| Preview URL first byte | 0.29 s | 0.43 s | 0.53 s | 0.13 s | 0.07 s | 0.77 s | 0.58 s | 0.17 s |
| Edit, rebuild, reload | 0.51 s | 0.68 s | 0.56 s | 0.47 s | 0.26 s | 0.53 s | 0.77 s | 0.84 s |
| Agent tool replay | 21 s | 21 s | 37 s | 23 s | 17 s | 33 s | 23 s | 23 s |
Boat (Northern France) and boxd (Frankfurt) run their sandboxes in Europe; the remaining providers run in US-East. In-sandbox CPU, memory, disk, and package install speed do not change with caller location and are omitted here.
Cold start from US-East (Boca Raton, US)
Median cold start and HTTPS first byte from AT&T Enterprises, LLC · Lower is better
| Test | E2B | Daytona | Upstash Box | Boat | boxd | Freestyle | Tenki | Superserve |
|---|---|---|---|---|---|---|---|---|
| Cold start | 0.48 s | 0.99 s | 2.5 s | 1.1 s | 1.0 s | 0.81 s | 0.91 s | 0.49 s |
| Run a command | 0.12 s | 0.10 s | 0.22 s | 0.33 s | 0.29 s | 0.16 s | 0.17 s | 0.15 s |
| Write + read 1 KB | 0.20 s | 0.12 s | 0.31 s | 0.82 s | 0.46 s | 0.19 s | 0.19 s | 0.08 s |
| Write + read 10 MB | 1.3 s | 1.8 s | 2.1 s | 7.0 s | 2.8 s | 2.1 s | 2.0 s | 0.61 s |
| Reconnect | 0.41 s | 0.24 s | 0.41 s | 0.70 s | 0.88 s | 0.47 s | 0.65 s | 0.28 s |
| Pause + resume | 0.73 s | Not measured | 1.2 s | Not measured | 0.54 s | 0.83 s | 63 s | 0.87 s |
| Destroy | 0.11 s | 0.79 s | 0.59 s | 0.18 s | 0.14 s | 0.38 s | 0.14 s | 0.21 s |
| Dev server ready | 2.1 s | 3.0 s | 3.1 s | 4.1 s | 3.7 s | 1.9 s | 1.8 s | 1.6 s |
| Preview URL first byte | 0.22 s | 0.20 s | 0.22 s | 0.99 s | 0.86 s | 0.46 s | 0.38 s | 0.16 s |
| Edit, rebuild, reload | 0.33 s | 0.42 s | 0.37 s | 1.2 s | 0.96 s | 0.26 s | 0.51 s | 0.47 s |
| Agent tool replay | 14 s | 17 s | 21 s | 43 s | 31 s | 19 s | 15 s | 11 s |
Boat (Northern France) and boxd (Frankfurt) run their sandboxes in Europe; the remaining providers run in US-East. In-sandbox CPU, memory, disk, and package install speed do not change with caller location and are omitted here.
Cold start
Median s · lower is better
- 1boxd: ran 4 vCPU, 16 GB, not 4 vCPU, 8 GB. boxd has no 8 GB size at 4 vCPU; this is its nearest.
Agent work, 100 tool calls
Median s · lower is better
- 1boxd: ran 4 vCPU, 16 GB, not 4 vCPU, 8 GB. boxd has no 8 GB size at 4 vCPU; this is its nearest.
Cost per 1,000 tasks
USD · lower is better
- 1boxd: ran 4 vCPU, 16 GB, not 4 vCPU, 8 GB. boxd has no 8 GB size at 4 vCPU; this is its nearest.
Start from snapshot
Median s · lower is better
- 1boxd: ran 4 vCPU, 16 GB, not 4 vCPU, 8 GB. boxd has no 8 GB size at 4 vCPU; this is its nearest.
Where the time goes
Step by step, from median timings, in each provider's own time.
Start-up
Cold start is the wait before an agent can do anything: from create() until the first command runs, the provider's own time.
Cold start
create() to first command, without our SDK's setup · Median seconds · Lower is better
- 1boxd: ran 4 vCPU, 16 GB, not 4 vCPU, 8 GB. boxd has no 8 GB size at 4 vCPU; this is its nearest.
Every cold start
Each successful cold start, one ridge per provider · Log scale · Further left is faster
Cold start
create() to first command, without our SDK's setup · Median seconds · Lower is better
- 1E2B: ran E2B's default base template, 2 vCPU and 512 MB. E2B's pricing page says its default sandbox has 4 GB.
Every cold start
Each successful cold start, one ridge per provider · Log scale · Further left is faster
Agent work
Real coding-agent tasks, so CPU, disk and network count as much as the API.
Agent tool replay
100 tool calls in a row: write, read, edit, list, grep, run a test · Median seconds · Lower is better
- 1boxd: ran 4 vCPU, 16 GB, not 4 vCPU, 8 GB. boxd has no 8 GB size at 4 vCPU; this is its nearest. Runs in Germany, so every call from our Florida server crosses the Atlantic.
- 2Boat: runs in France, so every call from our Florida server crosses the Atlantic.
npm install
npm ci for a small Vite and React app · Median seconds · Lower is better
- 1Boat: runs in France, so every call from our Florida server crosses the Atlantic.
- 2boxd: ran 4 vCPU, 16 GB, not 4 vCPU, 8 GB. boxd has no 8 GB size at 4 vCPU; this is its nearest. Runs in Germany, so every call from our Florida server crosses the Atlantic.
pip install
requests and numpy from PyPI · Median seconds · Lower is better
- 1Boat: runs in France, so every call from our Florida server crosses the Atlantic.
- 2boxd: ran 4 vCPU, 16 GB, not 4 vCPU, 8 GB. boxd has no 8 GB size at 4 vCPU; this is its nearest. Runs in Germany, so every call from our Florida server crosses the Atlantic.
git clone
Shallow clone of a small pinned repo · Median seconds · Lower is better
- 1boxd: ran 4 vCPU, 16 GB, not 4 vCPU, 8 GB. boxd has no 8 GB size at 4 vCPU; this is its nearest. Runs in Germany, so every call from our Florida server crosses the Atlantic.
- 2Boat: runs in France, so every call from our Florida server crosses the Atlantic.
Dev server ready
Start Vite and wait until it is ready · Median seconds · Lower is better
- 1boxd: ran 4 vCPU, 16 GB, not 4 vCPU, 8 GB. boxd has no 8 GB size at 4 vCPU; this is its nearest. Runs in Germany, so every call from our Florida server crosses the Atlantic.
- 2Boat: runs in France, so every call from our Florida server crosses the Atlantic.
Preview URL first byte
Fetch the dev server through the public preview URL · Median seconds · Lower is better
- 1boxd: ran 4 vCPU, 16 GB, not 4 vCPU, 8 GB. boxd has no 8 GB size at 4 vCPU; this is its nearest. Runs in Germany, so every call from our Florida server crosses the Atlantic.
- 2Boat: runs in France, so every call from our Florida server crosses the Atlantic.
Edit, rebuild, reload
Edit a file, rebuild, fetch the page again · Median seconds · Lower is better
- 1boxd: ran 4 vCPU, 16 GB, not 4 vCPU, 8 GB. boxd has no 8 GB size at 4 vCPU; this is its nearest. Runs in Germany, so every call from our Florida server crosses the Atlantic.
- 2Boat: runs in France, so every call from our Florida server crosses the Atlantic.
Agent tool replay
100 tool calls in a row: write, read, edit, list, grep, run a test · Median seconds · Lower is better
- 1boxd: runs in Germany, so every call from our Florida server crosses the Atlantic.
- 2Boat: runs in France, so every call from our Florida server crosses the Atlantic.
npm install
npm ci for a small Vite and React app · Median seconds · Lower is better
- 1Boat: runs in France, so every call from our Florida server crosses the Atlantic.
- 2boxd: runs in Germany, so every call from our Florida server crosses the Atlantic.
- 3E2B: ran E2B's default base template, 2 vCPU and 512 MB. E2B's pricing page says its default sandbox has 4 GB.
pip install
requests and numpy from PyPI · Median seconds · Lower is better
- 1Boat: runs in France, so every call from our Florida server crosses the Atlantic.
- 2boxd: runs in Germany, so every call from our Florida server crosses the Atlantic.
git clone
Shallow clone of a small pinned repo · Median seconds · Lower is better
- 1boxd: runs in Germany, so every call from our Florida server crosses the Atlantic.
- 2Boat: runs in France, so every call from our Florida server crosses the Atlantic.
Dev server ready
Start Vite and wait until it is ready · Median seconds · Lower is better
- 1boxd: runs in Germany, so every call from our Florida server crosses the Atlantic.
- 2Boat: runs in France, so every call from our Florida server crosses the Atlantic.
Preview URL first byte
Fetch the dev server through the public preview URL · Median seconds · Lower is better
- 1Boat: runs in France, so every call from our Florida server crosses the Atlantic.
- 2boxd: runs in Germany, so every call from our Florida server crosses the Atlantic.
Edit, rebuild, reload
Edit a file, rebuild, fetch the page again · Median seconds · Lower is better
- 1boxd: runs in Germany, so every call from our Florida server crosses the Atlantic.
- 2Boat: runs in France, so every call from our Florida server crosses the Atlantic.
Everyday calls
What an agent does hundreds of times per task: run a command, move files, reattach to a sandbox.
Run a command
A no-op command, mostly network and API overhead · Median seconds · Lower is better
- 1boxd: ran 4 vCPU, 16 GB, not 4 vCPU, 8 GB. boxd has no 8 GB size at 4 vCPU; this is its nearest.
Write + read 1 KB
Write a 1 KB file and read it back · Median seconds · Lower is better