CI Runners

Coming (phase 3)

Your pipeline waits for machines instead of running

Fast GitHub Actions runners: every job on a fresh Linux machine of its own, x64 or arm64, billed by the minute. One line moves a job.

Move your CI to OhMako

Illustrative. The jobs, commands and timings in it are examples.

01 The queue

Meet your job. It's been queued for a while.

This is build. You pushed it a few minutes ago, and it's still waiting for a runner.

Meanwhile the month's included minutes run down. GitHub Free includes 2,000 Actions minutes a month, and Team includes 3,000.

Once they're gone, every minute lands on the bill. A 20,000-minute month on 2 vCPU Linux x64 comes to $108.00 on GitHub Free.

zshci.ymlrunner.logsnapshotclaude
~/app main
git push origin main
To github.com:you/app.git
4f2a9c1..8d01e7b main -> main
gh run watch
* CI main 8d01e7b
* build queued 6:52
* test queued
* lint queued
Waiting for a runner to pick up this job...

20,000minutes used this month

  • GitHub Free includes 2,0000 left
  • GitHub Team includes 3,0000 left

This month on GitHub Free, private repo, 2 vCPU Linux x64

(20,000 − 2,000) × $0.006 =

$108.00

02 One line

One line moves your job to us. Coming

Swap ubuntu-latest for ohmako-ubuntu-latest-x64-2x. That's the whole migration.

Labels read ohmako-<os>-<version>-<arch>-<size>. Linux comes in 2x up to 32x, and each x is 1 vCPU and 4 GB.

Everything else stays as it is. Docker, services: and container: jobs work the way they do on GitHub.

zshci.ymlrunner.logsnapshotclaude
name: ci
on: [push]
jobs:
build:
runs-on: ohmako-ubuntu-latest-x64-2x
services:
postgres:
image: postgres:16
steps:
- uses: actions/checkout@v4
- run: make test

The label, piece by piece

ohmakoprefix-ubuntuos-latestversion-x64arch-2xsize

2x, 4x, 8x, 16x or 32x on Linux. Each x is 1 vCPU and 4 GB.

Works as on GitHub

  • docker
  • services:
  • container:

03 The fresh VM

A fresh VM boots around your job. Coming

Your job gets a VM of its own, booted fresh for this run. Nothing from anyone else's job is on it.

Checkout, the Postgres service and your tests run the way they did on GitHub.

Billing counts minutes, rounded up, with no minimum. This run took 3:12, so it counts as 4 minutes. At the 2x rate that's $0.016, once your 2,000 included minutes are used. Then the VM is destroyed.

zshci.ymlrunner.logsnapshotclaude
› allocating a fresh VM vm-7f3a, x64, 2x
› booting ubuntu-latest
› runner online, job build started
✓ Set up job
✓ Initialize containers postgres:16
✓ Run actions/checkout@v4
▸ Run make test
ok app/api 4.2s
ok app/billing 2.7s
ok app/web 6.9s
✓ Job succeeded in 3m 12s
vm destroyed
billed 4 min × $0.004 = $0.016

vm-7f3a, ubuntu, x64, 2x, fresh

buildpassed

  • checkout
  • services: postgres
  • make test

VM destroyed

ran3:12

billed4 min

3:12 rounds up to 4 min.
4 × $0.004 = $0.016

04 The bill

Same job. Smaller bill. Coming

We make one comparison: GitHub's list price for a 2 vCPU Linux x64 runner, $0.006 a minute, against our 2x at $0.004.

Both include 2,000 Linux minutes a month. Ours need a card on file. A 20,000-minute month costs $108.00 on GitHub Free and $72.00 with us. You keep $36.00.

Pick any Linux size to see what a minute costs. arm64 costs less than x64 at every size.

zshci.ymlrunner.logsnapshotclaude
› allocating a fresh VM vm-7f3a, x64, 2x
› booting ubuntu-latest
› runner online, job build started
✓ Set up job
✓ Initialize containers postgres:16
✓ Run actions/checkout@v4
▸ Run make test
ok app/api 4.2s
ok app/billing 2.7s
ok app/web 6.9s
✓ Job succeeded in 3m 12s
vm destroyed
billed 4 min × $0.004 = $0.016

Per minute, 2 vCPU Linux x64

GitHub$0.006

ohmako 2x$0.004

GitHub Free(20,000 − 2,000) × $0.006$108.00

ohmako(20,000 − 2,000) × $0.004$72.00

You keep $36.00

Both include 2,000 Linux minutes a month.

Compared for private repositories. GitHub doesn't bill its standard runners on public ones.

Our 2,000 included minutes need a card on file.

Pick a Linux size

runs-on: ohmako-ubuntu-latest-x64-2x

$0.004per minute

2 vCPU, 8 GB

x64 2x: $0.004 per minute, 2 vCPU, 8 GB.

2,000 minutes a month included

With a card on file, 2,000 minutes a month are included on 2x, x64 or arm64. Other sizes bill from the first minute.

Machines

A fresh machine for every job.

Each job gets a Linux machine of its own, x64 or arm64, booted for that job and destroyed when it ends. Nothing from anyone else's job is on it. Each x of size is 1 vCPU and 4 GB of memory.

  • 2x

    2 vCPU, 8 GB

  • 4x

    4 vCPU, 16 GB

  • 8x

    8 vCPU, 32 GB

  • 16x

    16 vCPU, 64 GB

  • 32x

    32 vCPU, 128 GB

Moving a job

One line in your workflow.

Put an ohmako- label in runs-on, on its own, with no self-hosted beside it. Docker, services: and container: jobs work the way they do on GitHub.

jobs:
  build:
    runs-on: ohmako-ubuntu-latest-x64-2x

Labels read ohmako-ubuntu-<version>-<arch>-<size>, where latest is Ubuntu 24.04.

Cost and control

Pay for the minutes you run.

Billed per minute

From $0.003 a minute, rounded up, with no minimum. See every price.

Spend limits that stop spending

Past your limit, a workflow run is cancelled before anything starts, and the pull request says why. A job running when the limit is reached is stopped.

Jobs and logs for your agents

Your agents read jobs, logs and spend through the MCP server, and you can at a terminal with ohmako runner and ohmako usage.

GitHub first

CI Runners take GitHub Actions jobs. GitLab CI runners come in phase 9.

Join the invite list

Tell us which products you want first. Invites go out in waves, product by product.

Move your CI to OhMako