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.
