GitHub Actions runners, billed by the minute.
Install the GitHub App, change one line in your workflow. Get ephemeral runners on bare metal cloud at $0.003/min — 50% cheaper than GitHub-hosted ($0.006/min). No cloud account, no Terraform, no ops.
Free trial · No credit card · Starts in under 5 seconds
jobs: build: runs-on: ubuntu-latest runs-on: onctl-2That's the entire migration. Same syntax, same secrets, same logs — just a different runner.
Zero setup. Change one line.
No cloud account. No infrastructure to manage. A GitHub App install and a single workflow line change is all it takes.
Install the GitHub App
One click to install on your org or repo. No cloud account, no IAM roles, no Terraform. The App subscribes to workflow_job webhooks — that's it.
Change one line in your workflow
Replace runs-on: ubuntu-latest with runs-on: onctl-2. Pick your size by name. The next push triggers a runner on bare metal hardware in seconds.
Jobs run fast, VMs vanish
Each job gets a fresh ephemeral VM. When the job completes, the VM is destroyed immediately — no idle cost, no drift, no shared state between runs.
What happens on every push
Fast by default. Cheap by design.
Bare metal cloud gives 4–6x better price-per-core than AWS or GCP. We pass that advantage to you, not to our margin.
Starts in under 5 seconds
Prebaked VM snapshots with Docker and the runner agent pre-installed. Your job starts the moment the VM boots — no package install, no bootstrap wait.
Fully ephemeral
Every job gets a brand-new VM. No shared state between runs, no stale caches from other users, no secret leakage across jobs. Security by design.
EU infrastructure, EU pricing
Running on EU-based infrastructure (Germany). Fast for EU teams. GDPR-friendly. US-East (Ashburn) coming H2 2026 — the only sub-$0.004 provider with both regions.
No idle billing
Runners spin up on job queued, are destroyed on job completed. You pay for active compute only. Zero pool to maintain, zero reserved capacity cost.
Auto-healing
Watchdogs detect runners that never registered or jobs that never completed and reclaim the VMs automatically. No orphaned machines silently billing.
Live usage dashboard
See active jobs, monthly spend, runner size breakdown, and cost trends per org. Spend caps and Slack alerts available on Team plan and above.
GitHub App, no tokens
Installation token auth scoped per repo from the webhook payload. No personal access tokens, no org-level secrets to rotate, no leaked credentials.
Runner sizes
| runs-on label | vCPU | RAM | Rate |
|---|---|---|---|
| onctl-2default | 2 | 8 GB | $0.003/min |
| onctl-4 | 4 | 16 GB | $0.006/min |
| onctl-8 | 8 | 32 GB | $0.012/min |
| onctl-16 | 16 | 64 GB | $0.024/min |
Billed per minute. GitHub Actions sets a 6h job timeout; ours will end the runner if the job never completes.
Head-to-head
onctl-runners vs GitHub hosted
Same GitHub Actions syntax. One line change. Up to 50% off your bill.
Migration takes 30 seconds
runs-on: ubuntu-latestruns-on: onctl-2Pay only for what runs
No reserved capacity. No monthly minimum. You pay per minute of actual compute — billed at the end of the month.
Starter
Try onctl-runners with no commitment. No credit card.
- 500 minutes free every month
- 2-vCPU and 4-vCPU runners
- Ephemeral, fully isolated VMs
- GitHub App install
- Community support
Team
Pay only for what you use. All runner sizes, spend alerts, and priority support.
- All runner sizes (2–16 vCPU, GPU)
- Billed per minute, no minimums beyond the first
- Spend cap & Slack/email alerts
- Live usage dashboard
- Priority support
- Dependency caching (npm, pip, cargo)
Enterprise
Private runner pools, SOC 2, SSO, and volume discounts for large orgs.
- Dedicated runner pools
- Tenant-isolated infrastructure
- SAML / SSO
- Audit logs
- SLA + dedicated support channel
- Invoice billing
Docker layer caching and dependency caching included on Team plan. GPU runners billed separately — contact us for pricing.
Up and running in 2 minutes
No cloud account. No CLI to install. No infra to manage. Just a GitHub App and one line in your workflow.
Install the GitHub App
# Visit the link below and install on your org or repo
# https://github.com/apps/onctl-runners
# Select repositories → Install
One OAuth click. Grant access to the repos where you want onctl runners. The App subscribes to workflow_job webhooks automatically.
Update your workflow
# Before
jobs:
build:
runs-on: ubuntu-latest
# After — that's the only change
jobs:
build:
runs-on: onctl-2
Replace runs-on: ubuntu-latest. Push a commit. The next job will run on a fresh VM in seconds.
Watch it run
# In your Actions tab you'll see:
# ✓ Runner registered: onctl-runners-abc123
# ✓ Job started (2 vCPU, Frankfurt)
# ✓ Job completed
# ✓ Runner destroyed
Each run spins up a new VM and destroys it on completion. Check the dashboard at app.onctl.io for live job status and monthly spend.
Get your first 500 minutes free
No credit card. No commitment. Start with a free trial and upgrade when you're ready.