Compare

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 machinesBuildPulse machines on CircleCI
Price per minuteCircleCI Linux VM: $0.006 at 2 vCPU to $0.18 at 3233% less at 2 and 4 vCPU, 73% less at 8 and 16
Speed at 4 vCPULarge and Large Gen 2, measured1.7x to 1.8x faster than Large, 1.1x to 1.4x faster than Large Gen 2
CircleCI credits usedCredits per minute, by classNone for job time on a self-hosted runner
Sizes2 to 32 vCPU2 to 64 vCPU
ConcurrencySet by your CircleCI planCircleCI caps self-hosted jobs: 5 on Free, 20 on Performance, unlimited on Scale
MachineLinux, macOS, Windows and GPU classesUbuntu 24.04 with Docker. Each job gets a fresh machine, usually running in under a minute.
Config changeNonemachine: 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 machinevCPUCircleCI $/minBuildPulse sizeBuildPulse $/minBuildPulse costs
Medium · 7.5 GB2$0.0062x · 8 GB$0.00433% less
Large · 15 GB4$0.0124x · 16 GB$0.00833% less
X-large · 32 GB8$0.068x · 32 GB$0.01673% less
2X-large · 64 GB16$0.1216x · 64 GB$0.03273% less
2X-large+ · 64 GB32$0.1832x · 128 GB$0.06464% less

Linux VM Gen 2 (.gen2 classes)

CircleCI machinevCPUCircleCI $/minBuildPulse sizeBuildPulse $/minBuildPulse costs
Medium Gen 2 · 8 GB2$0.01082x · 8 GB$0.00463% less
Large Gen 2 · 16 GB4$0.02164x · 16 GB$0.00863% less
X-large Gen 2 · 32 GB8$0.04328x · 32 GB$0.01663% less
2X-large Gen 2 · 64 GB16$0.086416x · 64 GB$0.03263% less
2X-large+ Gen 2 · 128 GB32$0.172832x · 128 GB$0.06463% 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 x64MemoryBuildPulseCircleCI Linux VMCircleCI Gen 2Total vs CircleCI
2 vCPU8 GB$0.004$0.006$0.010833% less
4 vCPU16 GB$0.008$0.012$0.021661% less
8 vCPU32 GB$0.016$0.06$0.043273% less
16 vCPU64 GB$0.032$0.12$0.086473% less
32 vCPU128 GB$0.064$0.18$0.172864% 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