Daytona vs Modal

Daytona sandboxes can run for as long as you like, keep their disk when stopped, and come with a desktop and a Linux VM class. Modal sandboxes are gVisor containers that start fast and scale to thousands at once, but end within 24 hours and keep files only in Volumes.

The companies and products

Daytona

Daytona is a cloud for running AI-generated code: you create sandboxes from code through its API and SDKs.

By default a Daytona sandbox is a Linux container with its own namespaces and reserved vCPU, memory and disk. You can also pick a Linux VM class (pause, fork, memory snapshots, /dev/kvm), a Windows VM class, or a GPU class with Nvidia and AMD cards. It is built for teams that run agent code, code interpreters and evals through Python, TypeScript, Ruby, Go or Java SDKs.

Founded
2023

Modal

Modal is a serverless cloud for AI work: inference, training, batch jobs and sandboxed code, all driven from Python, TypeScript or Go code.

Modal Sandboxes are containers you create from code, run commands in, and then terminate. By default they run under gVisor, a user-space kernel from Google; since October 2026 you can also pick a VM runtime with its own Linux kernel for Docker and FUSE (Battleships tracks that as a separate card, Modal VM Sandboxes). It suits teams that already run models on Modal and want short-lived, scalable code execution next to their GPUs.

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. “15th cheapest of 367” means 14 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 workloadDaytona: price rankModal: price rankbochka: price rank
Software factory
100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month
Daytona fits a software factory with Docker, a desktop and a disk that stays; Modal has no fit here, and bochka ranks 3rd with all of that in every VM.
15th cheapest of 367
$4,111 a month
Can't run it3rd cheapest of 367
$634 a month
Always-on AI employees
50 machines 24/7 · 2 vCPU / 4 GB
Daytona sandboxes can run all month, while Modal's 24-hour session cap makes always-on assistants a compromise; bochka runs them with no session cap on paid plans.
24th cheapest of 366
$6,104 a month
196th of 366, with limits
$1,924 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 well, with Modal ranked 19th and Daytona 25th; bochka's start limits make big bursts a compromise.
25th cheapest of 345
$271 a month
19th cheapest of 345
$181 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
Modal's Team plan runs 300 user sandboxes at once, while 600 vCPU is more than Daytona's Tier 4 pool of 500; bochka ranks 1st here.
154th of 361, with limits
$2,000 a month
11th cheapest of 361
$811 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
Modal is built for many short sandboxes at once and ranks 5th, while Daytona's vCPU pool makes big rollouts a compromise.
130th of 360, with limits
$8,261 a month
5th cheapest of 360
$19,038 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
189th of 364, with limits
$2,000 a month
59th cheapest of 364
$1,244 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 jobs that build Docker images fit Modal only through its VM runtime, and Daytona caps a sandbox at 4 vCPU by default; bochka ranks 4th with Docker and 8 vCPU from the $20 plan.
308th of 377, with limits
$805 a month
126th cheapest of 377
$1,793 a month
4th cheapest of 377
$86 a month
24/7 dev boxes
1 machine 24/7 · 4 vCPU / 8 GB
183rd of 368, with limits
$245 a month
138th of 368, with limits
$23 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
Daytona has a VNC desktop and a computer-use API on Linux and Windows; on Modal you set up the desktop yourself, and bochka streams a 60fps desktop.
26th cheapest of 369
$1,198 a month
98th of 369, with limits
$183 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
93rd of 367, with limits
$598 a month
177th 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
38th cheapest of 346
$404 a month
267th of 346, with limits
$394 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
202nd of 338, with limits
$8,073 a month
223rd of 338, with limits
$8,795 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
12th cheapest of 360
$2,000 a month
Can't run it2nd cheapest of 360
$200 a month
GPU eval jobs
10 at once · 8 vCPU / 32 GB · 500 sessions of 30 min a month
Both rent GPUs up to B300 and fit about equally; bochka has no GPUs.
20th cheapest of 98
$1,190 a month
19th cheapest of 98
$1,187 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 itCan't run itCan't run it

Key features

FeatureDaytonaModalbochka
IsolationContainer by default; Linux VM and Windows VM classes with their own kernelgVisor container by default; VM runtime with its own kernelEvery sandbox is a full VM with its own kernel
CPU speed (Node.js build-and-test, 4 vCPU / 8 GB)21.52 runs/s on the Linux VM class; default containers reported no result12.79 runs/s on the default sandbox26.69 runs/s
Docker insideYes, in all classesOnly with the VM runtimeYes, with root and systemd, in every sandbox
Nested virtualization/dev/kvm on Linux VMs, once KVM is turned on for your organizationVM runtime only, Team and Enterprise plans, on request/dev/kvm on every machine
Longest sessionNo cap; the time limit is off unless you set one24 hours (default 5 minutes)No cap on paid plans (default TTL 1 h, changeable)
Files after a stopDisk kept and billed while stopped; archived containers are freeNo paused state; a finished sandbox is gone, only Volumes keep filesDisk saved every minute and on stop; a stopped sandbox costs nothing
Pause, fork and memory snapshotsLinux VM and Windows: pause, resume and fork with memory keptFilesystem snapshots to boot new sandboxes; memory snapshots in alpha end the sandboxFork a running sandbox; resume reboots from disk
Desktop and computer useVNC desktop and a computer-use API on Linux and WindowsNot offered; an example shows how to set up VNC yourself60fps desktop, Chromium, computer use and browser control, embeddable stream
Reaching the sandboxHTTPS preview URLs on any port and SSH; no raw TCP or public IPEncrypted and raw TCP tunnels, connect tokens, inbound IP allowlistHTTPS URLs for up to 50 ports, token-protected, plus raw TCP
Outbound internetTier 1 and 2 reach only registries, git hosts and AI APIs; open from Tier 3 ($500 top-up), with allowlistsOpen by default; block all, IP-range or domain allowlistsOpen internet on every plan; no provider-side allowlist
Keeping keys out of the sandboxSecrets proxy swaps placeholders in HTTPS headers for allowed hostsSecrets are environment variables, or you run your own proxy in a sidecarAI credentials proxy for model providers and any HTTPS API; switches accounts when credits run out
Coding agentsGuides to install agents and run them as processesExamples onlyClaude Code, Codex, OpenCode and more preinstalled, with a prompt, steer and events API
GPUs and WindowsNvidia and AMD GPUs from RTX 4090 to B300; Windows VM sandboxesGPUs from T4 to B300; no WindowsNo GPUs; no Windows guests (Wine for Windows apps)
RegionsUS and EU, plus dedicated regions or your own machinesUS, EU and Asia-Pacific; pinning a region costs 1.15x to 1.75xEU only: Germany, Finland, France
Every feature Battleships tracks (43)
FeatureDaytonaModalbochka
Full VM (own kernel)NoNoYes
Docker insideYesNoYes
Nested virtualizationYesNoYes
RootYesYesYes
SystemdNot publishedYesYes
Desktop GUIYesNoYes
BrowserYesNoYes
Computer-use APIYesNoYes
SSHYesYesYes
Persistent diskYesYesYes
Pause/resumeYesNoYes
Automatic snapshotsYesNoYes
Fork/cloneYesYesYes
Live fork (no pause)NoNoYes
Memory forkYesYesNo
Custom image (Docker or snapshot)YesYesYes
≥24 h sessionsYesYesYes
Idle auto-stopYesYesNo
Wake on requestNoNoNo
HTTPS preview URLsYesYesYes
Raw TCP inboundNoYesYes
Public IPv4NoNoNo
Egress allowlistYesYesNo
Secret proxyYesNoYes
Secret proxy for any APIYesNoYes
Preinstalled agentsYesNoYes
Agent harness APINoNoYes
MCP serverYesNoNo
GPUYesYesNo
WindowsYesNoNo
Arm64NoNoNo
Self-hostingNoNoNo
BYOCYesNoNo
Open sourceNoNoNo
Scoped API keysYesNot publishedYes
Spend limitsNot publishedNot publishedYes
Usage per sandbox (API)YesNot publishedYes
Audit logsYesYesNo
SSOYesYesNo
SOC 2YesYesNo
HIPAAYesYesNo
EU data residencyYesYesYes
Zero data retentionNot publishedNot publishedYes

Performance

Daytona21.52 runs/s
Modal12.79 runs/s
bochka26.69 runs/s

In StarSling's public run of 29 September 2026 at 4 vCPU / 8 GB, bochka did 26.69 Node.js build-and-test runs per second, Daytona's Linux VM class 21.52 and Modal's default gVisor sandbox 12.79. So Daytona's VM class did about 1.7 times the work of Modal's default sandbox, and bochka about 1.2 times Daytona's and about 2 times Modal's. Daytona's default container class reported no result in that run.

Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Daytona measured on: Linux VM sandbox (same rates; KVM / nested virt per-org feature). Modal measured on: Sandbox (gVisor), request = size, any region.

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.

ScenarioDaytona, a monthModal, 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
$56 · Tier 3 ($500 top-up)$15 · Starter · with limits$20 · $20/mo
One agent that never stops
4 vCPU / 8 GB, 50 GB disk, running 24/7 all month
$245 · Tier 3 ($500 top-up)$178 · Starter · with limits$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
$2,682 · Tier 3 ($500 top-up)$2,229 · Starter · with limits$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
$2,000 · Tier 4 ($2,000 top-up every 30 days) · with limits$792 · Team$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
$2,000 · Tier 4 ($2,000 top-up every 30 days) · with limits$3,193 · Team · with limits$2,000 · $2000/mo · with limits

Daytona: Daytona bills per second for the vCPU, memory and disk you reserve, and keeps billing the disk while a sandbox is stopped. You pay from a prepaid wallet: open internet needs a $500 top-up (Tier 3), and the biggest pool needs $2,000 every 30 days (Tier 4).

Modal: Modal bills by the second for the higher of what you request and what you use, until the sandbox is terminated. Starter is free with $30 of monthly credit, Team is $250 a month with $100 of credit, and pinning a region costs 1.15x to 1.75x.

Modal: bochka plans start at $20 a month and the whole fee becomes usage credit, spent per second while a sandbox runs. A stopped sandbox costs nothing and keeps its disk.

Limits in those scenarios

Daytona limits the total vCPU running at once, 500 vCPU on Tier 4, so 300 user sandboxes (600 vCPU) and 1,000 short jobs (2,000 vCPU) need a custom limit, and Tiers 1 and 2 reach only an allowlist of services. Modal caps a sandbox at 24 hours and wipes files outside Volumes, so the workday, always-on and 50-agent scenarios do not fit, and the fleet also needs Docker, which only its VM runtime has. Modal fits 300 user sandboxes on Team, but 1,000 jobs at once land on shared vCPUs there. On bochka, the limit that bites is start speed: the 1,000-job burst queues and needs more starts per day than the $2,000 plan allows.

ScenarioDaytonaModalbochka
One coding agent, workdays
  • egress price not published
  • Tier 1 (email verified), Tier 2 (card + $25 top-up) reach only an allowlist (package registries, git, AI APIs)
  • files survive a stop only in Volumes: packages installed elsewhere reset
None that bite
One agent that never stops
  • egress price not published
  • Tier 1 (email verified), Tier 2 (card + $25 top-up) reach only an allowlist (package registries, git, AI APIs)
  • Starter: sessions capped at 24 h
  • files survive a stop only in Volumes: packages installed elsewhere reset
None that bite
50 agents in parallel
  • egress price not published
  • Tier 1 (email verified), Tier 2 (card + $25 top-up) reach only an allowlist (package registries, git, AI APIs)
  • missing Docker inside
  • files survive a stop only in Volumes: packages installed elsewhere reset
None that bite
Sandboxes for your users
  • max 500 vCPU running at once (needs 600)
  • max 1,000 GiB running at once (needs 1,200)
  • egress price not published
  • Tier 1 (email verified), Tier 2 (card + $25 top-up) reach only an allowlist (package registries, git, AI APIs)
None that biteNone that bite
1,000 short jobs at once
  • max 500 vCPU running at once (needs 2,000)
  • max 1,000 GiB running at once (needs 4,000)
  • egress price not published
  • Tier 1 (email verified), Tier 2 (card + $25 top-up) reach only an allowlist (package registries, git, AI APIs)
  • shared vCPUs on this tier (Modal sells dedicated cores separately as “Sandbox (gVisor), request = size, any region”): heavy, sustained CPU use can be slowed by other tenants
  • 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 Daytona when

your agents run for hours or days with a desktop, need Windows or GPUs, or must run on your own machines.

  • Sandboxes that stay. Useful for long agent sessions: a Daytona sandbox has no time cap and keeps its disk when stopped.
  • Desktop, Windows and memory pause. Useful for computer-use agents: Daytona has a VNC desktop on Linux and Windows, and its VM classes pause with memory kept.
  • Your own machines. Useful if code must run on hardware you control: Daytona can manage sandboxes on machines you bring.

Use Modal when

you run huge bursts of short sandboxes, already run models on Modal, or need regions in Asia-Pacific.

  • Huge bursts of short jobs. Useful for RL rollouts and evals: Modal runs up to 5,000 containers at once on its Team plan.
  • Open network from day one. Modal sandboxes reach the open internet on the free Starter plan, and you can block or allowlist traffic per sandbox.
  • More regions and an AI platform. Useful if you already run models on Modal: sandboxes sit next to its GPUs, in the US, EU or Asia-Pacific.

Where bochka fits

If your sandboxes run coding agents for hours, building, testing and running Docker, look at bochka too. Every bochka sandbox is a full VM with Docker, /dev/kvm, a desktop and coding agents built in, and it was the fastest of the three in the same CPU test. Stay on Daytona or Modal for GPUs, Windows, regions outside Europe, or huge bursts of short jobs.

A full VM, not a container

Daytona's default is a container that shares the host kernel, and Modal's is gVisor without Docker. Both offer a VM class, but on Daytona KVM must be turned on for your organization, and on Modal /dev/kvm needs Team and a request.

Work that is kept, for free

A Modal sandbox ends within 24 hours and loses everything outside a Volume. A stopped Daytona sandbox keeps its disk but keeps paying for it. bochka saves the disk every minute, and a stopped sandbox costs nothing.

Agents and keys ready to go

On both, you install the coding agent yourself and write the code to start and watch it. bochka ships Claude Code, Codex and others with a driving API, and its credentials proxy keeps real keys out and switches accounts when credits run out.

Use bochka when your agents do real work for hours: installs, builds, tests, Docker and emulators on a full, fast VM that keeps its disk for free, with a desktop and coding agents built in. Compare it one to one: bochka vs Daytona and bochka vs Modal.

Questions people ask

Is Daytona cheaper than Modal?

It depends on the job. Modal is cheaper per hour for one agent ($178 a month against $245 for one running all month), but it ends sessions at 24 hours and resets files outside Volumes, so it does not fit that scenario. For 300 user sandboxes, Modal fits on Team at $792 a month, while Daytona needs a custom limit; bochka comes to $26 and $200 for those two.

Which is faster, Daytona or Modal?

In the same public benchmark at 4 vCPU / 8 GB, Daytona's Linux VM class did 21.52 runs per second and Modal's default sandbox 12.79. Daytona's default container class reported no result. bochka did 26.69 in that run.

Can Daytona and Modal run Docker?

Daytona runs Docker in all its classes. Modal runs Docker only with its VM runtime; the default gVisor sandbox does not document Docker support. Every bochka sandbox runs Docker with root and systemd.

How long can a sandbox run on Daytona and Modal?

Daytona has no time cap: the wall-clock limit is off unless you set one, and auto-stop can be turned off. A Modal sandbox runs 5 minutes by default and 24 hours at most. bochka has no session cap on paid plans.

Do Daytona and Modal have GPUs?

Both do. Daytona rents Nvidia cards from RTX 4090 to B300 and AMD MI355X, and Modal rents GPUs from T4 to B300. bochka has no GPUs, so GPU jobs belong on one of them.

Is bochka SOC 2 compliant?

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

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.