Compare

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
02, Capabilities

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.

Capability matrix, public documentation, August 2026
PlatformSandboxesFork or branchPaused = $0Linux runnersWindows runnersmacOS runnersiOS + Android simulatorsXcode buildsSelf-host or BYOCSDK languages
SandalyesyesyesyesPreviewyesyesyes, TypeScript, Python
Sandboxes
E2Byes, Pause in beta, , , , , yesTypeScript, Python
Daytonayes, , , , , , , , 5 languages
Modalyes, , , , , , , , Python
Vercel Sandboxyes, Auto snapshot, , , , , , TypeScript
Cloudflare SandboxesContainers, Snapshot restore, , , , , , TypeScript
ascii.dev Boxyesyesyes, , , , , , TypeScript, Python
run.cloudyesyesyes, , , yesListed, Python
CI runners
GitHub-hosted runners, , , yesyesyes, Via macOS runners, Actions only
Depotyes, , yesyesyes, Via macOS runners, TypeScript, Connect API
Blacksmith, , , yesyesyes, Via macOS runners, Actions drop-in, no SDK
NamespaceDevboxes, , yesyesyes, Via macOS runners, CLI only
Mobile simulators
Limrun, , , , , , yesyes, TypeScript, Python, Go
shipped and documented, no public evidenceText shipped with a caveat
  • 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.

03, Price

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
E2B
0.331
Daytona
0.331

Linux runner

2 vCPU, $ per minute
Sandal
0.003
Depot
0.004

macOS runner

Apple silicon, $ per minute
Sandal
0.060
Depot
0.080

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 simulator
04, When to pick something else

Four 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.

E2B

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 →
Depot

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 →
Limrun

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 →
Modal

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 →
05, Where we are genuinely different

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.

  1. 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.

  2. 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.

  3. 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.

06, Migration

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.

$ npm install @sandal/sdk$ pip install sandal
compat
// before
import { Sandbox } from "e2b";
// after, one line changes
import { Sandbox } from "@sandal/sdk/compat/e2b";
const sbx = await Sandbox.create({ template: "node-24" });
await sbx.commands.run("pnpm test");
const url = await sbx.getHost(3000);
await sbx.kill();
Limits in plain sight

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.

Get started

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.

npm i @sandal/sdk