← All work / ushr

Share build capacity. Keep credentials local.

ushr coordinates self-hosted GitHub Actions runners across hosts and organisations. It separates scheduling decisions from credential ownership.

Build infrastructureSchedulingHost isolation
ushr public website presenting scheduling for self-hosted GitHub Actions runners.
ushr public site ↗ · Captured 3 October 2026.

Make the queue a shared concern.

Build jobs from separate organisations can compete for the same machines. Independent queues do not express those shared priorities.

ushr coordinates the queue and dispatches work to available hosts. The controller handles scheduling while agents manage runner execution.

Keep keys with the host.

The agent holds the GitHub App credentials. The hosted control plane receives scheduling information without receiving those keys.

This boundary allows shared coordination without moving credential ownership into the controller.

The public documentation describes both hosted and self-hosted operation. Each option keeps the agent responsible for its local credentials.

Give each job a clean runner.

Agents create temporary runners for jobs. The implementation supports virtual machines on macOS and containers on Linux.

A clean execution environment reduces the state carried between jobs. The scheduling layer can focus on capacity and priority.

Build for the operating work.

Setup, host health checks, and managed updates belong to the product. They affect whether the system remains useful after installation.

The source repository documents the architecture and operating commands. The public site explains the hosted service.

Next case study

FameCake

Explore FameCake ↗