Preview: customer installs aren't open yet.

Run GitHub Actions on spot VMs in AWS, GCP and Azure, from one install.

Runners and their autoscaler run in your own accounts, with no vendor access, at up to 20× less compute cost than GitHub-hosted runners.

Runs in your own accounts on
  • AWS
  • Google Cloud
  • Azure
One install across three cloudsGitHub's queued jobs go to one backmesh install, which runs them on spot VMs in AWS, Google Cloud and Azure.GitHub$ backmesh installAWSGCPAzure

150,000 minutes a month: $1,800 on GitHub, $260–410 on backmesh.

4-vCPU Linux jobs on AWS, all backmesh VMs included; the range runs from evenly spread jobs to bursty ones.

GitHub-hosted$12.00per 1,000 minutes
backmesh on AWS11–12× less$0.95–$1.02 per 1,000 minutes
backmesh on Azure18–20× less$0.59–$0.65 per 1,000 minutes
backmesh on GCP5–7× less$1.62–$2.14 per 1,000 minutes
Compute per 1,000 minutes of a 4-vCPU job: GitHub's list price, and the clouds' spot prices on 2026-11-05 with VMs fully packed. Fixed on AWS: $80 a month for the control VMs, plus one always-on spot VM ($166–$178) until scale-to-zero.

Pay for jobs started, not minutes.

Each tier caps the jobs started over a rolling 30 days. Going over only warns; an unpaid bill blocks upgrades, never jobs. A subscription links your GitHub orgs through GitHub sign-in, with no licence keys, and installs count jobs with one event per job started (what's sent).

An org links to one subscription; an enterprise link covers its orgs. Tiers change or cancel in the customer portal. See the terms.

Pick the cloud per workflow.

Each label runs in one cloud. Out of spot capacity, the next VM type launches, never the next cloud.

Learn more
strategy:
  matrix:
    cloud: [aws, gcp, azure]
runs-on: backmesh-${{ matrix.cloud }}-4
The matrix runs one job in each cloud's lane: backmesh-aws-4, backmesh-gcp-4 and backmesh-azure-4.backmesh-aws-4test · awsbackmesh-gcp-4test · gcpbackmesh-azure-4test · azure

One status for every cloud.

Pools, queue, 24 h and 7 d job times, and month-to-date cost, in one command.

Learn more
backmesh status
$ backmesh status
  bm-aws-spot: running, 2 VMs (1–12)
  bm-gcp-spot: running, 1 VMs (1–2)
  bm-azure-spot: running, 1 VMs (1–8)
  backmesh-aws-4: 6 assigned, 6 running
    24 h: 42 jobs; queued to started
      p50 21 s, p95 1.6 min
Cost since 2026-11-01: $41.80
Abridged; the numbers are illustrative.

Every job log ends with what it used.

Peak memory, OOM kills, CPU and disk, to size each job.

Learn more
Job log
backmesh: resources over 312 s,
sampled every 5 s
  Memory  peak 9.8 GiB of 15.5 GiB,
          0 OOM kills
  CPU     average 2.41 cores,
          peak 3.91 of 3.98
  Disk    work directory peak 3.4 GiB
Abridged; the numbers are illustrative.

A GitHub App that can't read your code.

Four permissions, its webhook off, and its key held only by the listener.

Learn more

A stolen key can

  • Register a runner and take backmesh jobs, with their secrets
  • Dispatch or rerun a workflow
  • Read, cancel or delete runs and logs
  • Write check runs

Through GitHub's API, it can't

  • Read your code
  • Manage repository secrets
  • Change administration settings
  • See org members

Before you install

Will it work?Linux x86-64 only. Private repos only.
  • No macOS, Windows, Arm or GPU runners.
  • Public repositories can't use the runners.
  • A reclaimed spot VM fails its jobs; one check run per workflow run lists them to rerun.
  • Each job starts with an empty Docker layer cache.
Is it safe?No vendor access. Jobs from every repo share VMs.
  • Runners, the listener and the API run in your accounts.
  • Up to 8 jobs share a VM, in privileged containers.
  • Run code you trust as you trust your org's members.
  • Per-repo isolation is planned.
What does it cost?An always-on VM per cloud, until scale-to-zero ships.
  • Your clouds bill you directly.
  • Before any job runs: about $245–260 a month for AWS, $635–750 for three clouds.
  • After scale-to-zero: about $80 a month on AWS.

One install. Your clouds. Your bill.

Install across your clouds