Skipbox

Blacksmith's bill and cache limits: how it charges, what its cache keeps, and when a flat price costs less

Blacksmith charges by the minute, by runner size. Its 3,000 free minutes a month are 2 vCPU minutes, so a 4 vCPU runner uses them twice as fast. Docker layer caches and sticky disks are billed on top, at $0.50 per GB a month. And nothing queues: every parallel job starts at once and bills at once. Those three explain most surprise bills. Its Actions cache is free, up to 25 GB per repository per week, with entries evicted after 7 days unused.

Skipbox is priced per machine, not per minute: $39 a month for 4 vCPU, with unlimited minutes. The machine is your account's own and keeps Docker's layers and the package caches on its disk between jobs, at no charge per GB. Change one line, runs-on: skipbox. Past about 6,400 minutes a month on 4 vCPU, it costs less than Blacksmith.

How Blacksmith bills

From Blacksmith's pricing page and its instance types docs, both read November 13, 2026:

  • Free minutes: "3000 x64 2vCPU minutes for free per month per organization". A larger runner uses them in proportion: "a job taking 10 minutes on a 4vCPU runner would consume the equivalent of 20 2vCPU minutes". So the free minutes are worth $12 at any size, and last 1,500 minutes at 4 vCPU.
  • Storage add-ons: Docker layer caching and sticky disks are "+$0.50/GB/mo." Its CLI reads storage from "the hourly storage billing ledger", so a cache is billed for the hours it exists. Static IPs are "+$100/IP/mo."
  • Free: the Actions cache ("There is no additional cost for using our cache") and Docker container caching (pulled images; "you are not billed for the storage used by the container cache").
  • Concurrency: "Blacksmith doesn't limit how many jobs or vCPUs you run at once" (unlimited concurrency).
  • Discounts: a startup discount for companies under 100 employees, under $50 million raised and under 5 years in business, and an OSS program, both on the pricing page.

Why the bill comes in higher than planned

  • The free minutes shrink with the runner. 3,000 sounds like a small team's month. On 4 vCPU it's 1,500 minutes; on 8 vCPU, 750.
  • Storage bills on its own. Each Docker cache-key gets its own sticky disk (Docker builds), and each sticky disk is billed per GB. Ten images with a 20 GB layer cache each is 200 GB, $100 a month, before a single minute.
  • Nothing waits, so everything bills. Unlimited concurrency is why CI feels fast: a 32-way shard starts at once. It's also why the bill has no natural ceiling. Every shard, matrix leg, re-run and agent push is minutes.
  • The alert is an email. Blacksmith's settings describe Spending Alerts: "If your spending exceeds this threshold, Blacksmith will email an alert". The docs describe no stop.

Estimate your own bill

The month's bill, per runner size and in total:

bill = Σ (minutes × that size's rate) − $12 (the free minutes) + GB-months of storage × $0.50

Blacksmith's CLI gives each part (usage and cost reporting):

blacksmith usage --since 30d --breakdown-by runner_type,repo   # billable minutes and estimated cost
blacksmith usage storage --since 30d --breakdown-by repo,type   # GB, GB-hours and storage cost

The dashboard's Usage & Billing page shows the same breakdown. For a 4 vCPU runner, minutes alone:

The calculator on the home page compares the two at your own minutes and size.

Blacksmith's cache limits

From its Actions cache, Docker builds and sticky disks docs, read November 13, 2026:

Why caches still miss on Blacksmith:

  • Some caches don't use it. "The Rust sccache and the GitHub Actions cache option in the docker/build-push-action are still redirected to GitHub's backend", which holds 10 GB per repository.
  • Entries are scoped to their branch by default, as on GitHub. A branch can't read a sibling branch's entries. A setting in the dashboard turns that off.
  • Infrequent jobs lose their caches. A workflow that runs less than once a week finds its entries and disks evicted and starts cold.
  • Unrelated images on one cache-key evict each other. Blacksmith's docs say they "can be slower than not caching at all"; give each Dockerfile its own key.

How to cut a Blacksmith bill

These work without leaving Blacksmith:

  1. Right-size runners. Blacksmith's Rightsize page finds jobs leaving most of their CPU idle and opens a pull request to move them. A job moved from 4 vCPU to 2 vCPU pays half as much per minute.
  2. Cancel superseded runs. concurrency with cancel-in-progress: true keyed on the pull request stops paying for runs a new push replaced.
  3. Delete stale storage. List sticky disks with blacksmith stickydisk list or under Storage → Sticky Disks, and delete what no job needs.
  4. One cache-key per Dockerfile, so caches don't evict each other and cost a rebuild.
  5. Try ARM where your stack builds on it: $0.005 a minute at 4 vCPU against $0.008.
  6. Ask about the startup or OSS programs if you qualify.

When a flat price costs less

Skipbox prices a machine by the month. Blacksmith prices a minute. Where the lines cross, from each one's price:

break-even minutes = (flat price + $12 of free minutes) ÷ Blacksmith's per-minute rate

Storage moves the line lower: every 10 GB of Docker layer cache on Blacksmith adds $5 a month, and on Skipbox it's on the machine's disk (80 GB on S).

The other side, fairly:

  • One plan is one machine. An S runs one 4 vCPU job at a time; more jobs wait their turn. A team whose minutes come as 30 parallel shards for ten minutes an hour needs several plans, or accepts the wait. Blacksmith starts them all at once.
  • Below the break-even, Blacksmith costs less. A small team running a few thousand minutes a month pays less per minute.
  • Blacksmith runs what Skipbox doesn't: macOS, Windows, ARM, 32 vCPU runners, and regions in the US. Skipbox runs Linux x64 jobs, in the EU or Japan.

If your bill is above the break-even and your jobs fit through a few machines, the flat price is the cheaper one, and the bill stops moving.

Moving is one line

jobs:
  build:
    runs-on: skipbox # was blacksmith-4vcpu-ubuntu-2404
    steps:
      - uses: actions/checkout@v4
      - uses: docker/setup-buildx-action@v4 # was useblacksmith/setup-docker-builder
        with:
          driver: docker # build with the machine's Docker, whose layers stay between jobs
      - uses: docker/build-push-action@v7 # was useblacksmith/build-push-action
        with:
          push: true
          tags: user/app:latest
  1. Sign in to Skipbox with GitHub.
  2. Install the Skipbox GitHub app and pick the repositories, public or private.
  3. Change runs-on and push.

8 vCPU jobs go to skipbox-8x16, 16 vCPU jobs to skipbox-16x32. actions/cache and setup-* keep working as they are. What useblacksmith/stickydisk held, such as ~/.npm or node_modules, is simply still on the disk from the last job. The Docker layer cache guide has the details, and the Blacksmith alternatives page compares the services side by side.

Security

  • Your machine runs your account's jobs only, never another company's.
  • After every job, the runner's credentials, processes and containers are wiped. Clean every job gives each job a fresh machine.
  • 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.

The details are in job isolation.

Check the arithmetic on your own jobs

The trial takes no card and lasts 7 days or 3,000 job-minutes. Move one Blacksmith job to runs-on: skipbox, run it twice, and compare the second run and the month's bill with Blacksmith's usage report.

FAQ

We moved to Blacksmith for faster CI but the monthly bill is much higher than we expected. Why?

Usually three things. The 3,000 free minutes are 2 vCPU minutes, so they last 1,500 minutes on a 4 vCPU runner and 750 on an 8 vCPU one. Docker layer caching and sticky disks are billed by storage, $0.50 per GB a month, on top of the minutes. And Blacksmith has no concurrency limit, so sharded suites, matrix builds and agent pushes all run at once and all bill. Run blacksmith usage --since 30d --breakdown-by runner_type,repo and blacksmith usage storage to see which one it is.

How does Blacksmith bill?

Per minute, by runner size. Its pricing page (read November 13, 2026) lists Ubuntu x64 at $0.004 a minute for 2 vCPU, $0.008 for 4, $0.016 for 8, $0.032 for 16 and $0.064 for 32, with 3,000 free minutes a month per organization counted as 2 vCPU minutes. Docker layer caching and sticky disks are $0.50 per GB a month, and static IPs $100 an IP a month. Its Actions cache costs nothing extra.

What are Blacksmith's cache limits?

Its Actions cache gives 25 GB of free storage per repository per week and evicts entries last accessed more than 7 days ago; support can raise the size. Entries are scoped to their branch by default. Rust's sccache and docker/build-push-action's GitHub Actions cache still go to GitHub's backend. Docker layer caches and sticky disks have no size cap in its docs, but are billed per GB and deleted after 7 days without use.

Blacksmith's cache isn't big enough and we still see misses. What can we do?

On Blacksmith: check which caches go to GitHub's backend instead of its own (sccache, type=gha in docker/build-push-action), give each Dockerfile its own cache-key, turn off branch-protected caches if branches should share entries, and ask support for a larger Actions cache. Or run the jobs on a machine that keeps its disk: on Skipbox, Docker's layers and the package caches stay on your account's machine between jobs, with no per-GB charge.

When is a flat price cheaper than Blacksmith?

Once your monthly minutes pass the break-even and fit through the machines you buy. Skipbox's S plan (4 vCPU) costs $39 a month; Blacksmith's 4 vCPU runner reaches that at about 6,400 minutes a month, before any storage. M against 8 vCPU breaks even at about 5,700 minutes, L against 16 vCPU at about 5,100. Below those, or for short bursts of many parallel jobs, Blacksmith costs less.

Can I set a hard spending cap on Blacksmith?

Its settings docs describe Spending Alerts: you set a monthly threshold and Blacksmith emails the account's primary address when spending passes it. The docs describe an email, not a stop. A price that can't move needs a plan priced per machine: on Skipbox, jobs beyond your plans wait their turn and the bill stays the same.

How do I move a job from Blacksmith to Skipbox?

Install the Skipbox GitHub app, change runs-on from a label such as blacksmith-4vcpu-ubuntu-2404 to skipbox, and push. Steps that use Blacksmith's own actions (useblacksmith/setup-docker-builder, build-push-action, stickydisk) go back to docker/setup-buildx-action with driver: docker and docker/build-push-action; your machine's Docker keeps the layers between jobs.

Updated November 13, 2026

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