Skipbox
Featured on Product Hunt

Cheap & fast
GitHub Actions runners
Unlimited, flat price

1/12 the cost of GitHub at full use. Flat price, so run it all day. 7× GitHub's cache space.

  • No card
  • Sign in with GitHub
  • Cancel anytime

Faster than GitHub, or your money back

.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

Faster than GitHub, or your money back

Cache
At least 7× GitHub's cacheYour own 80 GB disk
At full use
1/12 of GitHub's price1/8 of Blacksmith's
CPU and memory
2× GitHub's standard runnerOn private repos (GitHub 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

Who runs Skipbox

Tomoya Fujita by the sea, seen from behind, black and white

Tomoya FujitaFounder and CEO, Fluxenic Inc. · Tokyo

In an age when AI keeps speeding up every part of development, CI/CD stays slow and becomes the bottleneck. I built Skipbox because I couldn't stand that.

Convika, our other product, runs its tests and deploys on Skipbox.

What you save each month by moving to Skipbox

How many minutes a month do you use on ?Check your Blacksmith usage
4 vCPU · 16 GB
$333.60 / mo
Skipbox S × 14 vCPU · 16 GB
$39 / mo flat

Compared at the same vCPU and memory

Save $294.60 a month ($3,535.20 a year)

  • No card
  • Sign in with GitHub
  • Cancel anytime

How we calculated this

Skipbox S × 1
$39 × 1, unlimited minutes$39
GitHub 4-core
43,200 min × $0.012 − $18 included in GitHub Team$500.40
$461.40 a month more than Skipbox
GitHub ubuntu-latest (2-core)
43,200 min × $0.006 − $18 included in GitHub Team$241.20
$202.20 a month more than Skipbox
Blacksmith
43,200 min × $0.008 − $12 free$333.60
$294.60 a month more than Skipbox
  • 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 come off as $12, their worth at its 2 vCPU rate ($0.004).
  • 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 14, 2026: GitHub's price list, what each plan includes, Blacksmith pricing, Blacksmith instance types.

Flat price, unlimited minutes

Billing

S

Your own machine for daily tests and builds

$39/month

$390/year

$32.50 a month, billed yearly

CPU
4 vCPU
Memory
16 GB2× ubuntu-latest on private repos
Disk
80 GB
Largest runs-on label
skipbox
Concurrent jobs
1
Minutes
Unlimited

M

Recommended

A bigger machine for heavy builds and browser tests

$79/month

$790/year

$65.84 a month, billed yearly

CPU
8 vCPU
Memory
16 GB2× ubuntu-latest on private repos
Disk
160 GB
Largest runs-on label
skipbox-8x16
Concurrent jobs
2
Minutes
Unlimited

L

The largest, for big builds or high concurrency

$149/month

$1,490/year

$124.17 a month, billed yearly

CPU
16 vCPU
Memory
32 GB4× ubuntu-latest on private repos
Disk
320 GB
Largest runs-on label
skipbox-16x32
Concurrent jobs
4
Minutes
Unlimited
  • No card7-day free trial
  • Unlimited minutesNo usage charges
  • Your own machineCredentials wiped after each job
  • Cancel any timeUse it to the end of the paid period

Faster than GitHub, or your money back

Your machine stays warm between jobs

Your account's own VM at a flat monthly price. We handle all the upkeep.

Kept between jobs

  • Docker images, layers, and build cache
  • Package caches for npm · pip · Go · Gradle · Cargo and more
  • The tool cache that setup-* actions fill
  • Your checkout, Cargo's build output in target/ and Turborepo's cache (turbo 2)

Wiped after every job

  • The runner's credentials
  • Git credentials and untracked files in your checkout
  • The runner user's processes and every container
  • Credential files such as ~/.npmrc and ~/.git-credentials
  • Start and run speeds no on-demand runner can reach

    Made possible by your own VM, always warm.

    At least 7× GitHub's cache space

  • A health check after every job

    The image is rebuilt automatically, so the machine recovers from errors.

  • Top-level security

    Sensitive data is fully isolated per account.

How your own runner works

Measured on real open-source CI

Each project's own job with its steps unchanged on GitHub's ubuntu-24.04 and a Skipbox own machine. Both 4 vCPU, one commit run again.

3 of the 10 projects we measured, on November 12–13, 2026. Each time is the median of the runs under it. Both sides ran the same commit again: the best case for each.

See the method and every result

Have you mastered GitHub Actions' complex cache?

In fact, GitHub Actions' cache works like this.

  • Not shared across branches

    A cache made on another branch can't be read.

  • A pull request's first run misses

    With no cache on the default branch, it builds from scratch.

  • No overwriting a key

    Updating a cache takes careful keys and restore-keys.

  • Deleted after 7 days unused

    Past 10 GB in total, the oldest caches go first.

Check it in GitHub's docs

Skipbox needs none of this.

Zero-config, the most efficient cache from your first day.

And 7× GitHub's cache space.

We recommend Skipbox if any of these fit

  • You want to cut your GitHub Actions bill
  • You want faster CI/CD with more cache than GitHub Actions
  • You want the same CI/CD bill every month

Questions

Will my workflows run unchanged?

Yes, most do. Skipbox runs the workflows of public and 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.

Why is it so cheap?

With AI writing more of the code, CI runs more every month, and per-minute billing grows with every run. So Skipbox chose a different model on purpose: you rent a VM for your account alone, by the month. GitHub doesn't bill self-hosted runner minutes, so however many jobs you run, the price stays a flat $39 a month for S. Fluxenic, the company behind Skipbox, runs servers from low-cost cloud providers and its own, and serves them as VMs of a useful size. Skipbox does the tedious part for you: it registers the runners, cleans up after every job and checks the machine's health. It also rebuilds a broken machine and keeps the image current. At full use, the price is 1/12 of GitHub's and 1/8 of Blacksmith's.

Why is it so fast?

Because the machine is your account's alone and keeps running between jobs. Docker layers and package caches from your last job are still on its disk, so a build that uses them doesn't fetch or rebuild them. A GitHub-hosted job starts on a new VM with an empty disk every time. Even S keeps its caches on its own 80 GB disk. That's over 7x the cache GitHub gives a repository by default, and nothing in it expires after 7 days unused. S also has 4 vCPU, more than the 2 cores of ubuntu-latest on a private repository.

Wouldn't renting my own VPS as a runner cost less?

Rent a VPS of the same size from a major host and you still won't get a self-hosted runner that is cheaper, faster and less work than Skipbox. Skipbox registers a fresh runner for every job and removes it afterwards. After every job it wipes the runner's credentials and keeps your checkout and build output for the next one. It checks the machine's health, rebuilds it when the check fails and keeps the image current. Code from people without write access (such as pull requests from forks) runs on a throwaway VM. You get all of that for $39 a month on S, by changing one runs-on line, with nothing to maintain.

Does Skipbox run public repositories?

Yes, public and private repositories alike. Code from people without write access (such as pull requests from forks) runs on a fresh VM that reads your caches but can't change them; your own machine runs only your team's code.

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 in Skipbox 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. The largest single job a plan can run is its vCPU count: 4 on S, 8 on M, 16 on L. Add plans to run more jobs at once.

How does Skipbox compare with GitHub's runners?

Each Skipbox S job gets 4 vCPU and 16 GB; GitHub's ubuntu-latest on a private repository is 2 cores and 8 GB. Your own machine also keeps Docker layers and package caches from your last job, so a build that uses them doesn't fetch them again; a GitHub-hosted job starts on a new VM every time. docker build and docker compose build reuse the layers. The default builder of docker/setup-buildx-action starts empty in every job, so set driver: docker on it to use the machine's own cache. 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.

My build runs out of memory on GitHub's runner. How much memory does Skipbox have?

16 GB on plan S, on your own machine: 2× the 8 GB of ubuntu-latest on a private repository, and the same as GitHub's 4-core larger runner. Plan S used to have 8 GB, and that was not enough for openai/codex (rust-v0.159.3): its cargo clippy --workspace --tests got through only by pushing about 14 GB into compressed swap. On today's 16 GB the same build swaps about 20 MB. Plan L has 32 GB for a job that needs more.

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 and write), to see which jobs are waiting, check their status, read how long your jobs ran in the last 30 days for your quote, and re-run a job whose Skipbox machine stopped mid-job; and Metadata (read). The Skipbox CI app never edits or pushes your workflows, and it can't read your code: each job checks out your code itself, on the VM it runs on. 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. One feature is the exception, and only when you install it: the dashboard's "Open a pull request" button uses a separate app, Skipbox Migrate, which you install only on the repositories you pick. There it asks for write access to Contents, Workflows and Pull requests, pushes one branch (skipbox/run-ci-on-skipbox) that changes only runs-on lines, and opens a pull request from it. It never merges or touches your default branch. 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?

On your organization's own machine: a VM of your plan's size (during the trial too), one more with each extra plan. No other organization uses it. It keeps running between your jobs, so Docker images, caches, your checkout and its build output (Cargo's target/, and Turborepo's cache with turbo 2) stay for your next jobs. It runs on servers that Fluxenic, the company behind Skipbox, rents from cloud providers or runs itself. The privacy policy lists each provider and country. After each job, the runner's credentials, the git credentials in your checkout and common credential files are wiped. Jobs beyond your own machines, code from people without write access (such as pull requests from forks) and every job on Clean every job run in a new VM, deleted with its disk when the job ends. A job still running after 6 hours is stopped. 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. Traffic isn't charged.

Can I start my machine over, or run every job on a new VM?

Yes. Press Reset machine in Plans and billing, any time. Turn on Clean every job there, and each job runs on a new VM.

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 jobs aren't faster on Skipbox than they were on GitHub, you get everything you paid back, on monthly and yearly plans alike: ask on your account's Plans and billing page within 30 days of your first payment. Skipbox takes each job's median time on Skipbox and on GitHub (the 30 days before you installed Skipbox), weights each job by how often it ran on GitHub, and compares the two totals; a job counts once it has run at least 3 times on each, and with no job to compare there is nothing to refund. If the first job you run after subscribing doesn't start within 10 minutes, not counting time it waits behind your own jobs, we refund your payment in full automatically and end the plan. Otherwise a paid month or year isn't refunded, except in the cases the Terms list.

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 · 16 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.

Faster CI/CD with an always-warm cache

Your warm runner at a flat price

1/12 the cost of GitHub at full use. Flat price, so run it all day. 7× GitHub's cache space.

  • No card
  • Sign in with GitHub
  • Cancel anytime