bochka vs Mastra

Mastra is a framework for building AI agents in TypeScript, plus a platform that hosts them and hands out sandboxes that are destroyed when idle. bochka is the machine itself: a full VM per agent with Docker, a desktop, open ports and coding agents you drive from outside.

Where bochka stands out

A machine that stays

A bochka sandbox stops instead of disappearing. Its disk is saved every minute and on stop, it costs nothing while stopped, and you can SSH back in later. A Mastra sandbox is destroyed after its idle timeout, and a new one boots from the last filesystem checkpoint only if you gave it a stable id.

Docker, a desktop and open ports

Every bochka sandbox has root, systemd, Docker and /dev/kvm, a 60fps desktop with Chromium and computer use, and HTTPS URLs on up to 50 ports plus raw TCP. Mastra's own sandbox is headless, its docs do not mention Docker or root, and it exposes no ports.

Coding agents you drive from outside

bochka ships Claude Code, Codex, OpenCode and other agents in each sandbox, and your app can prompt them, steer them mid-task and stream their events. Its credentials proxy keeps real AI keys outside the VM and can switch to another account when one runs out of credits.

The companies and products

bochka

bochka.xyz 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.

Mastra

Mastra is an open-source TypeScript framework for building AI agents, with a hosted platform to deploy and run them.

You write agents, tools, workflows and memory with the Mastra framework, then deploy them to Mastra platform, which runs your Mastra server in a container and adds Studio, observability, hosted databases and a model gateway. For running commands, each environment gets a workspace with a file bucket and on-demand sandboxes, which are Debian Linux VMs on Railway by default or E2B. It is an app platform for agent builders, so it overlaps with bochka only where your agent needs a machine to work in.

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 workloadbochka: price rankMastra: price rank
Software factory
100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month
A software factory needs machines that keep their work and run Docker; Mastra sandboxes are destroyed when idle and its docs do not mention Docker or root.
3rd cheapest of 367
$634 a month
240th of 367, with limits
$3,284 a month
Always-on AI employees
50 machines 24/7 · 2 vCPU / 4 GB
Mastra is good at the agent logic itself, but an always-on assistant on its platform means the Persistent Server add-on per project, and its sandboxes still time out when idle.
5th cheapest of 366
$657 a month
321st of 366, with limits
$8,098 a month
Code interpreter bursts
100 at once · 1 vCPU / 2 GB · 200,000 sessions of 1 min a month
Short code runs are what Mastra sandboxes are made for: start, run a command over the exec API, and let the idle timeout clean up.
186th of 345, with limits
$2,000 a month
305th of 345, with limits
$1,069 a month
Sandboxes for your users
300 at once · 2 vCPU / 4 GB · 30,000 sessions of 23 min a month
Mastra does not publish how many sandboxes can run at once, so 300 sandboxes for your users is unconfirmed there.
Cheapest of 361
$209 a month
307th of 361, with limits
$2,843 a month
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
300th of 360, with limits
$12,681 a month
Agent evals
250 at once · 4 vCPU / 8 GB · 15,000 sessions of 20 min a month
10th cheapest of 364
$200 a month
288th of 364, with limits
$1,250 a month
CI runners
40 at once · 8 vCPU / 16 GB · 6,000 sessions of 12 min a month
4th cheapest of 377
$86 a month
277th of 377, with limits
$439 a month
24/7 dev boxes
1 machine 24/7 · 4 vCPU / 8 GB
A dev box needs SSH and a disk that stays; Mastra sandboxes are reached only through an exec WebSocket and are destroyed after the idle timeout.
18th cheapest of 368
$26 a month
305th of 368, with limits
$224 a month
Computer-use agents
50 at once · 4 vCPU / 8 GB · 20,000 sessions of 15 min a month
Mastra's own sandbox has no desktop; computer-use tools work only through Daytona or E2B Desktop with your own account there.
6th cheapest of 369
$200 a month
249th of 369, with limits
$1,170 a month
Browser-use agents
50 at once · 2 vCPU / 4 GB · 30,000 sessions of 10 min a month
No browser comes with Mastra's own sandbox, so a browser agent needs another provider plugged into the framework.
7th cheapest of 367
$200 a month
316th of 367, with limits
$1,170 a month
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
322nd of 346, with limits
$1,509 a month
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
298th of 338, with limits
$25,115 a month
Parallel red teaming
200 at once · 2 vCPU / 4 GB · 5,000 sessions of 30 min a month
Red teaming often needs open ports and raw TCP; Mastra's sandbox docs describe no exposed ports at all.
2nd cheapest of 360
$200 a month
305th of 360, with limits
$840 a month
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

FeaturebochkaMastra
Kind of productSandbox VMs for agents, driven by API, CLI or SDKAgent framework and app platform; sandboxes are one part of a workspace
IsolationEvery sandbox is a full VM with its own kernelSandboxes are Debian Linux VMs on Railway by default, or E2B microVMs; your server runs in a container
Docker and nested virtualizationDocker, root, systemd and /dev/kvm on every machineThe sandbox docs do not mention Docker, root or /dev/kvm; templates add apt, pip and npm packages
Machine size4 vCPU / 8 GB by default, up to 8 vCPU / 16 GB on the $20 plan and 16 vCPU / 32 GB from $100Billed in CPU hours with no published hardware; Railway ignores the CPU and memory settings, E2B defaults to 2 CPUs and 1 GB
When the sandbox goes idleYou stop it; the disk is kept, with snapshots every minute and on stop, and a stopped sandbox costs nothingDestroyed after the idle timeout; files come back only from the last checkpoint, and only if you passed a stable id
ForkFork a running sandbox; disk only, no memoryFork a running sandbox's filesystem into a fresh boot; no live processes
Reaching the sandboxHTTPS URLs for up to 50 ports, token-protected; raw TCP; SSHSandboxes are reached through an exec WebSocket with no exposed ports or SSH; your server deploy gets a public URL
Desktop and computer use60fps desktop and Chromium, computer use and browser control, embeddable streamNone in Mastra's own sandbox; the framework's computer tools work with Daytona or E2B Desktop
Coding agentsClaude Code, Codex, OpenCode and more preinstalled, with a prompt, steer and events APIAn HTTP API for agents you build with Mastra; Claude Code or Codex over ACP if you install them yourself
Keeping keys out of the sandboxAI credentials proxy for model providers and any HTTPS API you register; switch a credential to another account when credits run outEnvironment variables baked into the sandbox at creation; a model gateway billed by token
Agent framework, memory and observabilityNone; bring your own framework and run it inside a sandboxAgents, workflows, memory, Studio, tracing, hosted Postgres and LibSQL in one product
Sandbox backendsbochka's own VMsPlug in Daytona, E2B, Modal, Vercel, Cloudflare, Blaxel, Docker and more, or write your own provider
Self-hostingHosted onlyApache 2.0 framework you host anywhere; Enterprise platform on-prem or in your cloud
RegionsEU only: Germany, Finland, Franceus (Portland, Ashburn, San Francisco) and eu (Amsterdam)
Compliance and transparencySOC 2 is in progress. We're open about where we stand: live status and data retention policy.SOC 2
Every feature Battleships tracks (43)
FeaturebochkaMastra
Full VM (own kernel)YesYes
Docker insideYesNot published
Nested virtualizationYesNot published
RootYesNot published
SystemdYesNot published
Desktop GUIYesNo
BrowserYesNo
Computer-use APIYesNo
SSHYesNo
Persistent diskYesYes
Pause/resumeYesNo
Automatic snapshotsYesYes
Fork/cloneYesYes
Live fork (no pause)YesYes
Memory forkNoNo
Custom image (Docker or snapshot)YesYes
≥24 h sessionsYesYes
Idle auto-stopNoYes
Wake on requestNoYes
HTTPS preview URLsYesYes
Raw TCP inboundYesNot published
Public IPv4NoNo
Egress allowlistNoNo
Secret proxyYesNo
Secret proxy for any APIYesNo
Preinstalled agentsYesNo
Agent harness APIYesNo
MCP serverNoNo
GPUNoNo
WindowsNoNo
Arm64NoNo
Self-hostingNoYes
BYOCNoYes
Open sourceNoYes
Scoped API keysYesNot published
Spend limitsYesNot published
Usage per sandbox (API)YesNo
Audit logsNoYes
SSONoYes
SOC 2NoYes
HIPAANoNo
EU data residencyYesYes
Zero data retentionYesNot published

Performance

bochka26.69 runs/s
MastraNot measured

There is no comparable measurement. bochka did 26.69 Node.js build-and-test runs per second at 4 vCPU / 8 GB in StarSling's public benchmark, but Mastra has no result there, and it does not publish what hardware one of its CPU hours buys.

Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Mastra 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.

Scenariobochka, a monthMastra, 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$290 · Teams · with limits
One agent that never stops
4 vCPU / 8 GB, 50 GB disk, running 24/7 all month
$26 · $20/mo$414 · Teams · with limits
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$2,230 · Teams · with limits
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$1,395 · Teams · with limits
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$2,736 · Teams · with limits

bochka: You pick a monthly plan from $20, and all of it becomes usage credit spent per second on running sandboxes. A stopped sandbox costs nothing and keeps its disk.

Mastra: Mastra bills CPU hours: Starter is free with 24 hours, then $0.35 an hour, and Teams has a $250 plan fee with 250 hours, then $0.25 an hour. It does not say how many vCPUs or how much memory a CPU hour is, so our bills count one CPU hour per sandbox hour; a 24/7 server is a $100 add-on per project, and egress, traces, memory tokens, databases and model tokens bill on top.

Limits in those scenarios

Mastra is marked as not a clean fit in every scenario because it is an app platform first and does not publish machine sizes, so its bills rest on a CPU hour of unknown size. It also publishes no limit on how many sandboxes run at once, so 300 sandboxes for your users or 1,000 jobs at once are unconfirmed there. Its sandboxes are destroyed at the idle timeout, which matters for any agent that waits. On bochka, the 1,000-job burst is queued above 90 starts a minute and needs more starts per day than the $2,000 plan allows.

ScenariobochkaMastra
One coding agent, workdaysNone that bite
  • adjacent product, not a like-for-like sandbox
  • machine size not published
  • different kind of product: app platform
  • machine size per session not published
One agent that never stopsNone that bite
  • adjacent product, not a like-for-like sandbox
  • machine size not published
  • different kind of product: app platform
  • machine size per session not published
50 agents in parallelNone that bite
  • adjacent product, not a like-for-like sandbox
  • not confirmed: Docker inside
  • machine size not published
  • different kind of product: app platform
Sandboxes for your usersNone that bite
  • adjacent product, not a like-for-like sandbox
  • machine size not published
  • different kind of product: app platform
  • not confirmed: how many machines can run at once (you need 300; the typical published limit is 50)
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)
  • adjacent product, not a like-for-like sandbox
  • machine size not published
  • different kind of product: app platform
  • not confirmed: how many machines can run at once (you need 1,000; the typical published limit is 50)

Which one should you use?

Use Mastra when

you are building your own agent in TypeScript and want the framework, memory, tracing and hosting in one place, short-lived sandboxes next to it, US regions or a self-hosted setup.

  • A whole framework for building agents. Useful if you are writing your own agent: Mastra gives you agents, workflows, memory, tracing and hosting in one TypeScript framework.
  • Open source and self-hosted. Useful if you must run everything yourself: the framework is Apache 2.0, and Enterprise runs the platform on-prem or in your cloud.
  • US regions. Useful if your users or data are in the US: Mastra runs in Portland, Ashburn and San Francisco as well as Amsterdam.

Use bochka when

your agents need a real machine for hours or days: a full VM that keeps its disk, with Docker, a desktop, open ports, and coding agents you drive by API while their keys stay outside.

  • A machine that stays. An agent that waits on a review past the idle timeout loses its running processes and anything written since the last checkpoint. Keeping it alive means a long timeout or the Persistent Server add-on, which covers your server, not the sandbox.
  • Docker, a desktop and open ports. An agent that runs docker compose, tests a web app in a real browser or shows a preview link needs those pieces. On Mastra you get them by plugging in another provider, such as Daytona or E2B Desktop, and paying it too.
  • Coding agents you drive from outside. Mastra's agent API drives agents you write in its framework. To run Claude Code or Codex you install it yourself and wire it up over ACP, and its keys sit in the sandbox as environment variables that agent code can read.

Questions people ask

Is bochka cheaper than Mastra?

In the scenarios we priced, yes, but Mastra's numbers rest on a CPU hour of unpublished size. One coding agent on workdays comes to $20 on bochka and $290 on Mastra Teams, one agent running all month to $26 versus $414, and 50 agents in parallel to $317 versus $2,230. For 1,000 short jobs at once it is $2,000 against $2,736, and neither fits cleanly.

Is Mastra a sandbox?

Not mainly. Mastra is a TypeScript framework for building agents, and its platform hosts them. Each environment also gets a workspace with on-demand sandboxes, which are Debian Linux VMs on Railway by default, destroyed when idle.

Can a Mastra agent use another sandbox?

Yes. The framework supports many sandbox backends, including Daytona, E2B, Modal, Vercel and Docker, and you can add one by implementing its sandbox provider interface. Each backend has its own persistence, networking and limits.

Do Mastra sandboxes keep their files?

Only through checkpoints. If you pass a stable id, a new sandbox boots from the last filesystem checkpoint of the old one, but running processes and writes after that checkpoint are lost. A bochka sandbox stops instead, keeps its disk and costs nothing while stopped.

Where does my data run?

bochka runs only in the EU (Germany, Finland and France), with EU data residency and a zero data retention option. Mastra has a us zone (Portland, Ashburn, San Francisco) and an eu zone (Amsterdam), and new environments default to the US.

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. Mastra's trust center says it received its SOC 2 Type II report in October 2025.

Start a sandbox

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.