BuildPulse vs CircleCI machines
Keep CircleCI, change the machine. Jobs on BuildPulse ran 1.7x faster than on CircleCI's Large and cost up to 73% less a minute, through CircleCI's own self-hosted runner. Your config, contexts and approvals stay exactly where they are. Here is what changes, and what it costs.
1.7x
faster than CircleCI Large, both 4 vCPU
61%
less per build than on Large, at the least
73%
less per Docker build than on Large Gen 2
At a glance
| CircleCI machines | BuildPulse machines on CircleCI | |
|---|---|---|
| Price per minute | CircleCI Linux VM: $0.006 at 2 vCPU to $0.18 at 32 | 33% less at 2 and 4 vCPU, 73% less at 8 and 16 |
| Speed at 4 vCPU | Large and Large Gen 2, measured | 1.7x to 1.8x faster than Large, 1.1x to 1.4x faster than Large Gen 2 |
| CircleCI credits used | Credits per minute, by class | None for job time on a self-hosted runner |
| Sizes | 2 to 32 vCPU | 2 to 64 vCPU |
| Concurrency | Set by your CircleCI plan | CircleCI caps self-hosted jobs: 5 on Free, 20 on Performance, unlimited on Scale |
| Machine | Linux, macOS, Windows and GPU classes | Ubuntu 24.04 with Docker. Each job gets a fresh machine, usually running in under a minute. |
| Config change | None | machine: true and your resource_class, per job |
Price, class by class
CircleCI sells compute in credits, $15 for 25,000 (circleci.com/pricing), so a credit is $0.0006, and every class burns a fixed number of them a minute (price list). The part that matters here: a job on a self-hosted runner burns no credits for its run time (runner overview). On our machines the minute is just our rate, which is 33% less at 2 and 4 vCPU and under half the price from 8 vCPU up.
Linux VM (standard classes)
| CircleCI machine | vCPU | CircleCI $/min | BuildPulse size | BuildPulse $/min | BuildPulse costs |
|---|---|---|---|---|---|
| Medium · 7.5 GB | 2 | $0.006 | 2x · 8 GB | $0.004 | 33% less |
| Large · 15 GB | 4 | $0.012 | 4x · 16 GB | $0.008 | 33% less |
| X-large · 32 GB | 8 | $0.06 | 8x · 32 GB | $0.016 | 73% less |
| 2X-large · 64 GB | 16 | $0.12 | 16x · 64 GB | $0.032 | 73% less |
| 2X-large+ · 64 GB | 32 | $0.18 | 32x · 128 GB | $0.064 | 64% less |
Linux VM Gen 2 (.gen2 classes)
| CircleCI machine | vCPU | CircleCI $/min | BuildPulse size | BuildPulse $/min | BuildPulse costs |
|---|---|---|---|---|---|
| Medium Gen 2 · 8 GB | 2 | $0.0108 | 2x · 8 GB | $0.004 | 63% less |
| Large Gen 2 · 16 GB | 4 | $0.0216 | 4x · 16 GB | $0.008 | 63% less |
| X-large Gen 2 · 32 GB | 8 | $0.0432 | 8x · 32 GB | $0.016 | 63% less |
| 2X-large Gen 2 · 64 GB | 16 | $0.0864 | 16x · 64 GB | $0.032 | 63% less |
| 2X-large+ Gen 2 · 128 GB | 32 | $0.1728 | 32x · 128 GB | $0.064 | 63% less |
CircleCI prices from CircleCI pricing and its price list, checked October 5, 2026.
Speed and cost per build
A cheaper minute is only half of it, because the same build also needs fewer minutes here. We ran the same Docker, Node and Go builds 10 times each on CircleCI's 4 vCPU machines and on a BuildPulse x64-4x, in production on October 13, 2026. Here are the median times to scale, and under them, what a month of builds costs at each side's list price:
Median job time, replayed to scale
Docker image build hugo's own Dockerfile, no cache
1.8x faster than Large
CircleCI Large
229.3 s
CircleCI Large Gen 2
175.4 s
BuildPulse x64-4x
129.2 s
Node install, build and tests vuejs/core, pinned
1.7x faster than Large
CircleCI Large
80.9 s
CircleCI Large Gen 2
57.4 s
BuildPulse x64-4x
47.8 s
Go compile hugo, pinned
1.7x faster than Large
CircleCI Large
60.3 s
CircleCI Large Gen 2
40 s
BuildPulse x64-4x
35.5 s
Your month
5,000 builds a month
CircleCI Large
$229
BuildPulse x64-4x
$86
A year on BuildPulse
$1,718kept, 62% of the bill
and 139 fewer hours of builds every month.
Median benchmark time at each side's list price per minute, before any free allowance.
Method, hardware and every run: the CircleCI benchmark and github.com/buildpulse/runner-benchmarks.
Your month, every size
Rather think in minutes than in builds? This is the bill calculator from /pricing, already set to CircleCI. Pick a size and compare a month on CircleCI's machines with the same jobs on ours, free allowances taken off on both sides.
Linux x64
vCPU
A month of CI at 10,000 CircleCI minutes on 2 vCPU x64
resource_class: your-namespace/bp-x64-2x
CircleCI Linux VM
$42
10,000 min · 3,000 included · 7,000 × $0.006
BuildPulse
$28
10,000 min · 3,000 free · 7,000 × $0.004
Priced by the minute alone: we measured speed at 4 vCPU.
You pay
33% less
at 10,000 CircleCI minutes a month
$0.004/min, not $0.006/min, and the first 3,000 free every month.
| Linux x64 | Memory | BuildPulse | CircleCI Linux VM | CircleCI Gen 2 | Total vs CircleCI |
|---|---|---|---|---|---|
| 2 vCPU | 8 GB | $0.004 | 33% less | ||
| 4 vCPU | 16 GB | $0.008 | 61% less | ||
| 8 vCPU | 32 GB | $0.016 | 73% less | ||
| 16 vCPU | 64 GB | $0.032 | 73% less | ||
| 32 vCPU | 128 GB | $0.064 | 64% less |
Per-minute list prices for the same vCPU count, October 5, 2026: CircleCI credits at $15 per 25,000. A self-hosted runner uses no credits for run time. The total counts our 1.7x speed at 4 vCPU, the size we measured against Large, and the per-minute price alone at the others.
3,000 free minutes a month
On every account, renewed monthly. Larger runners use them proportionally faster, so the grant is worth the same whichever size you run.
Flaky test detection included
Every run is parsed for flaky tests and per-test timing. No second tool, no separate bill.
Caching included
Docker layer, dependency and build caches that survive across runs, with no per-GB storage line.
Need your CI to reach a private registry or database behind an allowlist? Our runners leave from four fixed addresses you can allowlist today, and a dedicated egress IP is available on request. Talk to us.
What's supported
Linux machine jobs on Ubuntu 24.04 with Docker: machine: true with your resource class. macOS, Windows and Docker executor jobs are not supported. CircleCI caps self-hosted jobs running at once by plan: 5 on Free, 20 on Performance, unlimited on Scale (pricing). Restoring caches and workspaces to a self-hosted runner counts as network transfer, 420 credits per GB past your plan's allowance (persisting data).
FAQ
Do I leave CircleCI?
No. CircleCI keeps running your pipelines, config, contexts, approvals and test insights. The only thing that changes is the machine a job runs on, and that goes through CircleCI’s own self-hosted runner. Move one job, see how it does, and leave the rest where they are.
What does CircleCI still charge me?
Your CircleCI plan as before. Jobs on a self-hosted runner use no credits for their run time. Restoring caches and workspaces to a self-hosted runner counts as network transfer, billed at 420 credits per GB once you pass your plan’s included allowance.
What do I need to set it up?
A CircleCI resource class and its token, plus a read-only personal API token so we can see when jobs are waiting. The setup guide walks you through all three.
Setup steps, and the prices next to Semaphore, are in the CircleCI and Semaphore runner docs.
Move one job and compare the bill
Create a resource class, paste its token, and point one job at it. Everything else in your pipeline stays on CircleCI.
3,000 free minutes every month · No credit card required