Windows Runners

Windows GitHub Actions runners that don’t crawl.

Windows Server 2025 jobs on bare-metal NVMe, single-tenant, billed by the second. The same one-line runs-on swap, half of GitHub’s Windows minute, without the slow shared runner and its network disk.

npx sandal migrate --repo your-org/your-repo
.github/workflows/ci.yml−1 +1
build:
- runs-on: windows-latest
+ runs-on: sandal-windows-2025
steps:
- uses: actions/checkout@v4
- run: dotnet build -c Release

Same actions, same PowerShell, same MSVC. On bare-metal NVMe instead of a shared cloud VM.

Server 2025Windows
$0.0006per minute, from
3.1 GB/slocal NVMe
1 tenantper job
per secondmetering
Speed

Faster because
the hardware is faster.

Windows CI is disk- and I/O-bound, and GitHub’s Windows runners sit on network storage. Local NVMe is where most of this gap comes from. Medians on public repositories.

Workload Test Comparison

2.6xFaster
.NET solution build
4m 12s
11m 05s
2.6xFaster
MSVC C++ build
6m 40s
17m 30s
2.5xFaster
Unity player build
9m 50s
24m 10s
Sandal GitHub Windows
Labels

Pick it in the workflow file.

Label
Spec
Arch
sandal-windows-2025
2 / 8 GB
x86_64
sandal-windows-2025-8
8 / 32 GB
x86_64
sandal-windows-2025-16
16 / 64 GB
x86_64

Windows Server 2025 (preview). RAM scales at 4 GB per core; disk is 150 GB on local NVMe. Developer Mode and Hyper-V are enabled.

Bare-metal NVMe

Disk that keeps up.

Windows builds live or die on I/O. Job disks are on host NVMe at 3.1 GB/s, not a network volume, which is where the win over GitHub’s Windows runners comes from.

Single-tenant

A fresh Windows every job.

Each job boots its own VM and is destroyed at teardown. No shared runner state, no leftover installs from the last build, no reuse.

Half the rate

Windows without the tax.

GitHub bills Windows at twice a Linux minute. Ours carries the licence cost, not a margin, a fraction of a cent per minute, billed by the second.

Cost

Half of GitHub’s Windows minute.

Windows carries a licence cost and a larger base image, that is what the gap against Linux pays for, not margin. Billed by the second.

Runner
GitHub Windows / min
Sandal / min
2 vCPU / 8 GB
$0.016
$0.0006
8 vCPU / 32 GB
$0.064
$0.0024
16 vCPU / 64 GB
$0.128
$0.0048

GitHub-hosted Windows is $0.016/min for 2 cores. Sandal bills wall-clock seconds on bare metal. All runners, every OS →

Plans

One balance. Every machine you run.

Runners draw from the same credit pool as your sandboxes, simulators and Xcode builds, billed by the second at one published rate card.

Starter

For a solo build or a first agent in production.

$20/ month

$20 of usage credits

≈ 550 VM-hours or 33,000 CI minutes

Get started
  • 20 concurrent machines
  • Committed in-plan rates on every product
  • Linux & Windows, sandboxes, VMs, runners
  • Per-second billing, paused is free
  • Full API, SDKs, CLI & MCP server
  • Unlimited seats
  • Community support
Most popular

Team

Apple silicon unlocked, and a balance that rolls over.

$100/ month

$100 of usage credits

≈ 2,700 VM-hours or 10,000 Mac build minutes

Get started
  • 100 concurrent machines
  • Everything in Starter, plus:
  • macOS, iOS/Android simulators & Xcode builds
  • Unused credits roll over one month
  • Usage exports & per-second line items
  • Email support

Business

Higher ceilings for a team leaning on the fleet daily.

$250/ month

$250 of usage credits

≈ 6,900 VM-hours or 25,000 Mac build minutes

Get started
  • 300 concurrent machines
  • Everything in Team, plus:
  • Raised concurrency & start rate
  • Priority support & shared Slack channel
  • Single sign-on (SAML / OIDC)
  • Volume credit rate

Enterprise

Dedicated capacity, your compliance surface, one invoice.

Custom

Committed volume rate

Committed volume rate, negotiated per account

Talk to sales
  • Reserved bare-metal capacity
  • BYOC or self-host the control plane
  • SSO & SCIM, audit logs, data residency
  • Annual invoicing, MSA, DPA
  • Support SLA & solutions engineering
  • Custom regions on request

Every plan spends its credit pool first, then usage keeps flowing and bills per second at your committed in-plan rate, no hard stop mid-run, no forced upgrade. Without a plan you pay the on-demand rate instead. Prices are illustrative pending final list pricing; the per-second billing model is final.

Rate card

The runner rate card.

Linux

MachineIn-plan / minuteOn-demand / minute
2 vCPU / 4 GB$0.0003$0.0004
4 vCPU / 8 GB$0.0006$0.0009
8 vCPU / 16 GB$0.0012$0.0018
16 vCPU / 32 GB$0.0024$0.0036
32 vCPU / 64 GB$0.0048$0.0072
64 vCPU / 128 GB$0.0096$0.014

Windows

MachineIn-plan / minuteOn-demand / minute
2 vCPU / 4 GB$0.0006$0.0009
4 vCPU / 8 GB$0.0012$0.0018
8 vCPU / 16 GB$0.0024$0.0036
16 vCPU / 32 GB$0.0048$0.0072
32 vCPU / 64 GB$0.0096$0.014
64 vCPU / 128 GB$0.019$0.029

macOS · Apple silicon

MachineIn-plan / minuteOn-demand / minute
M-series · 4 cores / 8 GB$0.01$0.015
M-series Pro · 8 cores / 16 GB$0.02$0.03

Linux runners are the VM ladder priced per minute; Windows is 2x. macOS runners are dedicated Apple-silicon Mac minis. On-demand is 1.5× the in-plan rate. All usage bills by the second; paused machines are not billed.

Get started

Give your AI agents somewhere to run today.

Your agents get their own machines across Linux, macOS, Windows, iOS and Xcode in milliseconds, and you stop paying for idle.

npx sandal init