Buildkite vs Ubicloud

Buildkite is a CI platform whose hosted agents start a fresh VM for each pipeline job and destroy it when the job ends. Ubicloud is an open source cloud that rents plain Linux VMs you set up yourself and keep as long as you like, plus cheap GitHub Actions runners.

The companies and products

Buildkite

Buildkite is a CI and software delivery platform, and hosted agents are the build machines it runs for you.

You write Buildkite pipelines, and each job runs on a fresh virtual machine that Buildkite starts for that job and destroys when it ends; only cache volumes carry files to the next job. Hosted agents come in Linux and macOS on Apple M4, with Windows in private preview, and you can also run Buildkite's agent on your own machines. It is a CI service, not an agent sandbox, so this page compares the part where they overlap: a machine where an agent or a job does its work.

Ubicloud

Ubicloud is an open source cloud that runs VMs, managed Postgres, Kubernetes and GitHub Actions runners on leased bare-metal servers.

You rent Linux VMs (Standard with dedicated CPU, or cheaper Burstable with shared CPU) from Ubicloud's managed service, or run the same AGPL code on your own servers. Around the VMs it offers private subnets, an inbound firewall, load balancers, managed PostgreSQL, Kubernetes, GPU VMs, inference endpoints and cheap GitHub Actions runners. It is general infrastructure, not an agent sandbox, so this page compares the two where they overlap: giving an agent its own Linux machine.

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. “43rd cheapest of 367” means 42 of the other 366 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 workloadBuildkite: price rankUbicloud: price rankbochka: price rank
Software factory
100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month
A coding agent that builds a whole app needs the same machine for hours; a Buildkite job VM is destroyed when the job ends, a Ubicloud VM stays but starts empty, and bochka keeps its disk with coding agents preinstalled.
43rd of 367, with limits
$11,648 a month
126th of 367, with limits
$1,136 a month
3rd cheapest of 367
$634 a month
Always-on AI employees
50 machines 24/7 · 2 vCPU / 4 GB
An assistant that runs all month does not fit a Buildkite job that stops after 8 hours; a Ubicloud VM can stay up, and bochka has no session cap on paid plans.
351st of 366, with limits
$17,564 a month
154th of 366, with limits
$1,139 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
Ubicloud fits short bursts best here: cheap burstable VMs bill per minute with no plan fee, while Buildkite's vCPU pool and bochka's start limits make big bursts a compromise.
315th of 345, with limits
$1,587 a month
59th of 345, with limits
$52 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
Buildkite hosted agents expose no ports and Pro caps 256 vCPU at once; Ubicloud needs a quota raise for 300 user sandboxes, and bochka gives each sandbox HTTPS on up to 50 ports.
326th of 361, with limits
$4,984 a month
53rd of 361, with limits
$390 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
316th of 360, with limits
$23,881 a month
234th of 360, with limits
$1,560 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
324th of 364, with limits
$3,884 a month
31st cheapest of 364
$624 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 CI options: Buildkite is a full pipeline platform, while Ubicloud sells GitHub Actions runners billed per minute of job time; bochka runs CI jobs on full VMs with Docker and /dev/kvm.
203rd of 377, with limits
$2,318 a month
28th cheapest of 377
$300 a month
4th cheapest of 377
$86 a month
24/7 dev boxes
1 machine 24/7 · 4 vCPU / 8 GB
A dev box must stay up and keep its packages, which Buildkite's per-job VMs do not; Ubicloud and bochka both fit, with bochka saving the disk every minute.
354th of 368, with limits
$715 a month
67th cheapest of 368
$91 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
70th of 369, with limits
$3,500 a month
132nd of 369, with limits
$312 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
142nd of 367, with limits
$1,772 a month
188th of 367, with limits
$156 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
142nd of 346, with limits
$2,354 a month
165th of 346, with limits
$78 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
317th of 338, with limits
$46,814 a month
60th of 338, with limits
$1,573 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
85th of 360, with limits
$1,184 a month
129th of 360, with limits
$81 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 Ubicloud fits: it rents Nvidia GPU VMs on request, and neither Buildkite hosted agents nor bochka have GPUs.
Can't run it93rd of 98, with limits
$795 a month
Can't run it
macOS agents
5 at once · 4 vCPU / 8 GB · 1,000 sessions of 20 min a month
Only Buildkite fits: it runs macOS on Apple M4 with Xcode, and Ubicloud and bochka run Linux only.
35th of 36, with limits
$2,310 a month
Can't run itCan't run it

Key features

FeatureBuildkiteUbicloudbochka
Kind of productCI build machines that run jobs from Buildkite pipelinesA general cloud VM you set up and run yourself, plus Postgres, Kubernetes and CI runnersAgent sandboxes you create and drive by API, CLI or SDK, on full VMs
IsolationA virtual machine per job; Apple Virtualization framework on macOSEvery VM is a full KVM guest (Cloud Hypervisor) with its own kernelFull VM with its own kernel on dedicated AMD Ryzen 9 9950X (Zen 5) hosts
How long a machine runsUp to 8 hours per job on Linux and 4 on macOS, longer on requestRuns until you stop or delete it; no maximum documentedNo session cap on paid plans; you set the time to live
Files after a run or stopThe VM and its data are destroyed; cache volumes keep chosen paths, best effort, up to 14 daysThe disk stays, but a stopped VM keeps billing as if it were runningThe whole disk is saved every minute and on stop; a stopped sandbox costs nothing
Snapshots and forkEach job gets its own copy of the last committed cache volumeStop the VM, capture a machine image (single disk up to 40 GiB), boot new VMs from itAutomatic snapshots every minute; fork a running sandbox in one call
Docker and nested virtualizationDocker on Linux; macOS has the Docker CLI but no daemon; /dev/kvm not documentedRoot over SSH, so Docker installs like on any Linux VM; nested virtualization not documentedDocker, root, systemd and /dev/kvm on every machine, documented
Reaching the machineNo exposed ports; a terminal into a running job through Buildkite's UI or bk job sshFree public IPv6, IPv4 for $3 a month; HTTPS means running TLS on the VM yourselfHTTPS URLs for up to 50 ports, token-protected; raw TCP; dedicated IPv4 or IPv6
Desktop and computer useBrowser-based desktop access to debug a running macOS job; no computer-use APINone; you install a desktop and browser on the VM yourself60fps Linux desktop with Chromium, computer use and browser control, embeddable stream
Coding agentsYou install Claude Code in your image or step and run it as a pipeline jobNone; you install and drive agents yourself, for example over SSHClaude Code, Codex and five more preinstalled, with a prompt, steer and events API
Keeping API keys outAnthropic proxy only: jobs call it with the job token and Buildkite sets the keyNo credentials proxy; secrets live on the VMCredentials proxy for model providers and any HTTPS API you register
Operating systems and chipsLinux (AMD64, ARM64 on Enterprise), macOS on Apple M4, Windows in private previewLinux VMs, arm64 CI runners, Nvidia GPU VMs on requestLinux on x86 only, no GPUs
CI pipelinesFull CI platform with pipelines, test tooling and your own self-hosted agentsManaged GitHub Actions runners, x64 and arm64, billed per minute of job timeNo pipeline service; run CI jobs on a sandbox yourself
Self-hostingYou can run Buildkite's agent on your own machines; the platform is managedThe whole stack is AGPL code you can run on your own serversManaged service only
RegionsUS East Coast onlyGermany, Finland and Virginia (US), plus GPUs in IstanbulEU only (Germany, Finland, France), with EU data residency
Every feature Battleships tracks (43)
FeatureBuildkiteUbicloudbochka
Full VM (own kernel)YesYesYes
Docker insideYesYesYes
Nested virtualizationNoNot publishedYes
RootNot publishedYesYes
SystemdNoNot publishedYes
Desktop GUIYesNoYes
BrowserYesNoYes
Computer-use APINoNoYes
SSHYesYesYes
Persistent diskYesYesYes
Pause/resumeNoNoYes
Automatic snapshotsYesNoYes
Fork/cloneYesYesYes
Live fork (no pause)NoNoYes
Memory forkNoNoNo
Custom image (Docker or snapshot)YesYesYes
≥24 h sessionsNoYesYes
Idle auto-stopYesNoNo
Wake on requestNoNoNo
HTTPS preview URLsNoNoYes
Raw TCP inboundNoNot publishedYes
Public IPv4NoYesNo
Egress allowlistNoNoNo
Secret proxyYesNoYes
Secret proxy for any APINoNoYes
Preinstalled agentsNoNoYes
Agent harness APINoNoYes
MCP serverYesNoNo
GPUNoYesNo
WindowsYesNoNo
Arm64YesYesNo
Self-hostingYesYesNo
BYOCNoYesNo
Open sourceNoYesNo
Scoped API keysNot publishedNot publishedYes
Spend limitsNot publishedNot publishedYes
Usage per sandbox (API)NoNoYes
Audit logsNot publishedYesNo
SSOYesYesNo
SOC 2YesYesNo
HIPAANoNoNo
EU data residencyNoYesYes
Zero data retentionNot publishedNot publishedYes

Performance

BuildkiteNot measured
UbicloudNot measured
bochka26.69 runs/s

We have no comparable measurement for Buildkite hosted agents or for Ubicloud: neither was part of the StarSling hpc-sandbox-benchmarks run. On that Node.js build-and-test benchmark at 4 vCPU / 8 GB, bochka did 26.69 runs per second on dedicated AMD Ryzen 9 9950X (Zen 5) hosts. On Ubicloud, results would depend on the family, since Standard VMs have dedicated CPU and Burstable VMs get half of each vCPU.

Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Buildkite and Ubicloud 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.

ScenarioBuildkite, a monthUbicloud, 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
$166 · Pro · with limits$22 · Usage$20 · $20/mo
One agent that never stops
4 vCPU / 8 GB, 50 GB disk, running 24/7 all month
$715 · Pro · with limits$91 · Usage$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
$7,677 · Pro · with limits$1,098 · Usage$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
$2,204 · Pro · with limits$156 · Usage$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
$4,787 · Pro · with limits$312 · Usage · with limits$2,000 · $2000/mo · with limits

Buildkite: Pro costs $30 per active user a month and includes 4,000 Linux vCPU minutes; after that Linux is $0.004 per vCPU minute, metered to the second. A 4 vCPU / 16 GB Linux agent comes to about $0.94 to $0.98 an hour in our scenarios.

Ubicloud: Ubicloud bills each VM per minute for as long as it exists, running or stopped, with no plan fee; a 4 vCPU / 16 GB standard-4 VM is $0.1248 an hour. A public IPv4 adds $3 a month.

Ubicloud: You pick a monthly plan from $20, and all of it becomes usage credit spent per second on running sandboxes. A stopped sandbox costs nothing and keeps its disk.

Limits in those scenarios

On Buildkite the job is the limit: it stops after 8 hours and only cache volume paths survive, so none of our agent scenarios fit, and Pro's 256 vCPU pool means 300 user sandboxes or 1,000 short jobs at once mostly wait in the queue. Ubicloud fits the agent scenarios, but a project runs 256 vCPU by default once verified, so big bursts need a raise from support, and its cheap burstable shape guarantees only half of each vCPU. On bochka the 1,000-job burst is queued too and needs more starts per day than the $2,000 plan allows.

ScenarioBuildkiteUbicloudbochka
One coding agent, workdays
  • different kind of product: CI runner
  • files survive a stop only in cache volume paths: packages installed elsewhere reset
  • egress price not published
None that biteNone that bite
One agent that never stops
  • different kind of product: CI runner
  • sessions end after 8 h: needs restarts to run 24/7
  • files survive a stop only in cache volume paths: packages installed elsewhere reset
  • egress price not published
None that biteNone that bite
50 agents in parallel
  • different kind of product: CI runner
  • files survive a stop only in cache volume paths: packages installed elsewhere reset
  • egress price not published
None that biteNone that bite
Sandboxes for your users
  • Pro: max 128 concurrent
  • Pro: max 256 vCPU running at once (needs 600)
  • different kind of product: CI runner
  • egress price not published
None that biteNone that bite
1,000 short jobs at once
  • Pro: max 128 concurrent
  • Pro: max 256 vCPU running at once (needs 2,000)
  • different kind of product: CI runner
  • egress price not published
  • burstable CPU: 50% of each vCPU guaranteed, throttled above that
  • 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 Buildkite when

you need a CI platform with pipelines, macOS on Apple M4 for iOS builds, Windows, or Linux build machines larger than 16 vCPU.

  • A whole CI platform. Pick it if you want managed CI with pipelines, test tooling and cache volumes, mixing hosted and self-hosted agents.
  • macOS on Apple M4, and Windows. Pick it if you build iOS or Mac apps: macOS runs on Apple M4 with current Xcode, and Windows is in preview.
  • Big build machines. Pick it for heavy builds: Enterprise Linux shapes go up to 64 vCPU and 256 GB, with ARM64 shapes too.

Use Ubicloud when

you want an open source cloud you can also run yourself, GPU VMs, cheap GitHub Actions runners, a US region, or a long-lived VM next to managed Postgres.

  • Open source you can run yourself. Pick it if you want to run the cloud on your own servers: the whole stack is AGPL code.
  • GPUs on request. Pick it if your work needs models on GPUs: it rents Nvidia A100, B200 and RTX PRO 6000 VMs once enabled.
  • Long-lived VMs next to a whole cloud. Pick it if a VM must stay up next to managed Postgres, Kubernetes and cheap GitHub Actions runners, or run in the US.

Where bochka fits

Buildkite and Ubicloud are not agent sandboxes: one runs CI jobs, the other rents plain cloud VMs. If what you are really running is agents, bochka gives each one a full Linux VM that keeps its disk, stops for free, and comes with coding agents, a desktop and HTTPS ports built in.

One machine that keeps its state, and free stops

A Buildkite job VM is destroyed after at most 8 hours, keeping only cache volume paths. A Ubicloud VM keeps its disk but bills while stopped, so you pay for idle time or delete it and lose the disk.

Coding agents you drive from outside

On Buildkite an agent is a pipeline step you read through logs, and on Ubicloud you install and supervise it over SSH. bochka preinstalls Claude Code, Codex and more, with a prompt, steer and events API and a credentials proxy for any HTTPS API.

A desktop and URLs people can reach

Buildkite hosted agents expose no ports, and Ubicloud makes you run TLS and a desktop on each VM yourself. bochka streams a 60fps desktop for computer use and serves up to 50 ports on HTTPS URLs, plus raw TCP.

Use bochka when your agents work on Linux for hours or days: a full VM that keeps its disk and stops for free, Docker and /dev/kvm, a 60fps desktop, HTTPS ports, and coding agents you drive from outside. Compare it one to one: bochka vs Buildkite and bochka vs Ubicloud.

Questions people ask

Is Buildkite cheaper than Ubicloud?

For a machine that stays up, no: one agent running all month comes to $715 on Buildkite and $91 on Ubicloud, and 50 agents in parallel to $7,677 against $1,098. On bochka those come to $26 and $317. Buildkite's price also buys a full CI platform, which Ubicloud's VMs do not.

Which is faster, Buildkite or Ubicloud?

We have no comparable measurement for either one. bochka did 26.69 runs per second on the StarSling Node.js benchmark at 4 vCPU / 8 GB. On Ubicloud, Standard VMs have dedicated CPU while Burstable VMs are throttled above half of each vCPU.

Can Buildkite and Ubicloud run Docker?

Yes. Buildkite runs Docker on its Linux hosted agents, and macOS has the Docker CLI but no daemon. On Ubicloud you have root over SSH, so Docker installs like on any Linux VM. bochka has Docker, systemd and /dev/kvm on every machine.

Can I run Claude Code on Buildkite or Ubicloud?

On Buildkite you install it in your image or step and run it as a pipeline job, which ends when the job ends. On Ubicloud you install it on a VM and drive it over SSH. On bochka it is preinstalled, and you prompt and steer it through an API.

Do I pay for a stopped machine?

On Ubicloud, yes: a stopped VM keeps billing as if it were running until you delete it. Buildkite bills only while a job runs, but the VM is destroyed after the job. On bochka a stopped sandbox costs nothing and keeps its disk.

Where do Buildkite and Ubicloud run?

Buildkite hosted agents run only in US East Coast data centers. Ubicloud runs VMs in Germany, Finland and Virginia, plus GPU VMs in Istanbul. bochka runs only in the EU, in Germany, Finland and France.

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.