beam-logo
← All use cases

Run GitHub Actions 2x faster and 5x cheaper

Managed runners for GitHub Actions. Go 2x faster while saving 5x with Beam.

terminal
# Create a Linux VM for the runner and connect to it
beam vm new gh-runner
beam vm ssh gh-runner

# On the VM: download the runner from your repository's
# Settings > Actions > Runners page, then register it
./config.sh --url https://github.com/OWNER/REPO --token <TOKEN>

# Run it as a service so it starts on every boot
sudo ./svc.sh install
sudo ./svc.sh start
Why Beam

Lower your GitHub Actions bill by 5x

Faster builds, lower cost, better ergonomics. Pick all three.

How it works

How to set up a GitHub Actions runner on a Beam VM

01

Create the VM

Create a Linux VM with beam vm new, choosing CPU, memory, and disk for your builds, then connect over SSH.

02

Register the runner

Follow the commands on your repository's Settings > Actions > Runners page to download and configure the runner, then install it as a service with svc.sh.

03

Target it from your workflows

Set runs-on to self-hosted, or to the labels you gave the runner, and GitHub routes matching jobs to your VM.

ci.yml
# .github/workflows/ci.yml
name: CI
on: [push]

jobs:
  test:
    runs-on: self-hosted
    steps:
      - uses: actions/checkout@v4
      - run: docker compose up -d
      - run: make test
FAQ

Frequently asked questions

Will a paused VM pick up GitHub Actions jobs?

No. A paused or stopped VM isn't running the runner, and commands inside a VM don't count as activity for an idle timeout. Keep runner VMs running without an idle timeout, or start a fresh VM for each job.

Can I use self-hosted runners with public repositories?

GitHub recommends using self-hosted runners only with private repositories, because a pull request from a fork could run code on the runner machine.

Can each job get a clean runner?

Yes. GitHub recommends ephemeral runners for autoscaling: GitHub assigns an ephemeral runner one job and de-registers it afterward. Start each one from a prepared snapshot, then remove the VM when the job is done.

Can runners use GPUs, or run Windows and macOS jobs?

No. Beam VMs are CPU-only machines running Debian or Ubuntu. Use GitHub-hosted runners for Windows and macOS jobs.

How is a runner VM billed?

Per second while it runs, for the CPU and memory you choose. A stopped VM releases its compute, so it stops accruing compute charges.

Pay as you gobilled by the millisecond

Give Your Agent Superpowers

Start shipping today and bring your vision to life