Compare · Sandboxes

Sandal vs ascii.dev Box

Box makes one fixed Linux VM shape genuinely cheap, the same $0.036 an hour we publish, with SSH, Docker, snapshots and forks. Sandal makes the workload cheap instead: right-size each machine, pay per second while it runs, pause to $0, and reach a CI runner or an iOS simulator from the same client.

$ / hr · 4 vCPU 8 GiB
0.036ascii.dev Box0.036Sandal
Paused sandbox
$0ascii.dev Box$0Sandal
Machine shapes
1ascii.dev BoxAnySandal
Surfaces on one SDK
Linuxascii.dev BoxLinux · CI · mobileSandal
The honest split

Two good answers. Here is which one is yours.

Pick ascii.dev Box if
  • One persistent Linux box with SSH and Docker is the whole job, and a fixed shape fits it.
  • You want a familiar Ubuntu VM with simple snapshot and fork commands and a browser desktop.
  • Egress volume matters and Box’s allowance covers you.
Pick Sandal if
  • Your fleet is many short-lived machines of different sizes, not one long-lived box.
  • Agents idle between turns and per-second, right-sized billing beats a flat hourly shape.
  • You also need CI runners, Windows or macOS machines, or iOS and Android simulators from the same SDK.

Many teams run both. runs-on is per job and a sandbox is per task; nothing here is all or nothing.

Side by side

What each one actually ships.

Documented capability as of August 2026. Where the honest answer is a qualifier rather than yes or no, the qualifier is printed. Scroll sideways on a small screen.

ascii.dev Box compared with Sandal, August 2026
Areaascii.dev BoxSandalWhy it matters
Runtime
ShapeOne fixed VM shape.Any vCPU and RAM combination, billed on what you provision.A fleet of small agents pays for the shape it needs, not the shape on offer.
Start timeSeconds to boot a VM.Under 200 ms from a warm pool.Per-request execution needs the machine before the model finishes thinking.
Snapshots and forksSnapshot and fork commands.Snapshots and copy-on-write forks from the SDK.Both let an agent branch its work. A tie.
Isolation
RuntimePersistent KVM virtual machine with its own kernel.Firecracker microVM with its own kernel; containers on the same fleet for one-shot code.Both give the guest a kernel. A tie.
Pricing
BillingFlat hourly rate for the shape; paused costs nothing.Per second while the machine runs; paused costs nothing.Identical headline rate; the meters diverge on bursty work.
Surfaces
Beyond LinuxLinux only.Linux, Windows and macOS machines, CI runners, iOS and Android simulators, Xcode builds.The reason a mobile team ends up with three vendors.
Developer experience
AccessSSH, Docker, a browser desktop.Exec and filesystem API, preview URLs, a 60 fps desktop stream, computer use.Human-shaped access versus agent-shaped access.
Sources · reviewed August 2026

Capabilities change and rates change. If something here is out of date, tell us and we will fix it the same week.

Price

Same shape. Two meters.

Published rates, August 2026. The headline is a tie; Box bills the fixed shape by the hour, Sandal bills machine time while running by the second and lets you size the machine to the job.

ascii.dev Box4 vCPU / 8 GiB
0.036$ / hour
Sandal4 vCPU / 8 GiB · paused = $0
0.036$ / hour
$0.00$0.06$0.12$0.18$0.230h6h12h18h24hAGENT WORKING · 5.8 H OF 24ascii.dev Box $0.21Sandal $0.21

One agent day on the published rates for the same shape: 5.8 hours of work in six bursts. Box pauses to $0 too, so the 24-hour model only differs where Sandal right-sizes the machine.

Migration

Same shape, native SDK.

The lifecycle maps one to one, create, exec, files, stop, so the port is a small rewrite, not a re-architecture. Keep the vendor-specific glue on your side of the boundary.

agent.tsfrom a box to a fleet
import { Sandal } from "@sandal/sdk";
const sandal = new Sandal({ apiKey: process.env.SANDAL_API_KEY });
// one machine per task, sized for the task
const box = await sandal.sandboxes.create({
template: "ubuntu-24.04",
resources: { vcpus: 2, memoryMb: 4096 },
});
await box.exec("pnpm test");
await box.pause(); // $0 until the next turn
  1. 01≈ 2 min

    Install the SDK

    npm install @sandal/sdk or pip install sandal, and set one API key.

  2. 02≈ 1 hour

    Turn the box into a template

    Snapshot your Ubuntu image once; create machines from it per task instead of keeping one alive.

  3. 03≈ 1 afternoon

    Run both, side by side

    Same job on each for a day; compare the invoice on your real mix of sizes and idle time.

Where ascii.dev Box is ahead

What we would rather you read here than find later.

A comparison page where the vendor wins every row is a brochure. These are real, and we would rather you land on the right tool than land on us and leave in a month.

  • 01

    One box, one price, no surprises.

    If the job really is one persistent Linux machine, Box’s flat shape with SSH, Docker and a browser desktop is simple and exactly as cheap as we are.

Before you switch

Questions teams ask before moving off ascii.dev Box.

No. For one machine at Box’s fixed shape running around the clock the published rates are identical. Sandal is cheaper when machines are right-sized, bursty, or paused between turns, and when the same team also needs CI runners or simulators.

Get started

Run the same job twice.

Point one workload at Sandal and one at ascii.dev Box. The numbers on this page are ours; the ones that matter are yours.

npm i @sandal/sdk