CI runners · your hardware · zero idle cost

Ephemeral GitHub Actions runners
on the hardware you already own.

Baremetal turns the Macs and Linux machines you own into a self-scaling fleet of single-use runners — so your builds run fast, isolated, and disposable, without paying for hosted CI.

Add a machine in one line:
curl -fsSL https://baremetal.run/install.sh | bash -s -- cjt_…

Free while in beta · no credit card · your keys stay encrypted

Hosted CI is expensive, slow, or fragile. Usually all three.

Hosted minutes are costly

Hosted runners — macOS especially — are the most expensive minutes you can buy, billed at a steep multiplier you don’t control.

Self-managed runners rot

Persistent runners accumulate state, leak secrets between jobs, and need babysitting to scale up and down.

You already have machines

A Mac mini or a Linux box sitting on a shelf can outrun cloud CI — if something safely turns it into ephemeral runners.

From zero to running in four steps

1

Connect GitHub

A guided flow creates a GitHub App scoped to your org or a single repo. The private key is encrypted at rest in our backend — never on your machines, never in our database.

2

Add your machines

One command on each Apple Silicon Mac or Linux box installs the agent and joins it to your workspace. No notarization, no inbound ports — the machine dials out.

3

Define a pool

Pick an image, a size, and a warm-runner count. Baremetal keeps that many ready and scales to zero when nothing is queued.

4

Push code

Every job gets a fresh, single-use VM — a Tart VM on a Mac, a KVM VM on Linux. It runs your workflow, then is destroyed. No state leaks between jobs, ever.

Built the way you’d build it yourself — if you had the time

Ephemeral, single-job runners

A clean VM per job, torn down afterwards. No leftover caches, credentials, or state between builds.

Auto-scaling, scale-to-zero

Pools track queued demand and idle down to nothing. You pay for electricity, not idle cloud minutes.

Your hardware

Runs on the Macs and Linux machines you already own. No per-minute bill — including the priciest CI tier there is, hosted macOS.

Bring your own GitHub App

You own the integration. We custody the key encrypted at rest and only mint short-lived, single-job registration tokens.

Tenant isolation

Agents and the runners scheduled onto them are label-fenced to your workspace. Your machines are never shared — this is not a marketplace.

Mac & Linux, hardware-accelerated

Real macOS VMs on Apple Silicon via Tart, Linux VMs via QEMU/KVM, with nested virtualization for workloads like Android emulators — honouring each platform’s limits.

Security you can actually verify

Keys encrypted at rest, never on disk. Single-use runners destroyed after every job. Outbound-only connections. The dashboard has zero database access — every action goes through an authenticated API. We only claim what the architecture backs.

Read the security model →
  • 🔐 GitHub App keys encrypted at rest, used only for short-lived tokens
  • ♻️ Fresh VM per job, destroyed afterwards
  • 🚪 No inbound ports — your machines dial out
  • 🧱 Label-fenced isolation — your hardware is never shared
  • 🛡️ Deny-all database rules; owner/admin gates on every change

Free while we’re in beta

$0/ during beta
  • ✓ Unlimited runners on your own machines
  • ✓ Unlimited workspaces, pools, and connections
  • ✓ Auto-scaling and scale-to-zero
  • ✓ Encrypted key custody & ephemeral runners
  • ✓ No credit card required
Get started free →

You run on your own hardware, so there’s no per-minute charge. Pricing for any future paid plans hasn’t been set yet.

Frequently asked

What do I need to run it?

A machine you own — an Apple Silicon Mac (M1 or newer) with Homebrew, or any Linux box with KVM (hardware virtualization) — plus a GitHub org or repo you administer. Either way you install a tiny agent with one command.

Do you charge per build minute?

No. Your jobs run on your own hardware, so there is no per-minute compute charge from us. Baremetal is free while we are in beta.

Where do my GitHub App keys live?

Encrypted at rest in our backend. They are never written to disk on your machines and never stored in our database. They are used only to mint short-lived, single-job runner registration tokens.

Is my hardware ever shared with another customer?

Never. Agents and the runners scheduled onto them are fenced to your workspace by label. Baremetal orchestrates your hardware for you — it does not rent it out.

Do I have to open ports on my network?

No. Every connection is outbound: your machine dials the cloud backend. Nothing reaches into your machines, which keeps it NAT- and firewall-friendly.

What happens to a job’s data when it finishes?

The entire VM is destroyed. Each job starts from a pristine image and leaves nothing behind, so secrets and artifacts never survive into the next job.

Put your hardware to work.

Connect GitHub, add a machine, and watch your first ephemeral runner come online in minutes.

Get started free →