Run GitHub Actions 2x faster and 5x cheaper
Managed runners for GitHub Actions. Go 2x faster while saving 5x with Beam.
# 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 startLower your GitHub Actions bill by 5x
Faster builds, lower cost, better ergonomics. Pick all three.
How to set up a GitHub Actions runner on a Beam VM
Create the VM
Create a Linux VM with beam vm new, choosing CPU, memory, and disk for your builds, then connect over SSH.
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.
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.
# .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 testFrequently 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.
Related use cases
Run coding agents on persistent cloud VMs
Persistent VMs where Claude Code and Codex can build, test, and run.
SandboxesGive your AI agents a safe place to run code
Isolated sandboxes for agent-generated code, booting in seconds.
Task QueuesFan out batch jobs across thousands of containers
Fan out batch inference and ETL across thousands of containers.
Give Your Agent Superpowers
Start shipping today and bring your vision to life