The hardware-optimized, autoscaling GitHub Actions runner fleet for developer workstations.
Instantly launches ephemeral Docker containers (~0.3s) for rapid builds, or provisions dedicated Linux Virtual Machines with full systemd and unconfined Chrome sandboxing for browser E2E tests.
# 1. Clone repository and run interactive setup wizard
❯ git clone git@github.com:el-j/run-zero.git
❯ cd run-zero && make env
# 2. Launch Autoscaler & local proxy registries
❯ make start
# 3. Stream real-time ephemeral runner telemetry
❯ make logs Direct host acceleration with zero Kubernetes control plane overhead and automated registry proxy caching.
Execute jobs in ephemeral Docker containers (~0.3s boot, 20MB idle RAM) or dedicated Linux VMs (OrbStack / WSL2) with full systemd and unconfined Chrome sandboxing.
Inspects workflow labels in real time and automatically routes jobs with browser, e2e, lighthouse, or systemd labels to dedicated VMs while keeping unit tests in fast containers.
Run native Apple Silicon ARM64 binaries at bare-metal speed, or run x86_64 AMD64 Docker containers simultaneously using OrbStack's Rosetta 2 acceleration.
Integrated caching proxies for Debian/Ubuntu (apt-cacher-ng :49503), npm (Verdaccio :49501), Go (Athens :49500), and Docker Hub.
Smart discovery filters active repositories, auto-cancels orphaned runs pinned to dead runners, and monitors GitHub API quota headers to guarantee zero rate-limit bans.
No K8s control plane, no etcd, no Helm charts, and no cert-manager consuming 3.5GB of your laptop's RAM before a single job even starts.
Instant browser visibility at :49505 with live Server-Sent Events (SSE). Track runner stopwatches, GitHub API quotas, hybrid routing metrics, and stream daemon logs.
Secure control daemon at :49504 enabling containerized autoscalers to manage host-native OrbStack, WSL2, and Multipass VM lifecycles seamlessly.
Verified with 155 unit tests, 0 Flake8 lint warnings, 100% Mypy static type safety, and Mutmut mutation testing across all drivers.
Single source of truth toolchain script: pre-installed Node.js 20/22/24 LTS via nvm, .NET SDK 8.0, Git LFS, PostgreSQL client, and Playwright OS dependencies.
Zero external SaaS dashboards. RunZero provides a built-in, 100% self-hosted real-time Web UI for instant fleet status, hybrid routing telemetry, cache analytics, and log streaming.
make dashboard Ultra-low overhead real-time updates broadcast instantly to your browser without polling.
Containerize your autoscaler daemon while retaining full OrbStack, WSL2, and Multipass VM capabilities.
Zero external telemetry or cloud dependencies. All UI fonts, assets, and metrics stay on your machine.
Zero cluster switching. RunZero inspects your job labels and dispatches either to ultra-fast container runtimes or dedicated virtual machines.
jobs:
test-suite:
runs-on: [ self-hosted, local ]
steps:
- uses: actions/checkout@v7
- run: npm test jobs:
browser-audit:
runs-on: [ self-hosted, local, browser ]
steps:
- uses: actions/checkout@v7
- run: npx lhci autorun RunZero adapts to your operating system, supporting containers and full virtual machines across macOS, Windows, and Linux.
| Engine Driver | Host OS | Execution Mode | Key Strengths |
|---|---|---|---|
| 🪐 OrbStack (Recommended) | macOS (Apple Silicon & Intel) | Containers & Linux VMs | Instant boot, golden VM cloning, Rosetta 2 x86_64 acceleration, full systemd. |
| 🐳 Docker Desktop | macOS, Windows, Linux | Containers | Universal cross-platform container support. |
| 🪟 Windows WSL2 | Windows 10/11 & Server | Native Linux VMs | Native Linux execution without requiring Docker Desktop on Windows. |
| 🚀 Canonical Multipass | macOS, Windows, Linux | Virtual Machines | Universal cross-platform Ubuntu VMs via QEMU / Hyper-V / VirtualBox. |
| 🐧 Native Linux Docker | Ubuntu, Debian, Arch, Homelabs | Native Containers | Zero VM layer, direct kernel speed for homelab servers. |
RunZero eliminates enterprise K8s control plane bloat while running real production GitHub webhook queues on your local machine.
| Metric / Feature | ⚡ RUNZERO | 🏢 ACTIONS RUNNER CONTROLLER (ARC) | 🎭 NEKTOS / ACT | 📦 STATIC DOCKERFILE |
|---|---|---|---|---|
| Target Machine | Local Mac / Workstation | Enterprise Cloud K8s Fleet | Local CLI Scratchpad | Single Homelab Server |
| Idle RAM Footprint | ~20 MB (0 MB at idle) | 1.5 GB – 3.5 GB (K8s Control Plane) | 0 MB (Manual CLI only) | ~500 MB+ (Idle runner daemon) |
| Execution Runtime | Dual-Engine (Docker + VM) | Containers Only (K8s Pods) | Containers Only | Container Only |
| Real GitHub Queue Listener | Yes (Adaptive polling) | Yes | No (Local mock only) | Yes |
| Multi-Repo Discovery | Yes (All user repos auto-scaled) | No (Orgs only) | N/A | No (1 repo per runner) |
| Multi-Arch (Apple Silicon + Rosetta) | Yes (Rosetta 2 acceleration) | Complex (Node taints/specs) | Partial | No (Fixed architecture) |
| Local Caching Registries | Yes (Verdaccio + Athens + Toolcache) | No (Requires K8s PVCs/NFS) | No | No |
| Setup Time | < 60 Seconds (make start) | Heavy Helm / CRD setup | 1 Command | Moderate |