Runloop vs smol machines
Runloop is a hosted devbox platform with Dockerfile blueprints, agent gateways that hide API keys and a desktop for computer use. smol machines is an open-source microVM engine with a paid cloud, strongest at branching a running machine with its memory and running the same VM on your own servers.
The companies and products
Runloop
Runloop is a US platform of sandboxes, called devboxes, for building, running and testing AI coding agents.
You get Linux devboxes built from Dockerfile-style blueprints, disk snapshots, HTTPS tunnels, agent gateways that hide API keys, and Axons, event streams that drive agents such as Claude Code. Each devbox runs in a micro-VM on Runloop's own bare-metal hypervisor, with a container layer inside. It is built for teams shipping coding agents, plus evaluation and RL fine-tuning work on the Enterprise plan.
- Compliance
- SOC 2 Type 2
- Architectures
- x86_64 and arm64 base blueprints
- Own-cloud deploy
- Deploy to VPC on AWS, GCP and Azure (Enterprise)
- Regions
- Not documented or selectable
- Company
- Runloop AI, Inc.
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.
- Uptime SLA
- 99.95% on Pro, Startup and Enterprise
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. “20th cheapest of 367” means 19 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 workload | Runloop: price rank | smol machines: price rank | boat: price rank |
|---|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month | 20th cheapest of 367 $8,152 a month | 73rd of 367, with limits $604 a month | 3rd cheapest of 367 $634 a month |
| Always-on AI employees 50 machines 24/7 · 2 vCPU / 4 GB | 32nd cheapest of 366 $10,194 a month | 148th of 366, with limits $1,038 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 smol machines fits short code runs well, with a one-minute minimum and branches of a warm machine; boat's start limits queue very large bursts. | 44th cheapest of 345 $525 a month | 12th cheapest of 345 $140 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 boat ranks 1st and smol machines 7th: both keep a stopped user's files, and smol starts a stopped machine on the next command. | 26th cheapest of 361 $3,301 a month | 7th cheapest of 361 $531 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 Runloop ranks 4th for RL rollouts, with no published start limits and RL fine-tuning on Enterprise; smol machines can branch one prepared machine with its memory. | 4th cheapest of 360 $15,922 a month | 111th of 360, with limits $6,978 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 | 81st cheapest of 364 $2,562 a month | 36th cheapest of 364 $670 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 All three run Docker inside; boat's CPUs ran about three times as many build loops a second as Runloop's, and smol cloud is not measured. | 121st cheapest of 377 $1,554 a month | 66th cheapest of 377 $514 a month | 4th cheapest of 377 $86 a month |
| 24/7 dev boxes 1 machine 24/7 · 4 vCPU / 8 GB Runloop has no public IP or raw TCP, and smol machines has no SSH, so both are compromises for a 24/7 dev box. | 113th cheapest of 368 $410 a month | 216th of 368, with limits $29 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 Runloop ships a desktop and browser your agent can control, smol cloud has none, and boat streams its desktop at 60fps. | 39th cheapest of 369 $2,306 a month | 90th of 369, with limits $156 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 Runloop and boat ship a browser ready for agents; on smol machines you run your own Chromium inside the machine. | 40th cheapest of 367 $1,153 a month | 176th of 367, with limits $136 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 | 68th cheapest of 346 $781 a month | 241st of 346, with limits $242 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 | 266th of 338, with limits $15,611 a month | 148th of 338, with limits $4,344 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 Runloop and smol machines can both lock outbound traffic to an allowlist; boat gives each sandbox a full kernel with nested virtualization. | 10th cheapest of 360 $770 a month | 252nd of 360, with limits $377 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 it | Can't run it | 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 | Runloop | smol machines | boat |
|---|---|---|---|
| Isolation | Micro-VM on a custom bare-metal hypervisor, plus a container layer | libkrun microVM with its own guest kernel | Full VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts |
| CPU speed (Node.js build loop, 4 vCPU / 8 GB) | 8.29 runs a second | Not measured | 26.69 runs a second |
| Self-hosting | No self-hosting; Deploy to VPC on AWS, GCP or Azure (Enterprise) | Open-source smolvm runs on your laptop or your own servers, with the same .smolmachine artifact | No; hosted in the EU (Germany, Finland, France) with EU data residency |
| Images | Blueprints built from Dockerfiles, plus disk snapshots; x86_64 and arm64 | Registry images and artifacts in amd64 and arm64 | Templates from named snapshots, no Dockerfile builds; x86_64 only |
| Keeping files | Disk kept through suspend (Pro plan) or manual disk snapshots; shutdown ends the devbox | Filesystem survives a stop, /tmp is emptied; stopped disk keeps billing; cloud snapshot routes return 501 | Disk saved every minute and on stop, on every plan; a stopped sandbox costs nothing |
| Fork | Disk snapshots that new devboxes can start from | Branch a running machine with its memory and processes; checkpoints capture RAM to a file | Fork a running sandbox with its disk |
| Idle sleep and wake | Suspend after idle, wake on an HTTP request to the tunnel (Pro) | A command or terminal starts a stopped machine; idle apps wake on the next request | No idle timer; TTL based, a stopped sandbox is started by API |
| Long runs | Fixed lifetime 1 hour by default, 48 hours max; an idle policy replaces it | Optional TTL you set; no provider maximum documented | No session cap on paid plans; default TTL 1 hour, changeable |
| Nested virtualization | Not documented; Docker-in-Docker blueprints only | Not exposed in the cloud create API; a local smolvm flag only | Yes: /dev/kvm for Android emulators and VMs inside |
| Docker inside | Yes, on the dnd blueprints, as root | Yes, with Docker data on the machine's ext4 disk | Yes, with root and systemd |
| Shell and inbound access | One HTTPS tunnel per devbox; SSH through a TLS proxy; no public IP | Up to 16 published ports; command API and a WebSocket terminal capped at one hour; no SSH, no dedicated IP | SSH; HTTPS URLs for up to 50 ports, token-protected by default; raw TCP; dedicated IPv4 or IPv6 |
| Outbound rules | Hostname allowlist with wildcards, or block all | Blocked, open, or an allowlist of hosts and CIDR ranges | Open internet, no provider-side allowlist |
| Desktop and browser | Desktop and browser your agent can control | No hosted desktop; a guide shows running your own Chromium inside a machine | Linux desktop streamed at 60fps, Chromium and computer use built in |
| Keeping API keys out of the sandbox | Agent gateways for any API endpoint with bearer, header or basic auth | Cloud secrets are environment variables the guest can read; swapping exists in self-hosted smolvm only | Credentials proxy for model providers and any HTTPS API; a credential can switch to another account when credits run out |
Every feature Battleships tracks (43)
| Feature | Runloop | smol machines | boat |
|---|---|---|---|
| Full VM (own kernel) | Yes | Yes | Yes |
| Docker inside | Yes | Yes | Yes |
| Nested virtualization | No | No | Yes |
| Root | Yes | Not published | Yes |
| Systemd | Not published | Not published | Yes |
| Desktop GUI | Yes | No | Yes |
| Browser | Yes | No | Yes |
| Computer-use API | Yes | No | Yes |
| SSH | Yes | No | Yes |
| Persistent disk | Yes | Yes | Yes |
| Pause/resume | Yes | Yes | Yes |
| Automatic snapshots | Yes | No | Yes |
| Fork/clone | Yes | Yes | Yes |
| Live fork (no pause) | Yes | Yes | Yes |
| Memory fork | No | Yes | No |
| Custom image (Docker or snapshot) | Yes | Yes | Yes |
| ≥24 h sessions | Yes | Yes | Yes |
| Idle auto-stop | Yes | Yes | No |
| Wake on request | Yes | Yes | No |
| HTTPS preview URLs | Yes | Yes | Yes |
| Raw TCP inbound | No | Not published | Yes |
| Public IPv4 | No | No | No |
| Egress allowlist | Yes | Yes | No |
| Secret proxy | Yes | No | Yes |
| Secret proxy for any API | Yes | No | Yes |
| Preinstalled agents | Yes | Yes | Yes |
| Agent harness API | Yes | No | Yes |
| MCP server | Yes | Yes | No |
| GPU | No | No | No |
| Windows | No | No | No |
| Arm64 | Yes | Yes | No |
| Self-hosting | No | Yes | No |
| BYOC | Yes | Yes | No |
| Open source | No | Yes | No |
| Scoped API keys | Yes | Not published | Yes |
| Spend limits | Not published | Yes | Yes |
| Usage per sandbox (API) | No | Yes | Yes |
| Audit logs | Not published | Not published | No |
| SSO | Yes | Yes | No |
| SOC 2 | Yes | No | No |
| HIPAA | Not published | No | No |
| EU data residency | No | No | Yes |
| Zero data retention | Not published | Not published | Yes |
Performance
On the StarSling hpc-sandbox-benchmarks Node.js build-and-test loop at 4 vCPU / 8 GB (run 36498291449, 2026-09-29), boat scored 26.69 runs a second and Runloop 8.29, about 3.2 times apart. smol cloud has no comparable measurement; smol machines publishes a boot time under 200ms for smolvm, which is start time, not CPU speed.
Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. smol machines has 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 | Runloop, a month | smol machines, a month | boat, 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 | $113 · Basic | $25 · Standard | $20 · $20/mo |
| One agent that never stops 4 vCPU / 8 GB, 50 GB disk, running 24/7 all month | $429 · Basic | $93 · Standard | $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,268 · Basic | $1,139 · Pro | $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,441 · Basic | $465 · Startup | $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,184 · Basic | $1,389 · Startup | $2,000 · $2000/mo · with limits |
Runloop: Runloop bills per second for the CPU and memory you allocate while a devbox is starting, running, suspending or resuming, and bills its disk for the devbox's whole life. Basic has no plan fee; Pro adds $250 a month that is not usage credit and unlocks suspend and resume.
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.
smol machines: Plans start at $20 a month and the whole fee is usage credit, billed per second while a sandbox runs. A stopped sandbox costs nothing and keeps its disk.
Limits in those scenarios
smol machines caps how many machines you hold at once by plan: 20 on Standard, 100 on Pro and 1,000 on Startup, and stopped machines still take a slot, so 50 agents need Pro and 1,000 short jobs need Startup. Runloop publishes no concurrency cap for paid plans and no egress price, and its fixed lifetime tops out at 48 hours unless an idle policy replaces it. boat's limit that bites is start rate: even the $2,000 plan queues bursts above 90 starts a minute, so 1,000 jobs at once does not fit there.
| Scenario | Runloop | smol machines | boat |
|---|---|---|---|
| One coding agent, workdays |
| None that bite | None that bite |
| One agent that never stops |
| None that bite | None that bite |
| 50 agents in parallel |
| None that bite | None that bite |
| Sandboxes for your users |
| None that bite | None that bite |
| 1,000 short jobs at once |
| None that bite |
|
Which one should you use?
Use Runloop when
you build devboxes from Dockerfiles, need a desktop for computer-use agents, launch large RL waves, or want devboxes in your own AWS, GCP or Azure account.
- Dockerfile blueprints and agent gateways. Teams with Dockerfiles get devboxes built from them, and agent gateways keep API keys out of the devbox.
- A desktop for computer use. Computer-use and browser agents get a desktop and browser on Runloop, which smol cloud does not host.
- Your own cloud and large RL waves. On Enterprise, Runloop runs devboxes in your own AWS, GCP or Azure account and sells RL fine-tuning.
Use smol machines when
you want one open-source VM engine from your laptop to your own servers, or you fan out many branches of a running machine with its memory.
- Open source, laptop to your servers. Teams that want one open-source VM engine locally, in a hosted cloud and on their own servers can use smolvm.
- Live branches with memory. Useful for RL and test fan-out: branch a running machine with its memory and processes, paying the minimum once.
- Pay for what the guest uses. smol cloud bills the CPU and memory a machine actually uses, so mostly idle machines cost less.
Where boat fits
If your agents do hours of real work, like installs, builds, tests, Docker and emulators, look at boat. Each sandbox is a full VM with /dev/kvm, SSH, raw TCP, a 60fps desktop and coding agents you drive from outside, and its disk is saved every minute on every plan.
About three times Runloop's CPU speed
On the same Node.js build-and-test loop, boat ran 26.69 runs a second and Runloop 8.29; smol cloud has not been measured. Each install and test an agent waits on takes about three times as long on Runloop.
A whole machine, not only a VM boundary
Neither Runloop nor smol cloud exposes nested virtualization, so an Android emulator or a VM will not start. Runloop has no public IP or raw TCP, and smol cloud has no SSH and caps you at 16 ports.
Work kept when the sandbox stops
On Runloop a devbox's disk is gone at shutdown unless you pay the Pro plan fee for suspend or write snapshot code. smol keeps files but bills the disk while stopped; boat stops for free.
Use boat when your agents need a whole machine for real work: Docker, emulators, SSH, a desktop and a browser, on CPUs about three times faster than Runloop's, with files kept on every plan. Compare it one to one: boat vs Runloop and boat vs smol machines.
Questions people ask
Is Runloop cheaper than smol machines?
No, in all five of our scenarios smol machines costs less. One coding agent on workdays is $113 a month on Runloop and $25 on smol machines, and 50 agents in parallel are $5,268 versus $1,139. boat comes to $20 and $317 for the same two.
Which is faster, Runloop or smol machines?
We cannot say for CPU: Runloop scored 8.29 runs a second on the Node.js build-and-test loop and smol cloud has not been measured. boat scored 26.69 on the same test.
Can Runloop and smol machines run Docker?
Yes. Runloop runs Docker on its Docker-in-Docker blueprints, and smol machines runs it with Docker data on the machine's ext4 disk. Neither exposes nested virtualization on hosted machines, while boat has /dev/kvm for Android emulators and VMs.
Can I self-host Runloop or smol machines?
smol machines, yes: the smolvm engine is open source and runs on your laptop or your own servers. Runloop has no self-hosted version, but on Enterprise it deploys into your own AWS, GCP or Azure account. boat is a hosted service in the EU only.
Do they keep API keys out of the sandbox?
Runloop does, through agent gateways for any API endpoint. smol cloud does not today: secrets are environment variables the guest can read. boat's credentials proxy keeps real keys outside the sandbox for model providers and any HTTPS API.
How many sandboxes can run at once?
smol machines allows 20 machines on Standard, 100 on Pro and 1,000 on Startup, with stopped machines counted. Runloop publishes no cap for paid plans, only 3 on the trial. boat queues bursts above 90 starts a minute even on the $2,000 plan.
Try boat
Install the CLI, then run boat new.
7-day free trial