Beta

Self-hosted runners,
isolated & secure

Manage your GitHub Actions runner fleet with VM isolation, secure token storage, and a beautiful CLI. Each runner gets its own isolated VM.

Terminal
gar fleet create --name ci-runner --repo myorg/myapp
Creating VM...
[OK] VM 'gar-ci-runner' created
[OK] Runner registered with GitHub
[OK] Runner 'ci-runner' is online
100%
VM Isolation
Zero
Tokens Stored
60s
Health Checks
macOS
Native App

Built for security-conscious teams

Every feature designed with isolation and security in mind.

VM Isolation

Each runner gets its own isolated VM. Complete isolation means no cross-contamination between jobs.

Secure Token Storage

GitHub tokens are stored securely in your macOS Keychain. Never in plain text, never in your database.

Menu Bar App

Native macOS app shows fleet status at a glance. See which VMs are running without leaving your workflow.

Fleet Management

Create, destroy, and monitor runners with simple CLI commands. Customize VM resources per runner.

Health Monitoring

Automatic health checks every 60 seconds. Know immediately when a runner goes offline.

Built with Rust

Fast, reliable, and memory-safe. No runtime dependencies, single binary deployment.

How it works

GAR sits between GitHub and your VMs, orchestrating the entire runner lifecycle.

architecture.txt
┌─────────────────────────────────────────────────────────────┐
│                      macOS Host                              │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────────┐  │
│  │ gar server  │  │ gar fleet   │  │ gar-app (menu)   │  │
│  │  - web api  │  │  - create   │  │  - status display  │  │
│  │  - jobs     │  │  - destroy  │  │  - VM monitoring   │  │
│  │  - cron     │  │  - list     │  │                     │  │
│  └──────┬──────┘  └──────┬──────┘  └─────────────────────┘  │
│         │                │                                   │
│         ▼                ▼                                   │
│  ┌─────────────────────────────────────┐                    │
│  │          PostgreSQL                   │                    │
│  │  - runners table                     │                    │
│  │  - config table                       │                    │
│  └─────────────────────────────────────┘                    │
│         │                                                    │
│         ▼                                                    │
│  ┌─────────────────────────────────────┐                    │
│  │          Isolated VMs                 │                    │
│  │  ┌─────────┐  ┌─────────┐           │                    │
│  │  │gar-run1 │  │gar-run2 │  ...      │                    │
│  │  │ runner  │  │ runner  │           │                    │
│  │  └─────────┘  └─────────┘           │                    │
│  └─────────────────────────────────────┘                    │
└─────────────────────────────────────────────────────────────┘

Ready to take control of your runners?

Get started with GAR and run your own isolated runner fleet.

brew install coreyja/tap/gar