Agent testing / Limrun alternative

A Limrun alternative must preserve the mobile toolchain your agent needs

Limrun extends cloud agents with remote Xcode builds, iOS simulators, Android emulators, and Gradle build instances. It can complement a Linux sandbox rather than replace one. Its saved build workspace and mobile-device lifecycle should be evaluated separately from a durable general-purpose agent RootFS.

Reviewed 2026-10-18 · Published by the Sandbox0 team

When Limrun fits

Keep Limrun when the workload requires remote Apple tooling, mobile simulators/emulators, app signing, device control, or shareable mobile previews. Sandbox0 does not supply Xcode, macOS, or iOS simulation as an equivalent Linux runtime capability.

When to consider Sandbox0

Consider Sandbox0 for the agent’s hosted Linux execution, persistent system tools, growing RootFS, and supported paused file operations. A mobile workflow can still call a separate simulator or build service where those platform-specific capabilities are necessary.

Capabilities

Limrun and Sandbox0: what persists?

Feature comparison with documentation and verification status
Environment and runtime lifetimeLimrunHard timeout defaults to zero; inactivity policy and platform-specific instance behavior still apply.View evidence ↗Sandbox0ttl and hard_ttl default to 0 (disabled). Configure idle pause and deletion policies for the same persistent sandbox identity; an idle running sandbox still accrues compute charges.Read documentation →
Persistent filesLimrunConfigured Xcode workspace snapshots carry build files into future instances after successful publication.View evidence ↗Sandbox0The writable RootFS survives successful checkpoints, including software, system configuration, dependencies, and user data.Read documentation →
Whole RootFSLimrunThe documented saved scope is the Xcode workspace; complete operating-system retention across all instance kinds is not established.View evidence ↗Sandbox0Persistence extends beyond /workspace to paths such as /usr/local, /etc, and /home. Runtime tmpfs and virtual filesystems are excluded.Read documentation →
Release compute, keep stateLimrunInstance states end in termination; warm reuse and disk-snapshot restoration are not a documented uniform VM pause API.View evidence ↗Sandbox0Pause compute between tasks; resume on available capacity. Default resume starts fresh processes from the saved filesystem.Read documentation →
Memory and process stateLimrunBuild disk snapshots do not establish process-memory checkpoint restoration.View evidence ↗Sandbox0Experimental memory checkpoints can preserve compatible process state. Use memory: true on both pause and resume on a compatible deployment. A filesystem checkpoint alone does not preserve running processes.Read documentation →

Online RootFS growth

On growth-enabled images, Sandbox0 automatically expands the writable RootFS as free space runs low, within a configured sparse logical ceiling up to 64 TiB. Agent processes keep running. Growth is enabled in the qualified Cloud region; confirm activation for other regions. Existing images and snapshots retain their captured storage geometry. The ceiling is logical capacity, not preallocated host disk.

Reusable Xcode build-workspace snapshots are valuable, but the reviewed guides do not establish automatic online growth of a general-purpose durable complete RootFS. Keep mobile build state separate from the Linux agent machine and its expanding system tools.

Files while compute is paused

Sandbox0's Files API reads persistent files without resuming compute. Filesystem-only pauses also permit edits; retained-memory pauses are read-only and reject mutations with 409. SSH, SFTP, file watching, and runtime-only mounts require running compute.

See paused file operations →

Build machines and simulated devices have independent lifetimes

Limrun creates separate Xcode, Gradle, iOS, and Android instances. A retained warm build machine can remain while a device is deleted, or vice versa. Hard timeout defaults to zero, but inactivity timeouts still terminate instances. A reuse-by-label request returns an existing matching instance rather than restoring arbitrary machine memory.

Xcode disk snapshots save a build workspace

The snapshot guide carries source, dependencies, and DerivedData into later Xcode instances. Publication happens on termination after a qualifying successful build, with explicit restore/save outcomes; a failed compile or cancelled build does not create a new snapshot. This is useful build persistence, but does not establish complete OS or RAM retention for every Limrun instance kind.

Credit conversion depends on allowance versus overage

Paid subscriptions include monthly credits, and the included-credit effective dollar rate differs between monthly and annual commitments. Trial credit is one-time. Active Xcode, warm Xcode, simulator runtime, and warm Gradle each consume different credits per minute. Do not apply the cheapest included-credit conversion to all overage or describe a warm build machine as free.

Pricing

Compare billing models, then price your workload

CPU allocation, memory, billing minimums, disk, plan fees, and supported workload differ. These meters are not equal-performance machine quotes. Confirm region, resource units, and included allowances before estimating a total.

Limrun

Pricing reviewed 2026-10-18

Entry subscription
$20 per month; 500 credits monthly
Rate source ↗
Entry annual commitment
$192 per year; 500 credits allocated monthly
$16 monthly equivalent, not a monthly-cancellable price.
Rate source ↗
Individual subscription
$200 per month; 5,000 credits monthly
Rate source ↗
Paid-plan overage
$0.05 per credit
Rate source ↗
iOS runtime / active Xcode
2 credits per minute
Rate source ↗
Android runtime / active Gradle
1 credit per minute
Rate source ↗
Warm Xcode / warm Gradle
0.4 / 0.2 credits per minute
Rate source ↗
Trial
120 credits once; optional overage $0.06 per credit
Rate source ↗

Included credits are monthly on paid plans, including annual subscriptions. At full allowance use, monthly paid plans imply $0.04/credit and annual plans $0.032/credit; unused allowance changes effective workload cost. Storage/data transfer are excluded from the page’s illustrative task. Concurrency remains subject to abuse-prevention quotas; unlimited is not a guaranteed fleet-size benchmark.

Check current Limrun pricing ↗

Sandbox0

$0.015/GiB-hour compute (billed by the second at approximately $0.000004167/GiB-second), plus $0.02/GiB-month of retained incremental RootFS and memory checkpoint data. Shared base images and platform recovery retention are excluded; paused sandboxes accrue storage charges only.

Compute / GiB-hour
$0.015
Retained data / GiB-month
$0.02
Paused compute
$0.00

A 4 GiB agent, 100 running hours

$6.00 compute

4 GiB × 100 hours, billed by the second. Keeping 20 GiB of billable incremental data for a full billing month adds $0.40. CPU is derived from memory by the platform; choose a tier that fits your workload.

Understand storage billing →

Before migrating from Limrun

  1. Inventory mobile SDKs, Apple signing, simulator/emulator state, workspace snapshot keys, assets, active/warm instances, and subscription/overage usage.
  2. Move compatible Linux agent work to Sandbox0 while retaining or replacing the required mobile build/device services and their integrations.
  3. Validate builds and device tests separately from whole-RootFS reuse, growth, paused file access, snapshot publication, and the combined services bill.

Common questions

Is Sandbox0 a drop-in Limrun replacement?

Evaluate API compatibility and product scope. These products serve different core workflows, so a change may require a different architecture.

Does keeping files also keep a running agent?

Filesystem state and volatile process state are separate. Sandbox0 requires explicit compatible memory checkpoints to preserve running processes; its default filesystem resume starts fresh processes.

Sources and review scope

The Boat team's Battleships directory is the discovery source. References below describe the product and plan discussed on this page. Check current availability, regional terms and billing units before migrating. Where the cited material does not establish a capability or price, the comparison identifies that uncertainty.

Related comparisons