Skipbox

Unlimited GitHub Actions for $39 a month

Runners for GitHub Actions. Change one runs-on: line.

Calculate your cost
  • No card
  • 7-day free trial
  • Cancel anytime
.github/workflows/ci.yml
 jobs:
   test:
-    runs-on: ubuntu-latest
+    runs-on: skipbox
     steps:
       - uses: actions/checkout@v4
   lint:
     runs-on: ubuntu-latest
     steps:
       - uses: actions/checkout@v4
Price
One price, any minutesNo metered billing
CPU
2× GitHub's standard runnerGitHub docs
Limits
Never blocked by a budgetNo budget to set

How you start

  1. Sign in with GitHub
  2. Install the Skipbox app on your organization or personal account
  3. Pick one job, change its runs-on, and push

How much you save each month by moving GitHub Actions to Skipbox

GitHub's ubuntu-latest2 vCPU · 8 GB
$102 / mo
Skipbox S × 14 vCPU · 8 GB
$39 / mo flat

Save $63 a month ($756 a year)

  • No card
  • 7-day free trial
  • Cancel anytime

How we calculated this

GitHub ubuntu-latest (2-core)
20,000 min × $0.006 − $18 included in GitHub Team$102
GitHub 4-core
20,000 min × $0.012 − $18 included in GitHub Team$222
Blacksmith
(20,000 − 3,000 free min) × $0.008$136
Skipbox S × 1
$39 × 1, unlimited minutes$39

On GitHub Team, Skipbox S costs less than GitHub's 4‑core runner above about 4,800 minutes a month, and less than ubuntu-latest above about 9,500. Every minute after that costs nothing extra.

  • GitHub's bill is on GitHub Team, less the $18 it includes each month ($12 for an organization on GitHub Free).
  • Skipbox's price is as many plans as these minutes need with jobs running 24 hours a day, every day: minutes are unlimited, and extra jobs wait their turn.
  • Blacksmith's 3,000 free minutes a month are counted at the job's size.
  • Or install the app, and Skipbox reads your last 30 days and shows what they cost on GitHub and which plan fits.
  • The tiers under the examples: what each GitHub plan includes a month (Free $12, Pro and Team $18, read on November 9, 2026) at ubuntu-latest's $0.006 a minute, and Blacksmith's 3,000 free minutes a month.
  • Prices read on each vendor's page by November 9, 2026: GitHub's price list, what each plan includes, Blacksmith pricing.

Flat price, unlimited minutes

Billing

S

Everyday tests and builds

$39/month

$390/year

$32.50 a month, billed yearly

CPU
4 vCPU
Memory
8 GB
Label
skipbox
Concurrent jobs
1
Minutes
Unlimited

M

Recommended

Heavy builds and browser tests

$79/month

$790/year

$65.84 a month, billed yearly

CPU
8 vCPU
Memory
16 GB
Label
skipbox-8x16
Concurrent jobs
2
Minutes
Unlimited

L

Big builds, or high concurrency

$149/month

$1,490/year

$124.17 a month, billed yearly

CPU
16 vCPU
Memory
32 GB
Label
skipbox-16x32
Concurrent jobs
4
Minutes
Unlimited
  • No card7-day free trial
  • Unlimited minutesNo usage charges
  • Busy days, same billExtra jobs wait their turn
  • Cancel any timeUse it to the end of the paid period

Who Skipbox is for

  • You use more than 9,500 minutes a month on ubuntu-latest
  • A GitHub budget has stopped your jobs
  • You want the same CI bill every month

Questions

Will my workflows run unchanged?

Yes, most do. Skipbox runs the workflows of private repositories on GitHub organizations and personal accounts. The VM is Ubuntu 24.04 on x64 with Docker, git, build-essential, Node 22, and Python 3.12, and the job runs as a user with passwordless sudo, as on GitHub's runners. GitHub's ubuntu-latest image has more preinstalled, so add actions/setup-java, actions/setup-go, and the like for other tools.

Does Skipbox run public repositories?

No. Skipbox runs private repositories only: on a public repository, anyone who opens a pull request could run code on the runner. GitHub, too, advises that self-hosted runners should almost never be used for public repositories. A public repository's jobs aren't run, and the owner gets an email.

Are the minutes really unlimited?

Yes. Plans cost $39, $79, or $149 a month, billed in US dollars monthly, or yearly upfront for the price of 10 months, with no usage charges. A plan limits how many jobs run at once and how big each is, not minutes: a job that doesn't fit waits until a running one ends, and waiting adds nothing to your bill. Your organization's page shows how many jobs are waiting and how long the oldest has waited. A job can run for up to 6 hours.

How do bigger jobs count toward concurrent jobs?

Concurrent jobs are counted in 4 vCPU jobs. A plan runs jobs up to its vCPU total at once (S 4, M 8, L 16 vCPU), so a job of 8 vCPU counts as 2, and one of 16 vCPU as 4. A plan's largest job is the CPU on its card. Add plans to run more jobs at once.

How does Skipbox compare with GitHub's runners?

Each Skipbox S job gets 4 vCPU and 8 GB; GitHub's ubuntu-latest on a private repository is 2 cores and 8 GB. After your first job runs on Skipbox, the dashboard shows its time beside its median on GitHub over the last 30 days, when GitHub ran it then.

What can Skipbox access?

Only what it needs to register runners and check jobs. On an organization, the Skipbox CI app asks for three permissions: Self-hosted runners (write), to register a runner with GitHub for each job and remove it when the job ends; Actions (read), to see which jobs are waiting, check their status, and read how long your jobs ran in the last 30 days for your quote; and Metadata (read). It never edits or pushes your workflows, and it can't read your code: each job checks out your code inside its own VM. On a personal account, GitHub registers a runner for a repository only with the Administration permission, which also covers the repository's settings, collaborators and deploy keys. Skipbox (personal) asks for it and uses it only to register and remove runners. When you sign in, Skipbox also reads your email address, for trial and billing notices. As on any runner, a job's VM holds your workflow's secrets and GitHub's token for that job, so code the job runs can read them.

Where do the jobs run?

In Finland or Germany (EU). Jobs run on dedicated servers rented from Hetzner, and on Hetzner Cloud servers made for one job each, whose vCPU are shared with other Hetzner customers. Each job gets a new VM, deleted with its disk when the job ends. A VM still there after 6 hours is deleted too. Nothing can connect in from the internet. Outbound mail (TCP port 25) is blocked. The rest of the internet is open, as on GitHub-hosted runners. There's no region outside the EU, so a job that talks to servers far from Europe spends longer on each request. Traffic isn't charged.

Can we cancel, or get a refund?

Cancel anytime; your plan runs to the end of the month, or the year, you paid for. If your first job doesn't start within 10 minutes of its turn, you get a full refund automatically.

What happens when the trial ends? Am I charged?

Nothing is charged: the trial takes no card. It starts at your first job on Skipbox, not when you sign in or install the app, and runs one 4 vCPU · 8 GB job at a time for 7 days or 3,000 minutes, whichever comes first. There's 1 trial per account and 1 per person. When it ends, new jobs wait on GitHub until you choose a plan.

How do I run a job on Skipbox, and switch back?

Change runs-on to skipbox to move, and back to ubuntu-latest to go back. Sign in with GitHub, install the Skipbox CI app on your organization or Skipbox (personal) on your personal account, change the job's runs-on line to skipbox, and commit; for a larger VM on plans that include one, use skipbox-8x16 or skipbox-16x32. To go back, change runs-on: skipbox back to runs-on: ubuntu-latest. Nothing else in your repository changed.

Flat-price CI from your next push

Change one runs-on: line. Any minutes, one price.

  • No card
  • 7-day free trial
  • Cancel anytime