How Sandal compares.
We run sandboxes, CI runners and mobile simulators on one fleet. Most tools do one of the three well. Here is an honest read of where each one is strong, including the places we would send you somewhere else.
- platforms compared
- 12
- platforms compared
- capabilities
- 10
- capabilities
- published sources
- Aug 2026
- published sources
- fleet, three surfaces
- 1
- fleet, three surfaces
Three markets, not one.
Sandboxes, CI runners and mobile simulators are sold as separate products by separate companies. A team that needs all three usually buys three vendors, learns three SDKs and reconciles three invoices. These are who you are actually choosing between in each market today.
Sandboxes
Compute for agents, a machine per task, per turn.
- Sandal vs E2BFirecracker sandboxes, open infrastructure, the biggest template catalog
- Sandal vs DaytonaComposable sandboxes, five SDKs, volumes and signed previews
- Sandal vs ModalServerless functions, GPUs and gVisor sandboxes on one Python platform
- Sandal vs Vercel SandboxFirecracker sandboxes wired into Vercel projects and OIDC
- Sandal vs Cloudflare SandboxesContainer sandboxes driven from Workers and Durable Objects
- Sandal vs ascii.dev BoxPersistent KVM VMs at one fixed, very cheap shape
- Sandal vs run.cloudFirecracker sandboxes plus mobile simulators, with compatibility adapters
CI runners
Compute for CI, ephemeral GitHub Actions runners.
Mobile simulators
Compute for mobile, iOS simulators and Android emulators.
What each platform actually ships.
A check means it is shipped and documented today. A dash means we found no public evidence of it, which is not the same as it being impossible. Where the honest answer is a qualifier rather than yes or no, the qualifier is printed. Scroll the table sideways on a small screen.
| Platform | Sandboxes | Fork or branch | Paused = $0 | Linux runners | Windows runners | macOS runners | iOS + Android simulators | Xcode builds | Self-host or BYOC | SDK languages |
|---|---|---|---|---|---|---|---|---|---|---|
| Sandal | yes | yes | yes | yes | Preview | yes | yes | yes | , | TypeScript, Python |
| Sandboxes | ||||||||||
| E2B | yes | , | Pause in beta | , | , | , | , | , | yes | TypeScript, Python |
| Daytona | yes | , | , | , | , | , | , | , | , | 5 languages |
| Modal | yes | , | , | , | , | , | , | , | , | Python |
| Vercel Sandbox | yes | , | Auto snapshot | , | , | , | , | , | , | TypeScript |
| Cloudflare Sandboxes | Containers | , | Snapshot restore | , | , | , | , | , | , | TypeScript |
| ascii.dev Box | yes | yes | yes | , | , | , | , | , | , | TypeScript, Python |
| run.cloud | yes | yes | yes | , | , | , | yes | Listed | , | Python |
| CI runners | ||||||||||
| GitHub-hosted runners | , | , | , | yes | yes | yes | , | Via macOS runners | , | Actions only |
| Depot | yes | , | , | yes | yes | yes | , | Via macOS runners | , | TypeScript, Connect API |
| Blacksmith | , | , | , | yes | yes | yes | , | Via macOS runners | , | Actions drop-in, no SDK |
| Namespace | Devboxes | , | , | yes | yes | yes | , | Via macOS runners | , | CLI only |
| Mobile simulators | ||||||||||
| Limrun | , | , | , | , | , | , | yes | yes | , | TypeScript, Python, Go |
- Self-host or BYOC
We do not offer this, and there is no date to give you. E2B publishes its infrastructure under Apache 2.0 and offers bring-your-own-cloud on enterprise plans. If running the control plane yourself is a hard requirement this quarter, that is a real reason to choose them over us.
- Xcode builds
Depot, Blacksmith and Namespace all run macOS runners, so xcodebuild works there. We mark that as a qualifier rather than a dash, because the capability is real even though none of them sell it as a product.
- Pause semantics
E2B’s pause and resume is in beta. Vercel snapshots and restores by default rather than exposing a pause verb. Neither publishes a paused-costs-nothing guarantee, so neither gets a check.
- Sandboxes on Namespace
Devboxes are persistent development machines driven by a CLI, not an API-created ephemeral sandbox. Different shape, overlapping use case, so it gets the name rather than a check.
Published rates, printed as numbers.
Same instance shapes, same units, no arithmetic done on your behalf. Every figure below comes from a vendor’s own pricing page. If a comparison is worth making, it is worth you making it.
Sandbox
4 vCPU / 8 GiB, $ per hour- Sandal
- 0.036
- ascii.dev Box
- 0.036
- E2B
- 0.331
- Daytona
- 0.331
- Vercel Sandbox
- 0.660
Linux runner
2 vCPU, $ per minute- Sandal
- 0.003
- Depot
- 0.004
- Blacksmith
- 0.004
- Namespace
- 0.004
macOS runner
Apple silicon, $ per minute- Sandal
- 0.060
- Depot
- 0.080
- Blacksmith
- 0.080
- GitHub-hosted
- 0.160
Published rates, August 2026, same instance shapes where vendors specify them. Billing models differ underneath: we bill per second while a machine is running and nothing at all while it is paused. Rates change. Check the current pricing page of anyone on this list before you budget against it.
Open the cost simulatorFour cases where we are not the answer.
A comparison page that ends with the vendor winning every row is a brochure. These four are real, we mean them, and we would rather you land on the right tool than land on us and leave in a month.
If you only need Linux sandboxes.
E2B has the largest template ecosystem and the largest community in this category. If your workload is Linux-only, the deepest catalog of prebuilt templates and worked examples is worth more than anything we do differently.
Sandal vs E2B →If container builds dominate your CI.
Depot’s Docker build caching is the deepest in the market, sitting on a bare-metal plus NVMe design built for that one problem. If most of your CI minutes go to building and pushing images, cache hit rate decides your bill.
Sandal vs Depot →If you are a mobile-only shop, today.
Limrun is simulators first: real Macs running the iOS Simulator and xcodebuild, scoped tokens, signed stream URLs, a remote-control component and a PR preview action. If simulators are the entire job, Limrun is further along that path than we are.
Sandal vs Limrun →If your workload is GPU-heavy inference.
Modal snapshots GPU memory, not just CPU state, which takes a vLLM cold start from around 45 seconds to around 5. That work is deeper than ours and it is not close.
Sandal vs Modal →Three things, and only three.
Everything else on this page is a row in a table someone else could fill in next quarter. These three are structural.
- 01
One SDK across three surfaces.
sandal.sandboxes, sandal.runners and sandal.devices share a client, an API key, an error type and an invoice. A test that needs a Linux runner, a sandbox to reproduce a failure and an iOS simulator to confirm the fix is one integration, not three. Nobody else in the matrix spans all three columns.
- 02
Utilization you can see in the price.
Sandboxes are bursty during the day, CI is bursty on weekday afternoons, simulators are interactive. Put them on one fleet and the idle troughs of one fill with the peaks of another. The $0.036 per hour is that mechanism, not a launch discount.
- 03
Priced for long-running work.
Per-second billing while the machine runs, and a paused sandbox that costs nothing. A machine can sit alive for days waiting on a model without a session cap or a wall-clock penalty, the shape of pricing that agent loops actually need.
Try it without a rewrite.
Compatibility shims present the SDK you already call. Change the import, keep the code, point an existing integration at our fleet and compare the two runs side by side. The shims cover the common surface, create, exec, files, expose, pause, not every method each SDK exposes; anything vendor-specific throws with a migration hint.
What we would rather you read here than find later.
- Regions
EU (Germany, Finland) and the United States are live. There is no APAC region and no date for one. If you need data residency somewhere we do not run, tell us, it is the single most useful signal for what we build next, and it is a reason to pick a hyperscaler-backed vendor today.
- Self-host / BYOC
We do not offer a self-hosted control plane or bring-your-own-cloud outside Enterprise, and there is no date to promise. If running it yourself is a hard requirement this quarter, E2B publishes its infrastructure and offers BYOC, a real reason to choose them.
- Concurrency
Concurrent sandboxes, runners and simulators are capped per plan. The free tier is capped low deliberately, because a shared fleet with an uncapped free tier has no capacity for paying work. Paid plans raise the ceiling and we raise it further on request.
Run the same job twice.
Point one workload at Sandal and one at whatever you use today. The numbers on this page are ours; the ones that matter are yours.