smol machines vs Agent 37

smol machines gives every machine its own microVM kernel, from an open-source engine you can also run on your own servers, and it can branch a running machine with its memory. Agent 37 hosts one always-on agent per user in lighter gVisor sandboxes that sleep when idle, keep their memory, and cost less per hour.

The companies and products

smol machines

smol machines makes fast, isolated Linux microVMs that run the same way on your laptop, in their hosted cloud, or on your own servers.

The core is smolvm, an open-source microVM engine built on libkrun, where each machine has its own guest kernel. smol cloud is the paid hosted service that runs fleets of those machines behind a REST API and Node, Python and Rust SDKs. It is built for developers who want one VM model from local development to production, with live branching of running machines.

Agent 37

Agent 37 hosts AI agents, one isolated, always-on sandbox per user, behind one API.

You create an instance from a template (Hermes, OpenClaw, Claude Code, Codex, OpenCode, Pi, Grok or your own Docker image) and talk to it through a chat API, files, exec, SSH and HTTPS URLs. The default instance is a container enforced by gVisor; a VM type gives a full Linux machine with its own kernel for Docker, Kubernetes and Android emulators. It is built for companies that give each of their customers an agent.

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. “12th cheapest of 345” means 11 of the other 344 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 workloadsmol machines: price rankAgent 37: price rankbochka: price rank
Software factory
100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month
smol machines runs Docker in every machine; Agent 37 needs its VM type for Docker, which bills compute at 2.5 times the default rate; bochka also adds /dev/kvm and systemd.
73rd of 367, with limits
$604 a month
2nd cheapest of 367
$551 a month
3rd cheapest of 367
$634 a month
Always-on AI employees
50 machines 24/7 · 2 vCPU / 4 GB
Agent 37 is built for this: one assistant per user that sleeps when idle, keeps its memory and wakes on the next message; bochka adds a 60fps desktop and keys kept outside.
148th of 366, with limits
$1,038 a month
Cheapest of 366
$279 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
Both fit short code runs: Agent 37 has small cheap default sandboxes, and smol machines has a one-minute minimum and a /code endpoint for Python and JavaScript.
12th cheapest of 345
$140 a month
Cheapest of 345
$22 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
smol machines holds up to 1,000 machines on Startup, while Agent 37 stops at 200 instances on self-serve, counting sleeping ones; bochka ranks first here with a desktop per user.
7th cheapest of 361
$531 a month
30th of 361, with limits
$79 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
smol machines can branch a running machine with its memory and processes, so many rollouts start from one prepared state; Agent 37 has no fork.
111th of 360, with limits
$6,978 a month
6th of 360, with limits
$363 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
36th cheapest of 364
$670 a month
90th of 364, with limits
$58 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
66th cheapest of 377
$514 a month
2nd cheapest of 377
$84 a month
4th cheapest of 377
$86 a month
24/7 dev boxes
1 machine 24/7 · 4 vCPU / 8 GB
Agent 37 is cheap to keep around the clock and takes SSH; smol machines has no SSH, and bochka gives a full VM with systemd, SSH and raw TCP.
216th of 368, with limits
$29 a month
3rd cheapest of 368
$12 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
Agent 37 offers a noVNC desktop through a template, smol machines has no hosted desktop, and bochka streams a 60fps desktop with computer use built in.
90th of 369, with limits
$156 a month
Cheapest of 369
$53 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
176th of 367, with limits
$136 a month
48th of 367, with limits
$29 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
241st of 346, with limits
$242 a month
Cheapest of 346
$32 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
148th of 338, with limits
$4,344 a month
36th of 338, with limits
$648 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
Agent 37 is cheap per attempt but has no fork; smol machines can branch a running machine, and bochka can fork a running sandbox to try many paths at once.
252nd of 360, with limits
$377 a month
Cheapest of 360
$43 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
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
Can't run itCan't run itCan't run it

Key features

Featuresmol machinesAgent 37bochka
Isolationlibkrun microVM with its own guest kernelgVisor by default; full VM as an opt-in instance typeFull VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts
Docker insideYes, with Docker data on the machine's ext4 diskOnly on the VM type, at 2.5x the default compute rateYes, in every sandbox
Nested virtualizationNot exposed on hosted machines; a local smolvm flag only/dev/kvm on the VM type, with a ready Android template/dev/kvm in every sandbox, Android emulator works
Shell accessCommand API, sessions and a WebSocket terminal capped at one hour per connection; no SSHExec API and SSH through a WebSocket tunnelSSH, plus a command API and terminal
Idle and wakeA command or terminal starts a stopped machine; idle apps wake on the next requestOpt-in auto-sleep after a quiet period (default 15 minutes), wakes on the next requestNo idle timer; a time limit you set, or no limit
Memory keptCheckpoints capture RAM to a file you can restoreMemory checkpointed on auto-sleep, processes resume when the restore worksDisk kept; a resume reboots the machine
ForkBranch a running machine with its memory and processesNo fork; daily backups plus one on-demand backup, restored in place onlyFork a running sandbox with its disk; named snapshots as shareable templates
Stopped machinesFilesystem survives a stop; disk keeps billingDisk kept; disk keeps billing while stopped or asleepDisk saved every minute and on stop; a stopped sandbox costs nothing
Desktop and browserNo hosted desktop; a guide shows running your own ChromiumnoVNC desktop through a template build or the Ubuntu VM templateLinux desktop streamed at 60fps, Chromium and computer use built in
Built-in agentsRegistry images with the Codex CLI and the Harbor eval harness, run through the command APIHermes, OpenClaw, Claude Code, Codex, Grok, OpenCode, Pi, with a chat API per instanceSeven agents preinstalled, with a prompt, steer and events API
Keeping API keys outCloud secrets are env vars the guest can readManaged LLM, search and Composio through a per-instance token; your own keys go in as env varsCredentials proxy for model providers and any HTTPS API; switch a credential to another account when credits run out
Inbound accessUp to 16 published ports through a URL or an authenticated route; no dedicated IPHTTPS URL per port, signed URLs, custom domains; no public IPHTTPS URLs for up to 50 ports, raw TCP, dedicated IPv4 or IPv6
Outbound rulesBlocked, open, or an allowlist of hosts and CIDR rangesOpen internetOpen internet, no provider-side allowlist
Where it runsNo region choice in the cloud API; open-source smolvm runs on your own serversDedicated servers in the United StatesEU only (Germany, Finland, France), with EU data residency
Every feature Battleships tracks (43)
Featuresmol machinesAgent 37bochka
Full VM (own kernel)YesNoYes
Docker insideYesNoYes
Nested virtualizationNoNoYes
RootNot publishedYesYes
SystemdNot publishedNot publishedYes
Desktop GUINoYesYes
BrowserNoYesYes
Computer-use APINoYesYes
SSHNoYesYes
Persistent diskYesYesYes
Pause/resumeYesYesYes
Automatic snapshotsNoYesYes
Fork/cloneYesYesYes
Live fork (no pause)YesYesYes
Memory forkYesNoNo
Custom image (Docker or snapshot)YesYesYes
≥24 h sessionsYesYesYes
Idle auto-stopYesYesNo
Wake on requestYesYesNo
HTTPS preview URLsYesYesYes
Raw TCP inboundNot publishedNot publishedYes
Public IPv4NoNoNo
Egress allowlistYesNoNo
Secret proxyNoYesYes
Secret proxy for any APINoNoYes
Preinstalled agentsYesYesYes
Agent harness APINoYesYes
MCP serverYesNoNo
GPUNoNoNo
WindowsNoNoNo
Arm64YesNoNo
Self-hostingYesNoNo
BYOCYesNoNo
Open sourceYesNoNo
Scoped API keysNot publishedNot publishedYes
Spend limitsYesYesYes
Usage per sandbox (API)YesYesYes
Audit logsNot publishedNot publishedNo
SSOYesNoNo
SOC 2NoYesNo
HIPAANoNoNo
EU data residencyNoNoYes
Zero data retentionNot publishedNot publishedYes

Performance

smol machinesNot measured
Agent 37Not measured
bochka26.69 runs/s

There is no comparable CPU measurement for smol machines or Agent 37: neither has been run on the StarSling hpc-sandbox-benchmarks test. bochka did 26.69 runs per second on that Node.js build-and-test loop at 4 vCPU / 8 GB. Agent 37 says its default instances share host resources and sells dedicated cores at 4x the rate.

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

Scenariosmol machines, a monthAgent 37, 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
$25 · Standard$6 · Wallet (any top-up)$20 · $20/mo
One agent that never stops
4 vCPU / 8 GB, 50 GB disk, running 24/7 all month
$93 · Standard$12 · Wallet (any top-up)$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,139 · Pro$329 · Wallet ($100 lifetime top-ups)$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
$465 · Startup$33 · Wallet ($250 lifetime top-ups) · 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
$1,389 · Startup$73 · Wallet ($250 lifetime top-ups) · with limits$2,000 · $2000/mo · with limits

smol machines: smol cloud charges a base fee for every hour a machine runs, plus the CPU and memory the guest actually uses, with a one-minute minimum and disk billed even while stopped. Pro ($20 a month) and Startup ($150 a month) are fees on top of usage, not credit.

Agent 37: A prepaid wallet with no plan fee, metered per minute on allocated size: $0.80 per vCPU and $0.70 per GB of RAM per month while running, and $0.09 per GB of disk per month even while stopped or asleep. VM compute costs 2.5x and Performance compute 4x.

Agent 37: Plans start at $20 a month, and the whole fee is usage credit. You pay per second while a sandbox runs, and a stopped sandbox costs nothing and keeps its disk.

Limits in those scenarios

smol machines caps machines by plan: 20 on Standard, 100 on Pro and 1,000 on Startup, with stopped machines counting too, so 1,000 short jobs at once needs Startup. Agent 37 stops at 200 instances on self-serve, counting sleeping and stopped ones, so it cannot hold 300 user sandboxes or 1,000 jobs at once without emailing the founder. Agent 37 does not publish an egress price. bochka queues starts above 90 a minute, which is what stops it in the 1,000-at-once burst.

Scenariosmol machinesAgent 37bochka
One coding agent, workdaysNone that bite
  • egress price not published
None that bite
One agent that never stopsNone that bite
  • egress price not published
None that bite
50 agents in parallelNone that bite
  • egress price not published
None that bite
Sandboxes for your usersNone that bite
  • max 200 concurrent
  • egress price not published
None that bite
1,000 short jobs at onceNone that bite
  • max 200 concurrent
  • shared vCPUs on this tier: heavy, sustained CPU use can be slowed by other tenants
  • 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 smol machines when

you want one open-source VM engine from your laptop to your own servers, need outbound allowlists, or fan out branches of a running machine with its memory.

  • Open source, from laptop to your own servers. Teams that want one VM engine locally, in a hosted cloud and on their own servers can use open-source smolvm.
  • Live branches with memory. Useful for RL and test fan-out: branch a running machine with its memory and processes into many children.
  • Outbound allowlists and arm64. Teams that must limit which hosts a machine reaches, or need arm64 images, get both on smol cloud.

Use Agent 37 when

you host one mostly idle assistant per customer in the US that should sleep with its memory kept and wake on the next message, at a low hourly rate.

  • Sleeps when idle and keeps its memory. Useful for assistants that sit idle most of the day: an instance sleeps, keeps its memory and wakes on the next message.
  • Low cost for one agent per user. Teams hosting many small, mostly idle agents pay the lowest bill here in most scenarios, with no plan fee.
  • Bring a Dockerfile, pick dedicated cores. Agent 37 builds templates from your own Docker image, and sells a Performance type on dedicated cores.

Where bochka fits

If your agents do real work for hours, like installs, builds, tests, Docker and emulators, look at bochka. Every sandbox is a full VM with systemd, SSH, /dev/kvm and a 60fps desktop, and real API keys stay outside the machine for any HTTPS API.

Docker, emulators and SSH in every sandbox

smol cloud has no SSH and no nested virtualization, so an Android emulator cannot start. Agent 37 has /dev/kvm and Docker only on its VM type, which bills 2.5 times the compute and has no init system.

A desktop ready for computer use

On smol cloud you build and run your own desktop and screen stream before an agent can click anything. Agent 37 adds a noVNC desktop through a template build. bochka streams a 60fps desktop with Chromium built in.

Keys that never enter the sandbox

On smol cloud secrets are env vars the guest can read, and on Agent 37 your own keys sit inside the instance too, so one prompt injection can leak them. bochka's proxy keeps them outside for any HTTPS API.

Use bochka when your agents need a whole machine for real work: Docker, emulators, SSH, a desktop and a browser, with coding agents you drive from outside and keys that never enter the sandbox. Compare it one to one: bochka vs smol machines and bochka vs Agent 37.

Questions people ask

Is smol machines cheaper than Agent 37?

No, not in the scenarios on this page. Agent 37 comes out lower in all five, for example $12 against $93 a month for one agent running 24/7. Agent 37 cannot hold 300 or 1,000 at once on self-serve, though, while smol machines on Startup can.

Which is faster, smol machines or Agent 37?

Neither has a published result on the StarSling hpc-sandbox-benchmarks CPU test, so there is no fair comparison. bochka did 26.69 runs per second there. smol machines publishes a boot time under 200ms for smolvm, which is about start time, not CPU speed.

Can smol machines and Agent 37 run Docker?

smol machines runs Docker inside every machine, with Docker data on the ext4 disk. Agent 37 runs Docker only on its VM type, which bills compute at 2.5x; the default gVisor type cannot run a Docker daemon. bochka runs Docker in every sandbox.

Is Agent 37 a VM like smol machines?

By default no: an Agent 37 instance is a container enforced by gVisor, and a full VM is an opt-in type. Every smol machine is a libkrun microVM with its own kernel, and every bochka sandbox is a full VM.

Can either fork a running machine?

smol machines can branch a running machine into children that keep its memory and processes. Agent 37 has no fork; its backups restore in place only. bochka forks a running sandbox with its disk.

Where do smol machines and Agent 37 run?

Agent 37 runs on dedicated servers in the United States. smol cloud has no region choice in its API, but smolvm can run on your own servers. bochka runs only in the EU, with EU data residency.

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.