Runpod vs Baseten
Runpod rents you GPU or CPU containers by the second, with SSH and root, and you run whatever you like on them. Baseten is an inference cloud: you package a model and it runs it as replicas that scale with traffic, down to zero.
The companies and products
Runpod
Runpod is a GPU cloud for AI work: you rent GPU or CPU pods by the second, run serverless endpoints, or book multi-node GPU clusters.
A Runpod Pod is a container started from a Docker image, with a GPU or CPU-only, SSH, a web terminal and Jupyter. Serverless endpoints run your handler in workers that scale to zero and start on a request, and Instant Clusters join 2 to 8 nodes of 8 GPUs each. It is built for teams that train, fine-tune and serve models, not as a sandbox API for agents, so this page compares the parts that overlap: CPU pods as machines for agent work.
- Founded
- 2022
Baseten
Baseten is an inference cloud: it runs AI models on GPUs for production apps, and sells hosted open models and training.
You package a model with Truss, its open-source format, or bring a Docker image, and Baseten runs it as replicas on Kubernetes that scale up with traffic and down to zero. It also sells Model APIs (open models priced per token) and training jobs on the same GPUs. Sandboxes, isolated environments where an agent runs commands and works with files, are in private preview; this page compares bochka with both the CPU instances and the sandbox preview.
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. “32nd cheapest of 377” means 31 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 workload | Runpod: price rank | Baseten: price rank | bochka: price rank |
|---|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month A coding agent that runs docker compose fails on both: Runpod pods cannot run Docker inside and Baseten containers run as a non-root user. | 203rd of 367, with limits $2,362 a month | 216th of 367, with limits $2,619 a month | 3rd cheapest of 367 $634 a month |
| Always-on AI employees 50 machines 24/7 · 2 vCPU / 4 GB | 211th of 366, with limits $2,290 a month | 242nd of 366, with limits $3,258 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 Runpod Serverless workers scale to zero and bill per second, which makes it the cheaper fit for short code runs; Baseten also pays for cold starts and 15 idle minutes per burst by default. | 227th of 345, with limits $135 a month | 319th of 345, with limits $1,856 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 Neither offers a sandbox API you can open to your users at scale: Runpod does not publish a concurrency limit, and Baseten's sandbox preview runs 10 at once by default. | 83rd of 361, with limits $733 a month | 277th of 361, with limits $1,868 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 Runpod handles rollouts far better than Baseten, which is built to serve models rather than run many short environments; bochka adds full VMs with Docker but its start limits make big bursts a compromise. | 53rd of 360, with limits $3,068 a month | 322nd of 360, with limits $31,140 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 | 127th of 364, with limits $614 a month | 297th of 364, with limits $1,609 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 Runpod fits plain build and test jobs on CPU pods, Baseten's model containers are a poor fit for CI, and bochka adds Docker inside for jobs that start containers. | 32nd cheapest of 377 $301 a month | 320th of 377, with limits $1,119 a month | 4th cheapest of 377 $86 a month |
| 24/7 dev boxes 1 machine 24/7 · 4 vCPU / 8 GB A Runpod pod keeps only /workspace after a stop and a Baseten replica starts fresh from its image, while bochka keeps the whole disk. | 161st of 368, with limits $93 a month | 170th of 368, with limits $130 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 Neither Runpod nor Baseten has a desktop or computer-use API; bochka streams a 60fps desktop with Chromium and computer use. | 189th of 369, with limits $614 a month | 294th of 369, with limits $1,799 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 | 224th of 367, with limits $307 a month | 318th of 367, with limits $1,194 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 | 225th of 346, with limits $202 a month | 220th of 346, with limits $183 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 | 138th of 338, with limits $4,035 a month | 126th of 338, with limits $3,654 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 | 180th of 360, with limits $161 a month | 254th of 360, with limits $381 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 Both fit GPU eval jobs: Runpod at $1,001 a month and Baseten at $1,625 in our scenario, while bochka has no GPUs. | 13th cheapest of 98 $1,001 a month | 24th cheapest of 98 $1,625 a month | Can't run it |
| macOS agents 5 at once · 4 vCPU / 8 GB · 1,000 sessions of 20 min a month | Can't run it | Can't run it | Can't run it |
Key features
| Feature | Runpod | Baseten | bochka |
|---|---|---|---|
| Kind of product | GPU cloud: rent pods, serverless endpoints and multi-node clusters | Inference cloud: model deployments, Model APIs per token and training; sandboxes in private preview | Sandboxes for AI agents: full VMs with coding agents, a desktop and hosting ready |
| GPUs | Dozens of Nvidia and AMD types, from RTX A4000 to B300 and MI300X, plus clusters of 2 to 8 nodes | Nvidia T4, L4, A10G, A100, H100, H200, B200 and RTX PRO 6000, up to 8 per instance, plus multi-node | None |
| How you run work | A container from your Docker image, with SSH, a web terminal and Jupyter | A model packaged with Truss or your own Docker image, served behind an HTTPS endpoint | A full Linux VM you drive by API, SSH or the coding agents inside |
| Isolation | Containers that share the host kernel | Kubernetes containers in a dedicated namespace per customer; GPUs never shared across users | Every sandbox is a full VM with its own kernel |
| Root and Docker inside | Root in the container; no Docker or Docker Compose inside a pod | Model containers run as the non-root app user; Docker inside is not documented | Root, systemd, Docker, Docker Compose and /dev/kvm on every machine |
| Scale to zero | Serverless workers scale to zero and start on a request; pods run until you stop them | Deployments scale to zero and start on the next request; 15 idle minutes before scale-down by default | Sandboxes stop and resume by API; no start on an incoming request |
| Files after a stop | Only /workspace is kept, and billed while stopped; the container disk is cleared | Replicas start fresh from the image; preview sandboxes keep files on standby but are deleted after 7 days by default | The whole disk is kept, with snapshots every minute and on stop; a stopped sandbox costs nothing |
| Fork | No pod fork or snapshot; templates save the image and settings | No fork or clone; new replicas cold-start from the image | Fork a running sandbox into new ones with the same disk |
| Billing | Per second from a prepaid balance, disk on top; default spend limit of $80 an hour | Per minute, partial minutes rounded up, including image builds and cold starts; no plan fee on Basic | Monthly plan from $20 that becomes usage credit, spent per second |
| Reaching the machine | Up to 10 HTTP ports on a public proxy URL with no built-in auth; TCP on a public IP | An HTTPS API endpoint per deployment; SSH once enabled for your organization | Token-protected HTTPS URLs for up to 50 ports, raw TCP, dedicated IPv6 or IPv4 |
| Outbound network | Open internet, no ingress or egress fees | TCP 443 and 80 by default; per-deployment IP and domain allowlists once enabled | Open internet on every plan; no provider-side allowlist |
| Desktop and coding agents | No desktop; an MCP server lets your local agent manage Runpod | No desktop; Baseten Switch points Claude Code or Codex on your laptop at its Model APIs | 60fps desktop with computer use, and Claude Code, Codex and OpenCode inside with a prompt, steer and events API |
| Keeping keys out | Secrets passed into the pod as environment variables | Secrets passed into the model as arguments or files under /secrets | AI credentials proxy for model providers and any HTTPS API you register |
| Regions | 24 documented data centers in the US, Canada, Europe and Australia | US and EU for GPU deployments; your own AWS, GCP or OCI account on Enterprise | EU only: Germany, Finland, France |
Every feature Battleships tracks (43)
| Feature | Runpod | Baseten | bochka |
|---|---|---|---|
| Full VM (own kernel) | No | No | Yes |
| Docker inside | No | No | Yes |
| Nested virtualization | No | No | Yes |
| Root | Yes | Not published | Yes |
| Systemd | No | Not published | Yes |
| Desktop GUI | No | No | Yes |
| Browser | No | No | Yes |
| Computer-use API | No | No | Yes |
| SSH | Yes | Yes | Yes |
| Persistent disk | Yes | No | Yes |
| Pause/resume | Yes | No | Yes |
| Automatic snapshots | No | No | Yes |
| Fork/clone | No | No | Yes |
| Live fork (no pause) | No | No | Yes |
| Memory fork | No | No | No |
| Custom image (Docker or snapshot) | Yes | Yes | Yes |
| ≥24 h sessions | Yes | Yes | Yes |
| Idle auto-stop | No | Yes | No |
| Wake on request | Yes | Yes | No |
| HTTPS preview URLs | Yes | Yes | Yes |
| Raw TCP inbound | Yes | Not published | Yes |
| Public IPv4 | Yes | No | No |
| Egress allowlist | No | Yes | No |
| Secret proxy | No | No | Yes |
| Secret proxy for any API | No | No | Yes |
| Preinstalled agents | No | No | Yes |
| Agent harness API | No | No | Yes |
| MCP server | Yes | Yes | No |
| GPU | Yes | Yes | No |
| Windows | No | No | No |
| Arm64 | No | No | No |
| Self-hosting | No | Yes | No |
| BYOC | No | Yes | No |
| Open source | No | No | No |
| Scoped API keys | Yes | Not published | Yes |
| Spend limits | Yes | No | Yes |
| Usage per sandbox (API) | No | Yes | Yes |
| Audit logs | Yes | Not published | No |
| SSO | Yes | Yes | No |
| SOC 2 | Yes | Yes | No |
| HIPAA | Yes | Yes | No |
| EU data residency | Yes | Yes | Yes |
| Zero data retention | Not published | Not published | Yes |
Performance
There is no comparable CPU measurement for Runpod or Baseten: neither was in the public StarSling benchmark run we use. bochka did 26.69 Node.js build-and-test runs per second at 4 vCPU / 8 GB in that run of 2026-09-29, on dedicated AMD Ryzen 9 9950X (Zen 5) hosts.
Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Runpod and Baseten 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.
| Scenario | Runpod, a month | Baseten, a month | bochka, 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 | $26 · Pay-as-you-go (prepaid credits) · with limits | $34 · Basic · with limits | $20 · $20/mo |
| One agent that never stops 4 vCPU / 8 GB, 50 GB disk, running 24/7 all month | $93 · Pay-as-you-go (prepaid credits) · with limits | $136 · Basic · 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 | $1,156 · Pay-as-you-go (prepaid credits) · with limits | $1,701 · Basic · 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 | $307 · Pay-as-you-go (prepaid credits) · with limits | $1,246 · Basic · 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 | $614 · Pay-as-you-go (prepaid credits) · with limits | $6,228 · Basic · with limits | $2,000 · $2000/mo · with limits |
Runpod: Runpod bills a running pod per second from a prepaid balance, with disk on top, and a stopped pod keeps billing its /workspace volume at double the running rate. CPU pod rates come from Runpod's public CPU catalogue, since the pricing page lists GPUs only.
Baseten: Baseten bills per minute, partial minutes rounded up, from image build and cold start until the replica stops, with no plan fee on Basic. The scenarios use its CPU instances, whose smallest fit for 8 GB is 4 vCPU / 16 GiB, and sandbox preview pricing is not published.
Baseten: 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 whole disk.
Limits in those scenarios
Runpod does not publish how many pods can run at once; it caps spend at $80 an hour by default instead, so 300 user sandboxes or 1,000 jobs at once are not confirmed. Baseten's CPU instances have no persistent disk, so files are lost whenever a replica stops, and its sandbox preview runs 10 at once by default. Runpod's budget is a hard stop at $0 balance, while Baseten's monthly budget never stops dedicated deployments. On bochka the 1,000-job burst is queued by start limits and needs more starts per day than the $2,000 plan allows.
| Scenario | Runpod | Baseten | bochka |
|---|---|---|---|
| One coding agent, workdays |
|
| None that bite |
| One agent that never stops |
|
| None that bite |
| 50 agents in parallel |
|
| None that bite |
| Sandboxes for your users |
|
| None that bite |
| 1,000 short jobs at once |
|
|
|
Which one should you use?
Use Runpod when
you want raw GPU or CPU machines with SSH and root, the widest choice of cards, per-second billing, or clusters of several nodes.
- The widest choice of GPUs. Useful if you want a specific card: Runpod rents dozens of Nvidia and AMD GPU types, from RTX cards to B300 and MI300X.
- A machine you control. Useful if you want SSH, root and Jupyter on your own container, not a serving framework, billed by the second.
- More regions and shared volumes. Useful if you need Canada or Australia, or many pods reading one network volume at the same time.
Use Baseten when
you want to ship a model to production and have the platform scale it, call hosted open models per token, or run in your own cloud account.
- Model serving handled for you. Useful if you ship a model to production: Baseten runs it as replicas that scale up with traffic and down to zero.
- Hosted open models per token. Useful if you just want to call open models: Baseten's Model APIs bill per token with no deployment to manage.
- Your own cloud and egress allowlists. Useful if workloads must run in your own AWS, GCP or OCI account, or be limited to listed outbound hosts.
Where bochka fits
Runpod and Baseten are GPU clouds, and bochka is not one: it has no GPUs. If what you are really running is agents that write, build and test code, both put you in a container that was made for models. bochka gives each agent a full VM instead, and you can keep the GPU part on Runpod or Baseten.
A full VM with Docker inside
A Runpod pod cannot run Docker or Docker Compose, and a Baseten container runs as a non-root user, so an agent's docker compose up fails on both. bochka gives every sandbox its own kernel, root, systemd, Docker and /dev/kvm.
A disk that stays, and forks
Runpod keeps only /workspace after a stop, so apt installs vanish, and Baseten replicas start fresh from the image. Baking it all into an image means a rebuild for every change. bochka keeps the whole disk, saves it every minute and forks a running sandbox.
Agents and a desktop built in
On both, the agent tools run on your laptop and point at their platform, and neither has a desktop. bochka ships Claude Code, Codex and OpenCode inside each sandbox, driven from outside, with a 60fps desktop and a credentials proxy that keeps keys off the machine.
Use bochka when the work is agents writing and running code: full VMs with Docker, a disk that survives and forks, a desktop and coding agents built in, with GPUs left to Runpod or Baseten. Compare it one to one: bochka vs Runpod and bochka vs Baseten.
Questions people ask
Is Runpod cheaper than Baseten?
In our scenarios, yes. GPU eval jobs come to $1,001 a month on Runpod and $1,625 on Baseten, and one CPU agent running all month is $93 against $136. Baseten's CPU shape has twice the memory, and bochka does that agent for $26 a month.
Which is faster, Runpod or Baseten?
We have no comparable CPU measurement for either one. bochka did 26.69 Node.js build-and-test runs per second at 4 vCPU / 8 GB in the public StarSling run. For GPU work, speed depends on the card you pick, and Runpod offers more types.
Can Runpod or Baseten run Docker inside?
Runpod's docs say you cannot start your own Docker or use Docker Compose on a pod. Baseten does not document Docker inside, and its model containers run as a non-root user. Every bochka sandbox has root, Docker and Docker Compose.
Do both scale to zero?
Yes, for serving. Runpod Serverless workers and Baseten deployments both scale to zero and start on a request. Baseten keeps a replica running 15 idle minutes by default before it scales down, and bills the cold start.
Does Baseten have sandboxes for AI agents?
Yes, in private preview: you ask for access, an organization runs up to 10 at once by default, and a sandbox is deleted with its files after 7 days by default. Runpod has no sandbox product; you run agents in a pod yourself.
Where do Runpod and Baseten run?
Runpod documents 24 data centers in the US, Canada, Europe and Australia. Baseten runs GPU deployments in the US or the EU, and on Enterprise in your own cloud account. bochka runs only in the EU, in Germany, Finland and France.
Try bochka
Install the CLI, then run bochka new.
Product preview