How to cut GitHub Actions costs, macOS minutes most of all

GitHub bills hosted runners by the minute. Your own machine doesn't.

GitHub bills its hosted runners by the minute, and macOS minutes cost the most: $0.062 a minute (3-core M1), against $0.006 a minute (2-core) on Linux. To cut the bill, run those jobs on a Mac or Linux machine you already own. Codemany does that for $20/month for 2 machines, $10/month for each extra, however many minutes the jobs take.

What GitHub charges per minute

RunnerPrice
GitHub, macOS$0.062 a minute (3-core M1)
GitHub, Linux$0.006 a minute (2-core)
Codemany$20/month for 2 machines, $10/month for each extra

GitHub's list prices for its standard hosted runners since January 1, 2026 (GitHub Docs: Actions runner pricing). Larger runners cost more. These are before the free minutes your GitHub plan includes.

A worked example

20 jobs a day × 10 minutes × 30 days = 6,000 minutes, half on macOS: $204 on GitHub against $20 on Codemany, so you keep $184 a month ($2,208 a year). Break-even at that mix: 589 minutes a month.

Put in your own jobs, minutes and OS mix in the GitHub Actions savings calculator.

Move macOS jobs first

On GitHub a macOS minute is $0.062 and a Linux minute $0.006, so iOS and macOS builds are where the bill grows fastest. On a flat price, long builds don't cost more. The Mac on your desk or a Mac mini in a closet can take them: see iOS and Xcode builds on your own Mac and a self-hosted runner on a Mac.

Linux jobs can move too, to a server, home lab box or desktop: a self-hosted runner on Linux.

Move jobs to your own machine

  1. Install

    Download Codemany on a Mac, or install it on Linux with one command (how).

  2. Sign in with GitHub

    Your 14-day free trial starts by itself, with no card.

  3. Pick repositories

    Choose repositories, or a whole organization.

  4. Change one line

    Point the jobs you want to move at your machine:

    jobs:
      build:
        runs-on: [self-hosted, codemany]
        steps:
          - uses: actions/checkout@v4
          - run: swift test

Jobs left on runs-on: macos-latest or ubuntu-latest keep running on GitHub, so you can move one workflow at a time. Full setup: Get started.

What else to count

  • Jobs at once. Each machine runs as many jobs as it has room for: 1 on an 8 GB Mac, 3 on a 16 GB Mac. Each extra machine is $10/month (How many jobs per machine).
  • Cloud machines are billed by your cloud provider, to your own account (Other costs).
  • GitHub's own charges for self-hosted runners, if any, apply to Codemany and DIY runners alike.

Questions

Is it cheaper than GitHub-hosted runners?

Above the break-even point, yes. In the example above it is 589 minutes a month; the savings calculator works it out for your mix.

Does a longer build cost more?

No. There is no per-minute billing. The price depends only on how many machines you use (Pricing).

Do GitHub's free minutes count?

The estimate is before the free minutes your GitHub plan includes. If your jobs fit in those, you may not need to move them.

How does it compare with other runner services?

Most hosted runner services bill per minute. See Codemany compared for Depot, Blacksmith, WarpBuild, Cirrus Runners and DIY self-hosted runners.

Can I try it first?

Yes. 14 days free on up to 2 machines, with no card (Free trial).