Linux x64
Ubuntu 24.04 on x64. runloft-2cpu is an alias for runloft-ubuntu-24.04.
| Label | vCPU / memory | Per minute | Per hour |
|---|---|---|---|
| runloft-ubuntu-24.042 vCPU, 8 GB | 2 vCPU, 8 GB | $0.003 | $0.18 |
| runloft-ubuntu-24.04-4cpu4 vCPU, 16 GB | 4 vCPU, 16 GB | $0.006 | $0.36 |
| runloft-ubuntu-24.04-8cpu8 vCPU, 32 GB | 8 vCPU, 32 GB | $0.012 | $0.72 |
| runloft-ubuntu-24.04-16cpu16 vCPU, 64 GB | 16 vCPU, 64 GB | $0.024 | $1.44 |
| runloft-ubuntu-24.04-32cpu32 vCPU, 128 GB | 32 vCPU, 128 GB | $0.048 | $2.88 |
For test suites and builds, start with runloft-ubuntu-24.04-4cpu: it costs the same per minute as GitHub's 2-core runner and ran prettier's tests in less than half the time (benchmark). The 2 vCPU size suits lint, deploys and agent jobs that mostly wait on an API.
Linux arm64
Same sizes on arm64, 20% cheaper, open on request: email us and we will enable them for your account.
| Label | vCPU / memory | Per minute | Per hour |
|---|---|---|---|
| runloft-ubuntu-24.04-arm2 vCPU, 8 GB | 2 vCPU, 8 GB | $0.0024 | $0.14 |
| runloft-ubuntu-24.04-arm-4cpu4 vCPU, 16 GB | 4 vCPU, 16 GB | $0.0048 | $0.29 |
| runloft-ubuntu-24.04-arm-8cpu8 vCPU, 32 GB | 8 vCPU, 32 GB | $0.0096 | $0.58 |
| runloft-ubuntu-24.04-arm-16cpu16 vCPU, 64 GB | 16 vCPU, 64 GB | $0.0192 | $1.15 |
| runloft-ubuntu-24.04-arm-32cpu32 vCPU, 128 GB | 32 vCPU, 128 GB | $0.0384 | $2.30 |
Windows and macOS
Windows Server 2025 and macOS 15 on Apple silicon are enabled per account. Request access and we will email you when they are on.
| Label | vCPU / memory | Per minute | Per hour |
|---|---|---|---|
| runloft-windows-20252 vCPU, 8 GB | 2 vCPU, 8 GB | $0.007 | $0.42 |
| runloft-windows-2025-4cpu4 vCPU, 16 GB | 4 vCPU, 16 GB | $0.014 | $0.84 |
| runloft-windows-2025-8cpu8 vCPU, 32 GB | 8 vCPU, 32 GB | $0.028 | $1.68 |
| runloft-windows-2025-16cpu16 vCPU, 64 GB | 16 vCPU, 64 GB | $0.056 | $3.36 |
| runloft-windows-2025-32cpu32 vCPU, 128 GB | 32 vCPU, 128 GB | $0.112 | $6.72 |
| runloft-macos-15Apple silicon, 6 vCPU, 24 GB | Apple silicon, 6 vCPU, 24 GB | $0.06 | $3.60 |
How labels are matched
We pick up a job when its runs-on is one of the labels above. Use the label on its own; you do not need self-hosted.
jobs:
build:
runs-on: runloft-ubuntu-24.04-4cpu
# Choose the size per matrix entry
test:
strategy:
matrix:
size: [2cpu, ubuntu-24.04-4cpu]
runs-on: runloft-${{ matrix.size }}A label we do not recognise is left for GitHub to route. It will wait in the queue until GitHub times it out, the same as any job without a matching runner.
What is on the image
Linux machines run Ubuntu 24.04 with git, git-lfs, the GitHub CLI, Node.js 22, Python 3.12, build-essential, curl, jq and the usual archive tools preinstalled. Your job runs as a user with passwordless sudo, so apt-get install and the actions/setup-* actions work as they do on GitHub-hosted runners. A Docker daemon is not available yet; jobs that build or run containers should stay on GitHub-hosted runners for now. If something you rely on is missing, install it in a step and tell us at support@runloft.dev.