boat vs OmniRun

Both give each agent its own small virtual machine, hosted in the EU. boat gives it a full machine whose disk survives and can be forked, while OmniRun is a sandbox service you can also run on your own Linux box.

Where boat stands out

A disk that stays, with snapshots and forks

A boat sandbox keeps its disk when it stops, saves it every minute, and can be forked while it runs. OmniRun deletes a sandbox's disk when it is killed, and user snapshots and fork are planned for its v0.2.

A whole machine you can size and SSH into

You pick the size per sandbox, up to 16 vCPU / 32 GB, and get root, Docker, systemd, SSH and /dev/kvm for Android emulators and VMs. OmniRun sizes are fixed per template, it has no SSH, and it does not document nested virtualization.

Agents you drive from outside, keys kept outside

Claude Code, Codex and five other agents come preinstalled, and you prompt, steer and follow them through one API. Real keys for model providers and any HTTPS API stay in a credentials proxy outside the sandbox.

The companies and products

boat

boat.dev runs sandboxes for AI agents: each one is a full Linux VM with its own kernel.

You start a machine with one command or one API call, then SSH in, run Docker, open a desktop, or let a built-in agent (Claude Code, Codex, OpenCode and others) work in it. The disk stays between sessions, and a stopped sandbox costs nothing.

OmniRun

OmniRun is a sandbox service from A14A B.V. that runs each agent session in its own Firecracker microVM.

Each OmniRun sandbox is a Firecracker microVM restored from a template snapshot, with templates for Python, Node, Rust, an XFCE desktop and agents like Claude Code and Codex. You drive it through a TypeScript SDK, REST API or CLI, either on the managed service in Finland or on your own Linux host with KVM. Managed OmniRun is arranged per team, with limits and price agreed in a conversation rather than a public plan.

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. “3rd cheapest of 367” means 2 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 workloadboat: price rankOmniRun: price rank
Software factory
100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month
A software factory needs files that outlive one run and room for big builds; OmniRun deletes the disk when a sandbox ends and sizes are fixed per template.
3rd cheapest of 367
$634 a month
Can't run it
Always-on AI employees
50 machines 24/7 · 2 vCPU / 4 GB
An assistant that lives on its machine all month needs its disk to survive; on OmniRun an idle sandbox is killed after 15 minutes and its disk goes with it.
5th cheapest of 366
$657 a month
Can't run it
Code interpreter bursts
100 at once · 1 vCPU / 2 GB · 200,000 sessions of 1 min a month
Short code runs are what OmniRun is shaped for: a sandbox restores from a snapshot in about 250ms and is thrown away after.
186th of 345, with limits
$2,000 a month
Can't run it
Sandboxes for your users
300 at once · 2 vCPU / 4 GB · 30,000 sessions of 23 min a month
Both can give each of your users a VM; OmniRun can also run on your own hardware, while boat adds a kept disk, forks and hosting on up to 50 ports.
Cheapest of 361
$209 a month
Can't run it
RL rollouts
1,000 at once · 2 vCPU / 4 GB · 1,000,000 sessions of 3 min a month
34th of 360, with limits
$2,000 a month
Can't run it
Agent evals
250 at once · 4 vCPU / 8 GB · 15,000 sessions of 20 min a month
10th cheapest of 364
$200 a month
Can't run it
CI runners
40 at once · 8 vCPU / 16 GB · 6,000 sessions of 12 min a month
CI that builds Android apps or VM images needs /dev/kvm inside the sandbox, which boat exposes and OmniRun does not document.
4th cheapest of 377
$86 a month
Can't run it
24/7 dev boxes
1 machine 24/7 · 4 vCPU / 8 GB
A dev box needs SSH and a disk that stays; OmniRun has neither today, and boat has both plus a snapshot every minute.
18th cheapest of 368
$26 a month
Can't run it
Computer-use agents
50 at once · 4 vCPU / 8 GB · 20,000 sessions of 15 min a month
Both ship a Linux desktop you can click and type into from code; boat streams it at 60fps with Chromium, OmniRun uses XFCE with noVNC and Firefox.
6th cheapest of 369
$200 a month
Can't run it
Browser-use agents
50 at once · 2 vCPU / 4 GB · 30,000 sessions of 10 min a month
7th cheapest of 367
$200 a month
Can't run it
Scraping & bots (startup scale)
50 at once · 1 vCPU / 2 GB · 100,000 sessions of 3 min a month
6th cheapest of 346
$90 a month
Can't run it
Mass scraping & bots (undetectable)
1,000 at once · 1 vCPU / 2 GB · 3,000,000 sessions of 2 min a month
71st of 338, with limits
$1,800 a month
Can't run it
Parallel red teaming
200 at once · 2 vCPU / 4 GB · 5,000 sessions of 30 min a month
Parallel red teaming branches from one prepared state, which needs fork; boat forks a running sandbox and OmniRun lists fork for a later release.
2nd cheapest of 360
$200 a month
Can't run it
GPU eval jobs
10 at once · 8 vCPU / 32 GB · 500 sessions of 30 min a month
Can'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 it

Key features

FeatureboatOmniRun
IsolationFull VM with its own kernel on dedicated AMD Ryzen 9 9950X hostsFirecracker microVM with its own kernel
Disk after the sandbox endsKept; saved every minute and on stop, and a stopped sandbox costs nothingCopy-on-write disk deleted when the sandbox is killed; no persistent volumes
Snapshots and forkSnapshots every minute; fork a running sandbox with its diskNo user snapshots or fork yet; both planned for v0.2
PauseStop keeps the disk; resume boots the machine againPause in memory; it does not survive a host restart
LifetimeNo session cap on paid plans; you set the time to live300 second default lifetime you can raise; killed after 15 minutes idle
Machine sizeUp to 16 vCPU / 32 GB on the $100 plan and above, picked per sandboxFixed per template
SSHYesNo; access through the commands and terminal API
Nested virtualizationYes, /dev/kvm for Android emulators and VMsNot documented
Desktop and computer useLinux desktop streamed at 60fps with Chromium and computer useXFCE desktop with noVNC, Firefox and a mouse, keyboard and screenshot API
Inbound accessHTTPS URLs for up to 50 ports, token-protected by default; raw TCP; dedicated IPv4 or IPv6HTTPS preview URL per port, public by default or private with a token; no dedicated IP
Outbound rulesOpen internet, no provider-side allowlistInternet off for base templates, or an opt-in hostname allowlist for HTTPS
Coding agentsSeven agents preinstalled, with a prompt, steer and events APIClaude Code, Codex, Gemini CLI and OpenClaw templates, run through the commands API
Keeping API keys out of the sandboxCredentials proxy for model providers and any HTTPS API; switch a credential to another account when credits run outLLM gateway keeps model keys outside; other secrets are written into the VM
Self-hostingNoYes, on one Linux box with KVM through its installer; source announced as Apache-2.0, not yet public
Compliance and transparencySOC 2 is in progress. We're open about where we stand: live status and data retention policy.No SOC 2 report published
Every feature Battleships tracks (43)
FeatureboatOmniRun
Full VM (own kernel)YesYes
Docker insideYesYes
Nested virtualizationYesNo
RootYesNot published
SystemdYesNot published
Desktop GUIYesYes
BrowserYesYes
Computer-use APIYesYes
SSHYesNo
Persistent diskYesNo
Pause/resumeYesYes
Automatic snapshotsYesNo
Fork/cloneYesNo
Live fork (no pause)YesNo
Memory forkNoNo
Custom image (Docker or snapshot)YesYes
≥24 h sessionsYesYes
Idle auto-stopNoYes
Wake on requestNoNo
HTTPS preview URLsYesYes
Raw TCP inboundYesNot published
Public IPv4NoNo
Egress allowlistNoYes
Secret proxyYesYes
Secret proxy for any APIYesNo
Preinstalled agentsYesYes
Agent harness APIYesNo
MCP serverNoNo
GPUNoNo
WindowsNoNo
Arm64NoNo
Self-hostingNoYes
BYOCNoYes
Open sourceNoNo
Scoped API keysYesNot published
Spend limitsYesYes
Usage per sandbox (API)YesNo
Audit logsNoYes
SSONoNot published
SOC 2NoNo
HIPAANoNo
EU data residencyYesYes
Zero data retentionYesNot published

Performance

boat26.69 runs/s
OmniRunNot measured

There is no comparable measurement: OmniRun is not in the hpc-sandbox-benchmarks runs. boat did 26.69 runs per second on its Node.js build-and-test loop at 4 vCPU / 8 GB, on dedicated AMD Ryzen 9 9950X hosts. OmniRun says a sandbox restores from a snapshot in about 250ms, 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. OmniRun 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.

Scenarioboat, a monthOmniRun, 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
$20 · $20/moCan't run it
One agent that never stops
4 vCPU / 8 GB, 50 GB disk, running 24/7 all month
$26 · $20/moCan't run it
50 agents in parallel
50 machines of 4 vCPU / 8 GB at once, 8-hour sessions, 1,100 sessions a month, Docker inside
$317 · $20/mo × 3 seatsCan't run it
Sandboxes for your users
2 vCPU / 4 GB, 30,000 sessions of 10 minutes a month, up to 300 at once
$200 · $100/mo × 2 seatsCan't run it
1,000 short jobs at once
2 vCPU / 4 GB, 1,000 at once, 3 minutes each, 200,000 jobs a month
$2,000 · $2000/mo · with limitsCan't run it

boat: 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.

OmniRun: OmniRun has no public price list or self-serve plan: managed limits and price are agreed with each team, so the table shows no OmniRun price. Self-hosting costs nothing beyond your own hardware.

Limits in those scenarios

OmniRun publishes no price, so the table has no OmniRun figure in any scenario. Its disk is deleted when a sandbox ends, which rules out the always-on and workday scenarios, and each user can run 3 sandboxes at once by default, more only by agreement. boat has no session cap, but at 1,000 short jobs at once its plans queue starts above 90 a minute.

ScenarioboatOmniRun
One coding agent, workdaysNone that bite
  • No public price: managed OmniRun is priced per client by agreement (omnirun.io/pricing)
One agent that never stopsNone that bite
  • No public price: managed OmniRun is priced per client by agreement (omnirun.io/pricing)
50 agents in parallelNone that bite
  • No public price: managed OmniRun is priced per client by agreement (omnirun.io/pricing)
Sandboxes for your usersNone that bite
  • No public price: managed OmniRun is priced per client by agreement (omnirun.io/pricing)
1,000 short jobs at once
  • 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)
  • No public price: managed OmniRun is priced per client by agreement (omnirun.io/pricing)

Which one should you use?

Use OmniRun when

you must run sandboxes on your own hardware, or need short throwaway runs with outbound internet switched off.

  • Run it on your own hardware. Teams that must keep sandboxes on their own hardware can run the same release on one Linux box with KVM, free.
  • Outbound traffic you can switch off. Useful for running untrusted code that should reach nothing: base templates can start with no route out at all.
  • Fast throwaway starts. Good for short code runs: a sandbox restores from a template snapshot in about 250ms and is gone when it ends.

Use boat when

your agents do real work that has to be kept: installs, builds, Docker, emulators and a browser on a machine whose disk survives, forks, and is driven from outside by API.

  • A disk that stays, with snapshots and forks. On OmniRun an agent that goes idle for 15 minutes is killed and loses its files, so your code has to copy work out first, and branching a run means rebuilding the state from scratch.
  • A whole machine you can size and SSH into. A large build that needs more memory than its template has nowhere to go on OmniRun, and emulators or VMs need /dev/kvm that its docs never mention.
  • Agents you drive from outside, keys kept outside. OmniRun's agent templates run through its generic commands API, so you build the harness yourself, and its vault writes non-model secrets into the VM, where a prompt injection can read them.

Questions people ask

Is boat cheaper than OmniRun?

There is no public OmniRun price to compare: managed OmniRun is priced per team by agreement, so the table shows only boat. boat starts at $20 a month, all of it usage credit, and is billed per second.

Does an OmniRun sandbox keep its files?

Only while it lives. Its copy-on-write disk is deleted when the sandbox is killed, and an idle sandbox is killed after 15 minutes. A boat sandbox keeps its disk when it stops and saves it every minute.

Can I self-host OmniRun or boat?

OmniRun can run on one x86_64 Linux box with KVM through its installer; its source is announced as Apache-2.0 but is not public yet. boat is a managed service on dedicated hosts in the EU.

Can I run Docker and Android emulators in each?

boat runs Docker and exposes /dev/kvm, so Android emulators and VMs work. OmniRun gives each sandbox its own kernel with root, but its docs do not mention Docker or nested virtualization.

Which one has a desktop for computer use?

Both. OmniRun has an XFCE desktop with noVNC and an API for clicks, typing and screenshots. boat streams a Linux desktop at 60fps with Chromium and computer use built in.

Is boat SOC 2 compliant?

SOC 2 is in progress. We're open about where we stand: live status at status.ascii.dev and our data retention policy at docs.boat.dev/data-retention.

Start a sandbox

Install the CLI, then run boat new.

7-day free trial

More comparisons