Skip to content
Get started

Labels and machine types

Pick a machine by putting its label in runs-on. Every label is billed per second at the rate shown.

Linux x64

Ubuntu 24.04 on x64. runloft-2cpu is an alias for runloft-ubuntu-24.04.

Linux x64
LabelvCPU / memoryPer minutePer hour
runloft-ubuntu-24.042 vCPU, 8 GB2 vCPU, 8 GB$0.003$0.18
runloft-ubuntu-24.04-4cpu4 vCPU, 16 GB4 vCPU, 16 GB$0.006$0.36
runloft-ubuntu-24.04-8cpu8 vCPU, 32 GB8 vCPU, 32 GB$0.012$0.72
runloft-ubuntu-24.04-16cpu16 vCPU, 64 GB16 vCPU, 64 GB$0.024$1.44
runloft-ubuntu-24.04-32cpu32 vCPU, 128 GB32 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.

Linux arm64
LabelvCPU / memoryPer minutePer hour
runloft-ubuntu-24.04-arm2 vCPU, 8 GB2 vCPU, 8 GB$0.0024$0.14
runloft-ubuntu-24.04-arm-4cpu4 vCPU, 16 GB4 vCPU, 16 GB$0.0048$0.29
runloft-ubuntu-24.04-arm-8cpu8 vCPU, 32 GB8 vCPU, 32 GB$0.0096$0.58
runloft-ubuntu-24.04-arm-16cpu16 vCPU, 64 GB16 vCPU, 64 GB$0.0192$1.15
runloft-ubuntu-24.04-arm-32cpu32 vCPU, 128 GB32 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.

Windows and macOS
LabelvCPU / memoryPer minutePer hour
runloft-windows-20252 vCPU, 8 GB2 vCPU, 8 GB$0.007$0.42
runloft-windows-2025-4cpu4 vCPU, 16 GB4 vCPU, 16 GB$0.014$0.84
runloft-windows-2025-8cpu8 vCPU, 32 GB8 vCPU, 32 GB$0.028$1.68
runloft-windows-2025-16cpu16 vCPU, 64 GB16 vCPU, 64 GB$0.056$3.36
runloft-windows-2025-32cpu32 vCPU, 128 GB32 vCPU, 128 GB$0.112$6.72
runloft-macos-15Apple silicon, 6 vCPU, 24 GBApple 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.