Sprites vs Koyeb
Both run each sandbox in its own microVM that can sleep when idle and wake on a request. A Sprite is a fixed machine whose 100 GB disk survives every sleep, while a Koyeb sandbox starts from any Docker image, can run on a GPU and lives in the EU, US or Asia, but loses its local disk unless you add a volume.
The companies and products
Sprites
Sprites is Fly.io's product for agents: persistent Linux computers you create by API or CLI, which sleep when idle and wake on the next request.
Each Sprite is a Firecracker microVM with 8 vCPU, memory the platform manages, and a 100 GB ext4 disk that syncs to object storage. It runs one managed Ubuntu image with Claude Code, Codex, Gemini CLI and Cursor preinstalled, gets an HTTPS URL that wakes it, and bills only for the CPU and memory it actually uses while awake. It is built for coding agents, dev environments and user code that sit idle most of the time.
- Isolation
- Firecracker microVM per Sprite
- Regions
- Not selectable for Sprites
- Free start
- $30 trial credit per organization
Koyeb
Koyeb is a serverless cloud for apps, inference and sandboxes, and in February 2026 it agreed to join Mistral AI.
A Koyeb sandbox is a Koyeb service: a microVM started from any Docker image and driven from Python or JavaScript SDKs that run commands, read files and expose a port. It can scale to zero when idle and wake on the next request, and it can run on CPU or GPU instance types. It is built for teams that run AI agents or untrusted code next to apps they already host on Koyeb.
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. “63rd cheapest of 377” means 62 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 | Sprites: price rank | Koyeb: price rank | boat: price rank |
|---|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month A software factory needs a disk that survives and room to build; Sprites keeps its disk but has no systemd, Koyeb loses local disk on redeploy, and boat has both. | 66th of 367, with limits $546 a month | 54th of 367, with limits $366 a month | 3rd cheapest of 367 $634 a month |
| Always-on AI employees 50 machines 24/7 · 2 vCPU / 4 GB An assistant that lives on its machine all month needs its files and connections to stay; a Sprite drops connections on every pause, a Koyeb deep sleep throws away the VM, and boat keeps running. | 157th of 366, with limits $1,166 a month | 135th of 366, with limits $923 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 Koyeb ranks 4th for short code runs with small instances and scale to zero; Sprites also fits, sleeping about 30 seconds after the last command and billing only real CPU and memory. | 93rd of 345, with limits $140 a month | 4th cheapest of 345 $66 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 Koyeb fits sandboxes for your users with wake on request and many regions, while Sprites does not publish how many can run at once; boat gives each user a fuller machine with up to 50 HTTPS ports. | 56th of 361, with limits $428 a month | 6th cheapest of 361 $495 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 | 105th of 360, with limits $6,540 a month | 237th of 360, with limits $1,631 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 | 125th of 364, with limits $545 a month | 19th cheapest of 364 $429 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 CI that builds Android apps or VM images needs /dev/kvm, which boat exposes and neither Sprites nor Koyeb documents. | 63rd cheapest of 377 $476 a month | 142nd of 377, with limits $88 a month | 4th cheapest of 377 $86 a month |
| 24/7 dev boxes 1 machine 24/7 · 4 vCPU / 8 GB A 24/7 dev box wants SSH and systemd; boat has both, Sprites tunnels SSH through its CLI, and Koyeb has no SSH. | 213th of 368, with limits $27 a month | 217th of 368, with limits $37 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 Computer-use agents need a screen: boat streams a 60fps desktop with Chromium, while Sprites and Koyeb sandboxes are headless. | 85th of 369, with limits $136 a month | 81st of 369, with limits $123 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 | 171st of 367, with limits $122 a month | 172nd of 367, with limits $123 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 | 229th of 346, with limits $206 a month | 172nd of 346, with limits $89 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 | 141st of 338, with limits $4,113 a month | 65th of 338, with limits $1,683 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 | 210th of 360, with limits $223 a month | 233rd of 360, with limits $299 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 Koyeb runs GPU instances from RTX 4000 cards up to H100 and H200; Sprites and boat have no GPUs. | Can't run it | 3rd cheapest of 98 $628 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 | Sprites | Koyeb | boat |
|---|---|---|---|
| Isolation | Firecracker microVM with its own kernel | MicroVM per instance | Full VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts |
| Machine size | Fixed 8 vCPU and 100 GB disk; memory set and scaled by the platform | Instance types up to 40 vCPU / 128 GB, and GPU types far larger | You choose; up to 16 vCPU / 32 GB on the $100 plan and above |
| Image | One managed Ubuntu 25.10 image; you install on top of it | Starts from any Docker image | Linux VM with root, Docker and systemd; you install on top of it |
| Inside the machine | Root and Docker (with rough edges users report); no systemd, and no /dev/kvm in the docs | Runs your Docker image in a microVM; nested virtualization not documented | Root, Docker, systemd and /dev/kvm for emulators and VMs |
| Disk that survives | 100 GB disk that syncs to object storage and is kept across sleeps | Local disk is lost on redeploy; volumes (preview, 1 to 10 GB, Frankfurt and Washington) persist | Disk kept across stops and saved every minute, with snapshots |
| Sleep and wake | Pauses about 30 seconds after activity stops; wakes on the next request in 100 to 500 ms with memory | Scales to zero after an idle period (5 minutes minimum) and wakes on request; Light Sleep wakes in about 200 ms | Stop and start by API; a stopped sandbox costs nothing and keeps its disk |
| Snapshots and fork | Filesystem checkpoints that restore in place; no fork | SDK snapshots of the filesystem or running processes, then new sandboxes from them (experimental) | Named snapshots, and fork of a running sandbox with its disk |
| Reaching the sandbox | One HTTPS URL to one HTTP port; other ports and SSH only through the sprite proxy CLI | One exposed HTTPS port at a time, plus an optional TCP proxy to one port; no dedicated IP | HTTPS URLs for up to 50 ports, token-protected; raw TCP; dedicated IPv4 or IPv6; SSH |
| Outbound rules | Optional DNS-based domain allowlist; private IPs always blocked | Block all outbound traffic, or allow only listed IPs and CIDRs | Open internet, no provider-side allowlist |
| Keeping keys out of the sandbox | Connectors gateway holds the token for any HTTP API, with path allow and block lists | Secrets are set as environment variables inside the service | Credentials proxy for model providers and any HTTPS API; switch a credential to another account when credits run out |
| Coding agents | Claude Code, Codex, Gemini CLI and Cursor preinstalled, run through exec or a console | Tutorials that run agents through the command API; an MCP server lets agents manage Koyeb | Seven agents preinstalled, with a prompt, steer and events API to drive them from outside |
| Desktop and browser | Headless; no desktop or browser product | No desktop or browser in the sandbox SDK | 60fps Linux desktop with Chromium, computer use and an embeddable stream |
| GPUs | No | RTX 4000 SFF Ada up to H100, H200 and multi-GPU | No |
| Regions | Not selectable | EU, US and Asia | EU only (Germany, Finland, France), with EU data residency |
Every feature Battleships tracks (43)
| Feature | Sprites | Koyeb | boat |
|---|---|---|---|
| Full VM (own kernel) | Yes | Yes | Yes |
| Docker inside | Yes | Yes | 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 | No | No | Yes |
| Persistent disk | Yes | Yes | Yes |
| Pause/resume | Yes | Yes | Yes |
| Automatic snapshots | Yes | Yes | Yes |
| Fork/clone | No | Yes | Yes |
| Live fork (no pause) | No | Not published | 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 | Yes | 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 | No | No | Yes |
| MCP server | Yes | Yes | No |
| GPU | No | 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 | Not published | Not published | Yes |
| Spend limits | Not published | No | Yes |
| Usage per sandbox (API) | No | No | Yes |
| Audit logs | Not published | Yes | No |
| SSO | Yes | Yes | No |
| SOC 2 | Yes | Yes | No |
| HIPAA | Yes | No | No |
| EU data residency | No | Yes | Yes |
| Zero data retention | Not published | Not published | Yes |
Performance
There is no comparable CPU measurement for Sprites or Koyeb: neither is in the hpc-sandbox-benchmarks results we use. boat did 26.69 runs per second on the Node.js build-and-test test at 4 vCPU / 8 GB, on dedicated AMD Ryzen 9 9950X hosts. Koyeb guarantees at least 0.25 dedicated vCPU per GB of memory, and a Sprite always has 8 vCPU, so a fair test would need matching shapes.
Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Sprites and Koyeb 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 | Sprites, a month | Koyeb, 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 | $23 · Pay-as-you-go | $29 · Pro | $20 · $20/mo |
| One agent that never stops 4 vCPU / 8 GB, 50 GB disk, running 24/7 all month | $92 · Pay-as-you-go | $57 · Pro | $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,120 · Pay-as-you-go | $475 · 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 | $314 · Pay-as-you-go · with limits | $329 · Scale | $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,134 · Pay-as-you-go · with limits | $485 · Scale · with limits | $2,000 · $2000/mo · with limits |
Sprites: Sprites bills CPU time actually used at $0.0385 per CPU-hour and actual memory at $0.021875 per GB-hour, only while the Sprite is awake, plus storage on the bytes you write. Optional plans such as Hero at $100 a month buy fixed CPU, memory and storage allowances that are not credit.
Koyeb: Koyeb bills each instance per second from the moment it starts, at a fixed price per instance type, and Deep Sleep costs nothing. Pro costs $29 a month with $10 of usage included and Scale $299 with $100 included; bandwidth above 1 TB is extra.
Koyeb: 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
Sprites does not publish how many Sprites can run at once on pay as you go, so 300 sandboxes for your users and 1,000 jobs at once are not confirmed, and creation is 10 a minute without a plan. An always-on Sprite needs a task hold that lasts at most an hour and must be renewed. Koyeb's priced shape here, eco-xlarge, has a 20 GiB disk with no published price for more, and eco instances guarantee only half of each vCPU, so a burst of 1,000 jobs gets throttled. boat has no session cap on paid plans, but at 1,000 short jobs at once its $2,000 plan queues starts above 90 a minute.
| Scenario | Sprites | Koyeb | 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 |
|
|
|
Which one should you use?
Use Sprites when
your agents sit idle most of the day, must keep their files between wakes, and you want a domain allowlist or API connectors with path rules.
- A disk that survives every sleep. For agents idle most of the day: a Sprite sleeps after 30 seconds, keeps its 100 GB disk, and wakes in under a second.
- Domain allowlist and API connectors. For teams that must fence an agent in: limit outbound traffic by domain, and limit which API paths a stored token can call.
- Plugs into agent platforms. For teams on Claude Managed Agents or Cursor Cloud Agents: Sprites can be the machine behind them, with a remote MCP server.
Use Koyeb when
your sandboxes need your own Docker image, a GPU, a large machine, or a region in the US or Asia.
- Any Docker image, bigger machines. For teams with their own image: Koyeb starts sandboxes from any Docker image, on instance types up to 40 vCPU / 128 GB.
- GPUs in the same platform. For agents or evals that need a GPU: Koyeb runs instances from RTX 4000 cards up to H100 and H200.
- Many regions. For sandboxes that must run near users in the US or Asia: Koyeb runs in Frankfurt, Paris, Washington D.C., Singapore, Tokyo and more.
Where boat fits
Sprites and Koyeb both shine when sandboxes sleep most of the time. If your agents do real work for hours, building, running Docker and emulators, serving previews and using a browser, boat gives each one a full machine that keeps its disk, can be forked while running, and comes with agents you drive from outside.
systemd, Docker and /dev/kvm
Sprites has no systemd, and users report docker exec failing on containers whose main process is not root; neither documents /dev/kvm. Stacks with services, Android emulators or nested VMs have to be rewritten or run somewhere else.
A disk saved every minute, and forks
Koyeb loses local disk on redeploy and a deep sleep discards the VM, so files need a preview volume or experimental snapshots. Sprites keeps its disk but has no fork, so trying two fixes from one state means rebuilding.
Many ports, a desktop and an agent API
Both expose one public port, Sprites tunnels SSH through its CLI, and neither has a desktop. boat gives 50 HTTPS ports, raw TCP, SSH, a 60fps desktop with Chromium, and an API to prompt and steer agents inside.
Use boat when your agents need a full machine for hours: systemd, Docker, emulators, many ports, a desktop and browser, forks, and an API to drive the agents inside from outside. Compare it one to one: boat vs Sprites and boat vs Koyeb.
Questions people ask
Is Sprites cheaper than Koyeb?
It depends on the workload. One coding agent on workdays is $23 a month on Sprites and $29 on Koyeb, but one agent that never stops is $92 on Sprites against $57 on Koyeb, and 50 agents in parallel are $1,120 against $475. Sprites bills real CPU use, so a mostly idle workload can cost less than these estimates.
Which is faster, Sprites or Koyeb?
Neither has a comparable CPU measurement in the benchmark we use. A Sprite always has 8 vCPU, while Koyeb guarantees at least 0.25 dedicated vCPU per GB of memory and eco instances half of each vCPU, so Koyeb speed depends on how busy the host is.
Can I run Docker on Sprites and Koyeb?
Users run Docker inside Sprites, though one report shows docker exec failing for containers whose main process is not root. Koyeb starts each sandbox from a Docker image. boat runs Docker, systemd and /dev/kvm inside every sandbox.
Do Sprites and Koyeb keep my files?
A Sprite keeps its 100 GB disk across every sleep. A Koyeb sandbox loses its local disk on redeploy and a deep sleep discards the VM, so lasting files need a volume (in preview) or an SDK snapshot. boat keeps its disk across stops and saves it every minute.
Do Sprites or Koyeb have GPUs?
Koyeb does, from an RTX 4000 SFF Ada up to H100 and H200, billed per second. Sprites and boat are CPU only.
Can I choose where they run?
Sprites does not let you choose a region. Koyeb runs in the EU, US and Asia. boat runs only in the EU, in Germany, Finland and France, with EU data residency.
Try boat
Install the CLI, then run boat new.
7-day free trial