Trusted by {{count}} developers

GitHub Actions at a tenth of the price

Change one line in your workflow. The job runs on Lizard in its own VM, billed by the second.

.github/workflows/build.yml
1 jobs:2   build:3-    runs-on: ubuntu-latest4+    runs-on: lizard-medium-ubuntu-24045     steps:6-      - uses: actions/checkout@v47+      - uses: lizard-build/checkout@v18       - run: npm ci && npm test

Compare runner prices

List price per minute for Linux x64 runners, checked on .

Your CI

35,000 min
Runner size Per job

Lizard, per month

$18.90/ month

This counts toward the usage included with Pro. Pro is $19/month; this is not your total bill.

The same minutes elsewhereSame vCPU count
Lizard$18.90
Namespace$210.0011×
Blacksmith$280.0015×
GitHub$420.0022×
Depot$420.0022×

Pro's $19 of usage covers about 35,000 minutes a month on Medium.

How the prices compare
Provider2 vCPU4 vCPU8 vCPU
Lizard$0.000274 GB$0.000548 GB$0.0010816 GB
Namespace$0.0034 GB$0.0068 GB$0.01216 GB
Blacksmith$0.0048 GB$0.00816 GB$0.01632 GB
GitHub$0.0068 GB$0.01216 GB$0.02232 GB
Depot$0.0068 GB$0.01216 GB$0.02432 GB

Each cell is the price of one minute, with the runner's memory under it. Lizard and Namespace give 2 GB of memory per vCPU; GitHub, Blacksmith and Depot give 4 GB. GitHub's 2 vCPU price is its standard runner for private repositories.

Lizard bills by the second. GitHub rounds each job up to a whole minute, and Namespace bills at least one minute.

Plan fees and free minutes are left out. GitHub Free and Team include $12 and $18 of runner usage a month, Blacksmith gives 3,000, Depot's $20 plan includes 2,000, and Namespace's $100 Team plan lowers its rate by a third. Lizard Pro is $19 a month with $19 of usage included.

Where "a tenth of the price" comes from: the image build job of our own frontend repository. On GitHub's ubuntu-latest runner (2 vCPU, 8 GB) it took a median 3 min 35 s over 54 runs from 21 to 28 October 2026, billed as 4 minutes: $0.024. On Lizard Medium (4 vCPU, 8 GB) the runner VM was up a median 4 min 27 s over 60 runs on 29 October 2026: $0.0024.

What every job gets

A Firecracker VM per job, with a disk that keeps your caches between runs.

Isolated runners

A fresh VM for every job

Each job boots its own Firecracker VM, and the VM is gone when the job ends. Only the repository's cache disk carries over.

Docker builds

Docker layers that stay between runs

Our Docker actions keep the layer cache on the cache disk, so the next build skips every layer that did not change.

Git checkout

Checkout fetches only new commits

lizard-build/checkout keeps a mirror of the repository on the cache disk. Each job pulls just what changed.

Dependency cache

A cache with nothing to upload

lizard-build/cache stores entries on the same disk, so there is no upload or download. Up to 10 GB per repository.

Fork safety

Forks never touch the cache

Jobs from forks start on an empty disk. Branches and pull requests can read the cache; only the default branch writes to it.

Logs

Logs next to your apps

Run history, step logs and the VM's console live in the Lizard dashboard, next to your apps and Sandboxes.

Switch in one pull request

The migration wizard reads your workflows and opens the pull request. Or change runs-on by hand.

  1. Step 1

    Connect your organization

    Install the Lizard GitHub App on an organization you admin. Personal accounts aren't supported yet.

  2. Step 2

    Pick a runner for each job

    The wizard suggests a size for every job. Windows and macOS jobs stay on GitHub.

  3. Step 3

    Merge the pull request

    Lizard opens one pull request with the changes. Merge it, and the next run starts on Lizard.

Run GitHub Actions on Lizard runners

Openlizard-runners-3f9a2c1 → main1 file changed

.github/workflows/build.yml+5−5
1 jobs:2   build:3-    runs-on: ubuntu-latest4+    runs-on: lizard-medium-ubuntu-24045     steps:6-      - uses: actions/checkout@v47+      - uses: lizard-build/checkout@v18-      - uses: actions/cache@v49+      - uses: lizard-build/cache@v110-      - uses: docker/setup-buildx-action@v311+      - uses: lizard-build/setup-docker-builder@v112-      - uses: docker/build-push-action@v613+      - uses: lizard-build/build-push-action@v1
Every swap but runs-on is optional. Off Lizard, our actions run the stock action with the same inputs and outputs.

GitHub Actions runners FAQ

What runs on Lizard, and what stays on GitHub?

Lizard runs the job: the VM, its disks and the GitHub runner inside it. Your code, pull requests, workflow files and the Actions tab stay on GitHub.

How do I move a workflow to Lizard?

Change runs-on to a Lizard label, such as lizard-medium-ubuntu-2404. The migration wizard can do this for every workflow and open the pull request for you.

Which runners are there?

Linux x64 on Ubuntu 24.04, in three sizes: 2, 4 and 8 vCPU. Windows, macOS and ARM jobs stay on GitHub for now.

How is it billed?

By the second, at Sandbox prices: Medium (4 vCPU, 8 GB) costs $0.0324 an hour. Runner time comes out of the $19 of usage included with Lizard Pro each month; past that it is pay as you go. The Lizard account that connects the organization pays.

Can I use it with a personal GitHub account?

Not yet. Runners work for GitHub organizations, and only an organization admin can connect one.

Is the cache safe with pull requests from forks?

Yes. Lizard keeps a cache disk only for private repositories, and jobs from forks never run with it. Pull requests and other branches can read it, but only pushes, schedules and manual runs on the default branch save to it.

Do Lizard's actions work on GitHub's runners?

Yes. Off Lizard they run the stock action with the same inputs and outputs, so moving a job back to GitHub is the same one-line change.

Can I use it today?

Runners are in private beta. Start a trial, then use Talk to the founder to tell us your GitHub organization, and we'll turn runners on for your account.

Build with AI. Ship with Lizard

You don't need a platform team to go live. Your whole cloud, one CLI command away.

Services
—
Add-ons
—
Deployments
—
Sandbox starts
—