Self-hosted GitHub Actions runners for up to 10× less.

One changed runs-on line, three cloudsChange runs-on: ubuntu-latest to runs-on: backmesh-4, and GitHub Actions jobs each run on their own spot VM in AWS, Google Cloud or Azure.GitHub Actions- runs-on: ubuntu-latest+ runs-on: backmesh-4 # 4 vCPU spot VMAWSGCPAzure

Each job runs on its own spot VM in your AWS, GCP or Azure account. Your cloud bills you, so your cloud credits apply.

# Paste into Claude Code, Codex, or another coding agent
set up https://backmesh.com/SKILL.md

Try free, no credit card required.

  • No cloud keys storedA role from your cloud CLI connects each cloud.
  • Your code never reaches usCode, secrets, caches and logs stay between GitHub and your runners.
  • One small event per jobIt never names the repo, workflow, job or branch. What's sent

150,000 minutes a month: $1,800 on GitHub, $191–$365 on backmesh.

4-vCPU Linux jobs; the range spans AWS, Azure and GCP and the VM types a job may get.

Compute cost a month

GitHub-hosted$1,800
backmesh on AWS$206–$259

+ $0.40–$0.58 per 1,000 jobs to boot their VMs, about 30 s each

backmesh on Azure$191–$200

+ $0.53–$0.69 per 1,000 jobs to boot their VMs, about 60–70 s each

backmesh on GCP$288–$365

+ $1.43–$2.27 per 1,000 jobs to boot their VMs, about 60–70 s each

  • Spot VMs (range across VM types)
  • Control plane, fixed

Control plane: about $86 on AWS, $111 on Azure, $74 on GCP.

GitHub's list price against spot prices on 2026-11-07, without disks, VM boots or runners no job takes, so it's a floor; see What does it cost?

Pricing

backmesh's core features are free; you pay your clouds for the VMs.

With a cue, jobs start in seconds.

Your coding agent cues backmesh as its pre-push checks start.

Your coding agent

# your agent's pre-push checks start
$ backmesh cue --in 120
Cued acme/app main.
# two minutes later
$ git push

The run's first jobs, median start

Without a cue100.5 s
With a cuesent 120 s ahead17 s
Measured on AWS on 2026-11-10: 24 jobs with a cue and 24 without, 8 per push; 20 of the 24 cued jobs found a runner already started.

Pick the cloud per workflow.

Each label runs in one cloud. Out of spot capacity, the next VM type launches, never the next cloud. Use backmesh-od-* (on-demand) for jobs that shouldn't be interrupted.

strategy:
  matrix:
    cloud: [aws, gcp, azure]
runs-on: backmesh-${{ matrix.cloud }}-4
  • backmesh-aws-4test · aws
  • backmesh-gcp-4test · gcp
  • backmesh-azure-4test · azure

Every job log ends with what it used.

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 status for every cloud.

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

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, with illustrative numbers.

One GitHub App, and what its key can do.

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

Its key can

  • Register a runner in any runner group and take its jobs, code and secrets
  • Dispatch or rerun a workflow
  • Change the OIDC subject claim your 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.
  • Each job waits for its VM to boot: about 30 s on AWS, 60–70 s on GCP and Azure. Starting runners ahead of predicted jobs, and your agent's cue, mostly hide it.
  • A reclaimed spot VM fails its job; if reclaims were the run's only failures, backmesh reruns them, up to twice.
  • 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.
  • Only run code you'd trust your org's members to run.
  • Per-repo isolation is planned.
What does it cost?No VM while idle.
  • Idle: the control plane, about $86 a month on AWS, $74 on GCP, $111 on Azure.
  • Each job's VM bills from boot until the job ends.

One install. Your clouds. Your bill.

# Paste into Claude Code, Codex, or another coding agent
set up https://backmesh.com/SKILL.md
Install manually