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.
- Isolation
- Full VM per sandbox, own kernel
- Regions
- EU: Germany, Finland, France
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 workload | boat: price rank | OmniRun: 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 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 |
Key features
| Feature | boat | OmniRun |
|---|---|---|
| Isolation | Full VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts | Firecracker microVM with its own kernel |
| Disk after the sandbox ends | Kept; saved every minute and on stop, and a stopped sandbox costs nothing | Copy-on-write disk deleted when the sandbox is killed; no persistent volumes |
| Snapshots and fork | Snapshots every minute; fork a running sandbox with its disk | No user snapshots or fork yet; both planned for v0.2 |
| Pause | Stop keeps the disk; resume boots the machine again | Pause in memory; it does not survive a host restart |
| Lifetime | No session cap on paid plans; you set the time to live | 300 second default lifetime you can raise; killed after 15 minutes idle |
| Machine size | Up to 16 vCPU / 32 GB on the $100 plan and above, picked per sandbox | Fixed per template |
| SSH | Yes | No; access through the commands and terminal API |
| Nested virtualization | Yes, /dev/kvm for Android emulators and VMs | Not documented |
| Desktop and computer use | Linux desktop streamed at 60fps with Chromium and computer use | XFCE desktop with noVNC, Firefox and a mouse, keyboard and screenshot API |
| Inbound access | HTTPS URLs for up to 50 ports, token-protected by default; raw TCP; dedicated IPv4 or IPv6 | HTTPS preview URL per port, public by default or private with a token; no dedicated IP |
| Outbound rules | Open internet, no provider-side allowlist | Internet off for base templates, or an opt-in hostname allowlist for HTTPS |
| Coding agents | Seven agents preinstalled, with a prompt, steer and events API | Claude Code, Codex, Gemini CLI and OpenClaw templates, run through the commands API |
| Keeping API keys out of the sandbox | Credentials proxy for model providers and any HTTPS API; switch a credential to another account when credits run out | LLM gateway keeps model keys outside; other secrets are written into the VM |
| Self-hosting | No | Yes, on one Linux box with KVM through its installer; source announced as Apache-2.0, not yet public |
| Compliance and transparency | SOC 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)
| Feature | boat | OmniRun |
|---|---|---|
| Full VM (own kernel) | Yes | Yes |
| Docker inside | Yes | Yes |
| Nested virtualization | Yes | No |
| Root | Yes | Not published |
| Systemd | Yes | Not published |
| Desktop GUI | Yes | Yes |
| Browser | Yes | Yes |
| Computer-use API | Yes | Yes |
| SSH | Yes | No |
| Persistent disk | Yes | No |
| Pause/resume | Yes | Yes |
| Automatic snapshots | Yes | No |
| Fork/clone | Yes | No |
| Live fork (no pause) | Yes | No |
| Memory fork | No | No |
| Custom image (Docker or snapshot) | Yes | Yes |
| ≥24 h sessions | Yes | Yes |
| Idle auto-stop | No | Yes |
| Wake on request | No | No |
| HTTPS preview URLs | Yes | Yes |
| Raw TCP inbound | Yes | Not published |
| Public IPv4 | No | No |
| Egress allowlist | No | Yes |
| Secret proxy | Yes | Yes |
| Secret proxy for any API | Yes | No |
| Preinstalled agents | Yes | Yes |
| Agent harness API | Yes | No |
| MCP server | No | No |
| GPU | No | No |
| Windows | No | No |
| Arm64 | No | No |
| Self-hosting | No | Yes |
| BYOC | No | Yes |
| Open source | No | No |
| Scoped API keys | Yes | Not published |
| Spend limits | Yes | Yes |
| Usage per sandbox (API) | Yes | No |
| Audit logs | No | Yes |
| SSO | No | Not published |
| SOC 2 | No | No |
| HIPAA | No | No |
| EU data residency | Yes | Yes |
| Zero data retention | Yes | Not published |
Performance
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.
| Scenario | boat, a month | OmniRun, 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/mo | Can't run it |
| One agent that never stops 4 vCPU / 8 GB, 50 GB disk, running 24/7 all month | $26 · $20/mo | Can'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 seats | Can'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 seats | Can'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 limits | Can'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.
| Scenario | boat | OmniRun |
|---|---|---|
| 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 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