Product
A runner cloud that explains itself.
Every job moves through named states, from GitHub demand to confirmed cleanup. Each transition is compare-and-set, idempotent and auditable.
Run timeline
See where a run is and why it stopped.
- queuedQueued
- admittedAdmitted
- provisioningProvisioning
- runner_connectingRunner connecting
- executingExecuting
- finalizingFinalizing
- cleanupCleanup confirmed
Lifecycle
Eight states to completion.
Guest callbacks are untrusted evidence. They never advance the authoritative lifecycle on their own.
- observed
GitHub sends a workflow_job event. Demand is recorded, not yet assigned.
- queued
The job waits for admission under the organization's limits.
- admitted
Policy accepts the repository, label and size, and reserves capacity.
- provisioning
A one-job microVM is created from a signed, pinned image.
- runner_connecting
A just-in-time runner registers with GitHub for this job only.
- executing
Your workflow runs. Only this time is billable under the planned policy.
- finalizing
The result is bound to the run and cleanup starts.
- completed
The VM is gone and cleanup is confirmed, or the record says it is not.
Terminal states
Failure has a class.
A workflow failure and an infrastructure failure are different records, so you debug the right thing first.
cancelled
Stopped by a person or an agent with the right scope.
timed_out
Exceeded the maximum run time for the size.
rejected_policy
Denied before start, for example a fork pull request.
failed_workflow
Your code failed. The infrastructure did its job.
failed_infrastructure
The platform failed. Not billed before your code starts.
lost
A node stopped reporting. Visible, never silently retried.
Limits
Published before you run.
The same limits appear in the API, dashboard, CLI and MCP. A listed size is a target until its runtime gate closes.
- Platform
- GitHub.com, Linux x86-64, Ubuntu 24.04
- Sizes
- 2, 4, 8 and 16 vCPU with 4 GB per vCPU (targets)
- Disk
- 30 GB disposable root, destroyed after the job (target)
- Maximum run
- 6 hours (target)
- Network
- Public egress only; no ingress or private networks
- Not supported
- Nested KVM, privileged or host-namespace access
openrunners admission getRun your next job on a runner that shows its work.
Admission is manual for trusted GitHub repositories while the release gates close. Sign in with GitHub to request access and we will review your organization when a slot opens.