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, at up to 10× less compute cost than GitHub-hosted runners.

One install across three cloudsGitHub's queued jobs go to one backmesh install, which runs each on its own spot VM in AWS, Google Cloud or Azure.GitHub$ backmesh installAWSGCPAzure
  • No cloud keys storedInstall connects each cloud with a role from your own cloud CLI session.
  • Your code never reaches usCode, secrets, caches and logs go between GitHub and your runners, never to backmesh.
  • One small event per jobIt describes the runner and never names the repo, workflow, job or branch. What's sent
  • CI rides out our outagesRunning jobs finish, and new ones keep starting through a backmesh.com outage of up to about 30 minutes.

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

4-vCPU Linux jobs on AWS, each on its own spot VM; the range runs over the VM types a job may get.

GitHub-hosted$1,800
backmesh on AWS$120–$173+ $0.40–$0.58 per 1,000 jobs for their VMs' boot, about 30 s each
backmesh on Azure$80–$89+ $0.53–$0.69 per 1,000 jobs for their VMs' boot, about 60–70 s each
backmesh on GCP$214–$291+ $1.43–$2.27 per 1,000 jobs for their VMs' boot, about 60–70 s each
Compute a month: GitHub's list price against the clouds' spot prices on 2026-11-07, one VM per job, without disks. The headline adds AWS's fixed cost. It leaves out each job's VM boot, which the tiles price per 1,000 jobs, and runners the planner starts that no job takes, so it's a floor; see What does it cost?

Pay for jobs started, not minutes.

Caps count jobs started over a rolling 30 days, from the one event per job, with no licence keys. Every tier starts with a 15-day free trial. Going over only warns; an unpaid bill blocks upgrades, never jobs.

Free for non-commercial use: open source, non-profits, education and personal projects, with a public link back to backmesh.com. Declare it on the billing page after install.

A subscription covers the orgs, or the enterprise, you link through GitHub sign-in; an org links to one subscription. 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
  • backmesh-aws-4test · aws
  • backmesh-gcp-4test · gcp
  • backmesh-azure-4test · azure

One status for every cloud.

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

Learn more
backmesh status
$ backmesh status
Runners: each job runs in its own VM
  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 here and below 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

One GitHub App, and what its key can do.

Four permissions, its webhook off, and its key held by backmesh, never in your accounts. The same key works in every org that installs the App.

Learn more

Its key can

  • Register a runner in any runner group and take its jobs, with their code and secrets
  • Dispatch or rerun a workflow
  • Change the OIDC subject claim your cloud trust policies match on
  • Read, cancel or delete runs and logs
  • Write check runs

It can't

  • Read code through the API
  • 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.
  • Each job waits for its own VM to boot: about 30 s on AWS, 60–70 s on GCP and Azure. For a run's later jobs, the planner mostly hides it.
  • A reclaimed spot VM fails its job; one check run per workflow run lists the jobs to rerun.
  • Each job starts with an empty Docker layer cache.
Is it safe?Each job gets its own VM.
  • Jobs from every repo in the org use the same labels.
  • Run code you trust as you trust your org's members.
  • Per-repo isolation is planned.
What does it cost?No VM while idle.
  • Your clouds bill you directly.
  • Idle: only the control plane, about $86 a month on AWS, $74 on GCP, $111 on Azure.
  • Each job's VM bills from its boot until the job ends, then goes.

One install. Your clouds. Your bill.

Install across your clouds