Ephemeral GitHub Actions runners, no Kubernetes required.
outrunner provisions fresh Docker containers or VMs for each GitHub Actions job, then destroys them when the job completes. It uses GitHub's scaleset API to register as an autoscaling runner group.
Why outrunner?
GitHub's Actions Runner Controller (ARC) requires Kubernetes. If you're running on bare metal or a simple VPS, you shouldn't need a cluster just to get ephemeral runners. outrunner gives you the same isolation guarantees with Docker, libvirt, or Tart. No additional orchestrator needed.
Read more about why outrunner, the architecture, and the security model.
Provisioners
| Provisioner | Host OS | Runner OS | How it works |
|---|---|---|---|
| Docker | Linux, macOS | Linux | Container per job. Fastest startup. |
| libvirt | Linux | Windows, Linux | KVM VM from qcow2 golden image with CoW overlays. QEMU Guest Agent for command execution. |
| Tart | macOS (Apple Silicon) | macOS, Linux (ARM64) | VM clone per job. Tart guest agent for command execution. |
See the provisioner reference for lifecycle details and runner image requirements for what each backend expects.
Get Started
Install outrunner for your platform:
Each guide gets you to a working Docker runner in minutes.
All packages and binaries are on the Releases page.
Going Further
Other backends
- Windows VMs via libvirt/KVM - full VM isolation
- macOS VMs via Tart - Apple Silicon
- Linux ARM64 VMs via Tart - ARM64 Linux on Apple Silicon
- More on Docker - custom images, socket detection, notes
- Run multiple backends together
Custom runner images
Reference
Used by
- delo.so - Desktop, offline-first CAD for makers. Uses outrunner for CI, build and test pipelines.
Using outrunner? Open a PR to add your project.
Author
Built by Paweł Subocz at Netwind.
