CircleCI vs Blacksmith

CircleCI is a whole CI platform: you write its own config, and it runs pipelines, caches and test splitting on machines it hosts or you host. Blacksmith keeps your GitHub Actions workflows and runs each job on its own faster microVMs, after you change one runner label.

The companies and products

CircleCI

CircleCI is a CI and CD platform that runs your pipeline jobs on machines it hosts, or on runners you host.

You describe jobs in a config file, and each job runs on a fresh Docker container or a machine VM (Linux, Arm, Windows, macOS on Apple M4 Pro, or GPU on Scale), then the machine is discarded. Files move between jobs only through caches, workspaces and artifacts. It is a CI service, not an agent sandbox, so this page compares where they overlap: a machine where a job or an agent does its work. CircleCI also has Chunk, a toolkit that starts its own agent tasks in CircleCI Cloud from a prompt.

Blacksmith

Blacksmith is a CI service: it runs your GitHub Actions jobs on its own faster, cheaper runners instead of GitHub's.

You change the runner label in your workflow file, and each job runs in a fresh Firecracker microVM that boots in under 3 seconds and is destroyed when the job ends. It adds Docker layer caching and sticky disks that carry chosen folders from one run to the next, plus a Testbox CLI in early beta that lets a local coding agent run commands inside a CI job. It is built for teams that want quicker, cheaper GitHub Actions, not as a general sandbox you drive by API; a separate Sandboxes product is marked coming soon.

Which use cases each one fits

For each use case, Battleships prices every sandbox provider on the same workload and sorts them from the cheapest monthly bill up. “136th cheapest of 377” means 135 of the other 376 providers run that workload, with every feature it needs, for less. “With limits” means the provider runs it but misses something, so it is listed after every full match. Open a use case for its whole ranking and what each provider misses.

Use case and its workloadCircleCI: price rankBlacksmith: price rankbochka: price rank
Software factory
100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month
An agent building a whole app needs one machine for hours; a CircleCI job stops after 3 hours on Performance and a Blacksmith machine ends with its job.
333rd of 367, with limits
$8,692 a month
248th of 367, with limits
$3,607 a month
3rd cheapest of 367
$634 a month
Always-on AI employees
50 machines 24/7 · 2 vCPU / 4 GB
An assistant that lives on its machine all month does not fit either CI service; bochka has no session cap on paid plans.
340th of 366, with limits
$13,137 a month
78th of 366, with limits
$5,463 a month
5th cheapest of 366
$657 a month
Code interpreter bursts
100 at once · 1 vCPU / 2 GB · 200,000 sessions of 1 min a month
285th of 345, with limits
$572 a month
281st of 345, with limits
$488 a month
186th of 345, with limits
$2,000 a month
Sandboxes for your users
300 at once · 2 vCPU / 4 GB · 30,000 sessions of 23 min a month
Your users' sandboxes need to start from your backend and expose a URL; neither CI service exposes ports, while bochka gives HTTPS on up to 50 ports.
316th of 361, with limits
$3,702 a month
268th of 361, with limits
$1,563 a month
Cheapest of 361
$209 a month
RL rollouts
1,000 at once · 2 vCPU / 4 GB · 1,000,000 sessions of 3 min a month
310th of 360, with limits
$17,882 a month
276th of 360, with limits
$7,488 a month
34th of 360, with limits
$2,000 a month
Agent evals
250 at once · 4 vCPU / 8 GB · 15,000 sessions of 20 min a month
318th of 364, with limits
$2,877 a month
354th of 364, with limits
$1,188 a month
10th cheapest of 364
$200 a month
CI runners
40 at once · 8 vCPU / 16 GB · 6,000 sessions of 12 min a month
Both are built for CI: CircleCI if you want its own pipeline platform, Blacksmith if your CI already lives in GitHub Actions; bochka runs CI jobs on full VMs but has no pipeline service.
136th cheapest of 377
$4,302 a month
78th cheapest of 377
$708 a month
4th cheapest of 377
$86 a month
24/7 dev boxes
1 machine 24/7 · 4 vCPU / 8 GB
A dev box has to stay up and keep what you installed; CircleCI keeps only cached paths and Blacksmith only sticky disk folders, while bochka saves the whole disk.
197th of 368, with limits
$508 a month
180th of 368, with limits
$207 a month
18th cheapest of 368
$26 a month
Computer-use agents
50 at once · 4 vCPU / 8 GB · 20,000 sessions of 15 min a month
Both CI services run headless jobs with no desktop to drive; bochka streams a 60fps Linux desktop with Chromium and computer use.
320th of 369, with limits
$2,589 a month
243rd of 369, with limits
$1,088 a month
6th cheapest of 369
$200 a month
Browser-use agents
50 at once · 2 vCPU / 4 GB · 30,000 sessions of 10 min a month
116th of 367, with limits
$1,293 a month
131st of 367, with limits
$588 a month
7th cheapest of 367
$200 a month
Scraping & bots (startup scale)
50 at once · 1 vCPU / 2 GB · 100,000 sessions of 3 min a month
70th cheapest of 346
$860 a month
130th of 346, with limits
$719 a month
6th cheapest of 346
$90 a month
Mass scraping & bots (undetectable)
1,000 at once · 1 vCPU / 2 GB · 3,000,000 sessions of 2 min a month
274th of 338, with limits
$17,532 a month
262nd of 338, with limits
$14,613 a month
71st of 338, with limits
$1,800 a month
Parallel red teaming
200 at once · 2 vCPU / 4 GB · 5,000 sessions of 30 min a month
80th of 360, with limits
$852 a month
64th of 360, with limits
$350 a month
2nd cheapest of 360
$200 a month
GPU eval jobs
10 at once · 8 vCPU / 32 GB · 500 sessions of 30 min a month
Only CircleCI has GPUs, on its custom-priced Scale plan, so none of the three is priced here; Blacksmith and bochka have no GPUs.
Can't run itCan't run itCan't run it
macOS agents
5 at once · 4 vCPU / 8 GB · 1,000 sessions of 20 min a month
Both run macOS, CircleCI on Apple M4 Pro with Xcode and Blacksmith on Apple Silicon, while bochka runs Linux only.
34th of 36, with limits
$2,262 a month
28th of 36, with limits
$1,508 a month
Can't run it

Key features

FeatureCircleCIBlacksmithbochka
What it isA full CI and CD platform; jobs start from pipelines in its own config fileDrop-in runners for GitHub Actions; jobs start from your GitHub workflowsA full VM per agent that you create, stop and start by API, CLI or SDK
IsolationContainers on the Docker executor; a fresh VM per job on machine, Windows and macOS executorsA Firecracker microVM per job, destroyed with its state when the job endsFull VM with its own kernel on dedicated AMD Ryzen 9 9950X (Zen 5) hosts
How long a machine runs1 hour per job on Free, 3 on Performance, 5 on ScaleUntil the job ends; Testbox stops after 30 idle minutes by defaultNo session cap on paid plans; you set the time to live
Files after a runThe machine is discarded; caches, workspaces and artifacts copy chosen paths outOnly sticky disk folders, up to 5 per job, evicted after 7 days unusedThe whole disk, saved every minute and on stop; a stopped sandbox costs nothing
ForkNo fork of a jobNo; every machine starts fresh from a jobFork a running sandbox with its disk
Docker and nested virtualizationDocker and sudo on machine executors; nested virtualization documented on the Android machine imageDocker inside; nested virtualization on x64 Linux runners, not on ARMDocker, root, systemd and /dev/kvm on every machine
Operating systemsLinux on x86 and Arm, Windows, and macOS on Apple M4 Pro with XcodeUbuntu on x64 and ARM, Windows Server 2025 (beta), macOS on Apple SiliconLinux only (x86)
GPUsNvidia T4, V100 and other GPU classes on the Scale planNoneNone
Jobs at once30 on Free, 80 on Performance (15 for macOS), unlimited on ScaleDocs say Blacksmith imposes no concurrency limitsA sandbox count per plan, with starts per minute queued above 90
Reaching the machineNo exposed ports; rerun a job with SSH, open for 10 minutes after it endsOpt-in debug SSH for the user who triggered the job; no ports or URLsHTTPS URLs for up to 50 ports, token-protected; raw TCP; dedicated IP
Desktop and computer useHeadless jobs; no desktop or computer-use APIHeadless runners60fps Linux desktop with Chromium, computer use and browser control
Coding agentsChunk starts CircleCI's own agent tasks from a prompt and returns a run IDIts own [code]smith agent from Slack, GitHub or a web UI; Testbox CLI (early beta) for local agentsClaude Code, Codex and more preinstalled, with a prompt, steer and events API
Keeping API keys outContexts inject secrets as environment variables; OIDC tokens for cloud loginsGitHub Actions secrets and OIDC tokens available inside the jobCredentials proxy for model providers and any HTTPS API; switch a credential to another account when credits run out
Regions and self-hostingUS only (AWS and GCP); self-hosted runners and CircleCI Server on your own KubernetesUS east, US west, Amsterdam and Frankfurt; no self-hostingEU only (Germany, Finland, France), with EU data residency
Every feature Battleships tracks (43)
FeatureCircleCIBlacksmithbochka
Full VM (own kernel)YesYesYes
Docker insideYesYesYes
Nested virtualizationYesYesYes
RootNot publishedYesYes
SystemdNoNoYes
Desktop GUINoNoYes
BrowserYesYesYes
Computer-use APINoNoYes
SSHYesYesYes
Persistent diskNoYesYes
Pause/resumeNoNoYes
Automatic snapshotsNoNoYes
Fork/cloneNoNoYes
Live fork (no pause)NoNoYes
Memory forkNoNoNo
Custom image (Docker or snapshot)YesNoYes
≥24 h sessionsNoYesYes
Idle auto-stopYesYesNo
Wake on requestNoNoNo
HTTPS preview URLsNoNoYes
Raw TCP inboundNoNoYes
Public IPv4NoNoNo
Egress allowlistNoNoNo
Secret proxyNoNoYes
Secret proxy for any APINoNoYes
Preinstalled agentsNoNoYes
Agent harness APIYesNoYes
MCP serverYesNoNo
GPUYesNoNo
WindowsYesYesNo
Arm64YesYesNo
Self-hostingYesNoNo
BYOCNoNoNo
Open sourceNoNoNo
Scoped API keysNot publishedNot publishedYes
Spend limitsNot publishedNot publishedYes
Usage per sandbox (API)YesYesYes
Audit logsYesNot publishedNo
SSOYesNoNo
SOC 2YesYesNo
HIPAANoNoNo
EU data residencyNoYesYes
Zero data retentionNot publishedNot publishedYes

Performance

CircleCINot measured
BlacksmithNot measured
bochka26.69 runs/s

We have no comparable measurement for CircleCI or Blacksmith: neither was part of the StarSling hpc-sandbox-benchmarks run. On that Node.js benchmark at 4 vCPU / 8 GB, bochka did 26.69 runs per second on dedicated AMD Ryzen 9 9950X (Zen 5) hosts. Blacksmith says its runners use fast gaming CPUs, but there is no number measured the same way to set beside it.

Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. CircleCI and Blacksmith have no published run in this suite yet, so there is no like-for-like number to compare.

Pricing in five scenarios

Each bill is priced from the providers' public price lists by the open Battleships engine, with the cheapest plan that runs the scenario.

ScenarioCircleCI, a monthBlacksmith, a monthbochka, a month
One coding agent, workdays
4 vCPU / 8 GB, 50 GB disk, 8 hours a day, 22 days a month, files kept between days
$96 · Performance · with limits$36 · Pay-as-you-go · with limits$20 · $20/mo
One agent that never stops
4 vCPU / 8 GB, 50 GB disk, running 24/7 all month
$508 · Performance · with limits$207 · Pay-as-you-go · with limits$26 · $20/mo
50 agents in parallel
50 machines of 4 vCPU / 8 GB at once, 8-hour sessions, 1,100 sessions a month, Docker inside
$5,714 · Performance · with limits$2,364 · Pay-as-you-go · with limits$317 · $20/mo × 3 seats
Sandboxes for your users
2 vCPU / 4 GB, 30,000 sessions of 10 minutes a month, up to 300 at once
$1,617 · Performance · with limits$663 · Pay-as-you-go · with limits$200 · $100/mo × 2 seats
1,000 short jobs at once
2 vCPU / 4 GB, 1,000 at once, 3 minutes each, 200,000 jobs a month
$3,562 · Performance · with limits$1,488 · Pay-as-you-go · with limits$2,000 · $2000/mo · with limits

CircleCI: CircleCI bills in credits per minute for the machine class a job uses: Performance starts at $15 a month with 30,000 credits, and more credits cost $15 per 25,000. Seats are paid from the same credits, and Scale is custom and billed annually.

Blacksmith: Blacksmith bills per minute of job time, scaled by vCPU and OS: Ubuntu x64 is $0.004 a minute for 2 vCPU, ARM $0.0025, Windows $0.008 and macOS $0.08 for 6 vCPU, with 3,000 free minutes a month. Sticky disks cost $0.50 per GB a month.

Blacksmith: Plans start at $20 a month, and the whole fee is usage credit spent per second on running sandboxes. A stopped sandbox costs nothing and keeps its disk.

Limits in those scenarios

None of the agent scenarios fit either CI service as priced, because both are CI runners. On CircleCI the job stops after 3 hours on Performance and the machine is discarded, and Performance runs at most 80 jobs at once, so 300 user sandboxes and 1,000 short jobs wait in a queue. On Blacksmith only sticky disk folders survive between runs, so packages installed anywhere else are gone; its prices here use ARM runners, the cheapest shape. bochka fits every scenario except the 1,000-job burst, where starts above 90 a minute are queued.

ScenarioCircleCIBlacksmithbochka
One coding agent, workdays
  • Performance: sessions capped at 3 h
  • missing persistent disk
  • different kind of product: CI runner
  • different kind of product: CI runner
  • files survive a stop only in sticky disk paths: packages installed elsewhere reset
  • egress price not published
None that bite
One agent that never stops
  • Performance: sessions capped at 3 h
  • missing persistent disk
  • different kind of product: CI runner
  • different kind of product: CI runner
  • files survive a stop only in sticky disk paths: packages installed elsewhere reset
  • egress price not published
None that bite
50 agents in parallel
  • Performance: sessions capped at 3 h
  • missing persistent disk
  • different kind of product: CI runner
  • different kind of product: CI runner
  • files survive a stop only in sticky disk paths: packages installed elsewhere reset
  • egress price not published
  • how many machines can run at once: limit not published, probably fine at 50 (the typical published limit is 50)
None that bite
Sandboxes for your users
  • Performance: max 80 concurrent
  • different kind of product: CI runner
  • different kind of product: CI runner
  • not confirmed: how many machines can run at once (you need 300; the typical published limit is 50)
  • egress price not published
None that bite
1,000 short jobs at once
  • Performance: max 80 concurrent
  • different kind of product: CI runner
  • different kind of product: CI runner
  • not confirmed: how many machines can run at once (you need 1,000; the typical published limit is 50)
  • egress price not published
  • max 2,400 starts/day (needs ~6,667)
  • max 600 starts/hour (needs ~1,000)
  • bursts above 90 starts/min are queued (a burst of 333 takes ~4 min to start)

Which one should you use?

Use CircleCI when

you want a CI platform of its own with pipelines and test splitting, need to host CI yourself, or need GPUs or macOS on Apple M4 Pro.

  • A CI platform of its own. Useful if you want pipelines, caches, test splitting and orbs that do not depend on GitHub Actions.
  • Self-hosting and GPUs. Useful if you must run CI on your own Kubernetes with CircleCI Server, or need Nvidia GPU classes on Scale.
  • macOS on Apple M4 Pro. Useful for iOS and Mac builds: it runs macOS VMs on Apple M4 Pro with many Xcode versions, even on Free.

Use Blacksmith when

your CI already runs on GitHub Actions and you want faster jobs by changing one label, with no concurrency limit and US or EU regions.

  • A one-label switch. If your CI already lives in GitHub Actions, you keep your workflows and change the runner label.
  • No concurrency limit. Its docs say it imposes no concurrency limits, so a big test matrix can start all at once.
  • US and EU regions. It runs in Ashburn, Phoenix, Amsterdam and Frankfurt, with Ubuntu x64 runners up to 32 vCPU and 128 GB.

Where bochka fits

CircleCI and Blacksmith both run CI jobs: a machine starts for one job and is thrown away when it ends. If what you are really running is agents that work for hours, keep their files, host what they build or need a screen, a CI job is the wrong shape on both. bochka gives each agent its own full VM that you start by API and keep as long as the work lasts.

A machine that stays and keeps its disk

A CircleCI job stops after 3 hours on Performance, and a Blacksmith machine is destroyed when its job ends. Both make the agent copy chosen folders into caches or sticky disks and rebuild everything else next run.

A way in: URLs and a desktop

Neither CI service exposes ports; the only way in is a short SSH session for the person who started the job. bochka gives HTTPS on up to 50 ports, raw TCP and a 60fps desktop for computer use.

Agents you drive from outside

On both, an agent is a job step you read through logs, and secrets sit inside the job as environment variables. bochka ships coding agents with a prompt, steer and events API, and a credentials proxy keeps real keys out.

Use bochka when what you are running is agents on Linux: one full VM that keeps its disk, Docker and /dev/kvm, URLs you can reach, a 60fps desktop and coding agents you drive from outside. Compare it one to one: bochka vs CircleCI and bochka vs Blacksmith.

Questions people ask

Is CircleCI cheaper than Blacksmith?

In what we priced, Blacksmith comes out lower: for a CI runner workload it is $708 a month against $4,302 on CircleCI, and one always-on 4 vCPU machine is $207 against $508. Blacksmith's estimates use ARM runners, its cheapest shape.

Which is faster, CircleCI or Blacksmith?

We have no comparable CPU measurement for either one, so we cannot say. Blacksmith says its runners use fast gaming CPUs. bochka did 26.69 runs per second on the StarSling Node.js benchmark at 4 vCPU / 8 GB.

Can CircleCI and Blacksmith run Docker?

Yes. CircleCI has a Docker executor and runs Docker with sudo on its machine executors, and Blacksmith runs Docker inside its microVMs with a managed Docker layer cache. bochka runs Docker, root, systemd and /dev/kvm on every machine.

How long can a job run on CircleCI and Blacksmith?

A CircleCI job stops after 1 hour on Free, 3 on Performance and 5 on Scale. A Blacksmith machine lives until its job ends and is then destroyed. bochka has no session cap on paid plans.

Do files survive between runs?

On CircleCI only what you save to caches, workspaces and artifacts. On Blacksmith only sticky disk folders, up to 5 per job, evicted after 7 days unused. bochka saves the whole disk every minute and on stop.

Can I run an AI agent on CircleCI or Blacksmith?

As a job step, yes, until the job ends. CircleCI's Chunk starts its own agent tasks, and Blacksmith's Testbox CLI, in early beta, lets a local agent run commands inside a CI job. On bochka, coding agents come preinstalled and you prompt and steer them through an API.

Try bochka

Install the CLI, then run bochka new.

Product preview

More comparisons

Bochka product preview · Pricing, benchmarks and commands are illustrative. Sandbox provisioning is not connected.