CI and test infrastructure / GitHub Actions hosted runners alternative

GitHub Actions hosted runners alternative

GitHub Actions runs repository workflows on hosted or self-hosted runners. Hosted jobs use newly provisioned environments, while artifacts, dependency caches and custom images have their own lifecycles. A returning agent computer needs to retain its mutable system state beyond a single CI job.

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

When GitHub Actions hosted runners fits

Choose GitHub Actions for repository events, workflow composition, deployment controls and its action ecosystem. Hosted Windows and macOS jobs also serve platform-specific builds that need compatible operating systems.

When to consider Sandbox0

Consider Sandbox0 for a compatible Linux agent worker with retained installed tools and a growing whole RootFS. Retain workflow orchestration and permissions, and design explicit cleanup and isolation before reusing an environment across jobs.

Capabilities

GitHub Actions hosted runners and Sandbox0: what persists?

Feature comparison with documentation and verification status
Environment and runtime lifetimeGitHub Actions hosted runnersA hosted job has a six-hour execution limit. Approval waits, queue time and longer workflow duration do not extend an individual running job.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 filesGitHub Actions hosted runnersArtifacts and caches retain selected data; self-hosted disk policies are separate.View evidence ↗Sandbox0The writable RootFS survives successful checkpoints, including software, system configuration, dependencies, and user data.Read documentation →
Whole RootFSGitHub Actions hosted runnersHosted jobs provision new environments rather than retaining each job’s mutable whole RootFS.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 stateGitHub Actions hosted runnersWorkflow suspension is not arbitrary machine checkpoint/resume.View evidence ↗Sandbox0Pause compute between tasks; resume on available capacity. Default resume starts fresh processes from the saved filesystem.Read documentation →
Memory and process stateGitHub Actions hosted runnersNo arbitrary hosted job RAM checkpoint is established.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.

Hosted runner size and custom images describe execution resources and initial state. They do not establish automatic online expansion and persistence of a complete mutable RootFS across jobs; a self-hosted runner’s storage is separately owned.

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.

Artifacts and caches remain accessible after a job through separate storage interfaces. They are selected outputs rather than all supported files throughout a paused worker RootFS.

See paused file operations →

Hosted execution is newly provisioned

Most hosted runners are new VMs; single-CPU Linux runners instead use containers on a shared VM. Custom images preconfigure larger runners but are a separate starting image, rather than automatic retention of each job’s mutable filesystem.

A workflow wait is not persistent execution

Hosted jobs have a six-hour execution limit. Queuing, approvals and a longer overall workflow duration do not extend the individual job’s execution ceiling or retain arbitrary process memory between jobs.

Minute rounding and storage affect the bill

GitHub rounds each job’s partial minute up to a whole minute. Standard hosted runners in public repositories and self-hosted runner usage are free under the documented Actions rules, while private allowances depend on plan. Larger runners are paid even for public repositories and cannot use included minutes; artifacts, caches and custom-image storage have separate accounting.

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.

GitHub Actions hosted runners

Pricing reviewed 2026-10-19

Standard Linux 2-core x64
$0.006 per minute
Each job rounds partial minutes upward; repository and plan allowances apply.
Rate source ↗
Standard Linux 2-core Arm64
$0.005 per minute
Different architecture; assess workload compatibility.
Rate source ↗
Standard Windows 2-core x64
$0.010 per minute
Rate source ↗
Standard macOS M1 or Intel
$0.062 per minute
Published 3-core or 4-core standard runner; separate larger-runner rates apply.
Rate source ↗

Minute prices are runner-specific, not equal-performance vCPU quotes. Retain separate artifact/cache/custom-image storage, paid actions, model and self-hosted infrastructure costs as applicable.

Check current GitHub Actions hosted runners 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 GitHub Actions hosted runners

  1. Inventory OS/architecture, workflow permissions, job limits, caches, artifacts, images and effective included minutes.
  2. Retain GitHub workflow controls and integrate compatible Sandbox0 work with explicit credentials and cleanup boundaries.
  3. Test system-tool retention, RootFS growth, paused files and the complete runner, storage, action and model bill.

Common questions

Is Sandbox0 a drop-in GitHub Actions hosted runners 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