← Blog

Pick your agent's computer by design, not by price

John Jeong

In October I decided Charlie should have its own computer.

(Quick disclaimer, since you're probably wondering who Charlie is: I'm building Char, an AI notepad. Charlie is the assistant that lives inside it and works with you to get things done.)

Anyway, back to the computer. Not the user's Mac — its own. A place to keep files, run Python, and keep working after you close the laptop.

I thought picking the box would take an afternoon. It took a month. Along the way we tested three providers for real, priced thirteen, and made most of the mistakes available.

Everyone building agents is asking the same question right now: which sandbox should I use? Most of the answers are written by someone selling a sandbox. Here's ours — and why I think the answer depends on what you're building and how it should feel, not on the price page.

Why an agent needs a computer at all

The moment an agent can run bash, Python or a browser, it's running code nobody reviewed. That code needs somewhere to live — and it isn't your server, and it isn't your user's laptop.

A box does three jobs. It contains the damage, so a bad command breaks only the box. It holds the tools: Python, ffmpeg, a browser, files. And it keeps working while the user is away.

You might not need one. If your agent only calls APIs and writes text, skip it. If it only browses, a managed browser is cheaper — that's what we use for Charlie's browsing.

How we got here

What we needed. The box had to live in the US, next to our server in San Jose. It had to keep a user's files between tasks. And nothing inside it could ever reach our keys.

Boat looked perfect — until we measured it. It was the cheapest per hour by far, with a desktop built in. But it runs only in the EU, so every action paid 148 ms crossing the Atlantic. Each wake also counted as a start, and the $20 plan would have capped us at a few dozen daily users.

We went with Fly.

Fly was cheap, but isolation was on us. Our first firewall wasn't enough: root inside a box could still reach Fly's own API. So we gave every computer its own app and private network, in a separate org. It worked — and it was work.

Then came the question that changed the answer. Every sandbox startup was pitching "a dedicated machine per agent." I asked: isn't that just a Fly machine per agent? Mostly, yes. What actually matters is where the agent loop lives, and what that does to the experience.

Then I found the leaderboard everyone shares, battleships.dev. Boat was #1. Boat also runs it.

So we ran our own numbers. Thirteen vendors, three scales, list prices. For our design at the time — loop on our server, box only for tools — Fly was about 2× cheaper than anything else.

Monthly cost at 1,000 active users across 14 options: Fly Machines at $1,666, E2B with Pro plans at $4,112, Boat at $435 to $500 but EU-only, Modal and Runloop highest

Each user here gets 2 vCPU / 4 GB, 20 active hours and 5 GB of storage a month, at October 2026 list prices. Boat is cheapest but EU-only, and Prized is our estimate from its docs. Sprites, Vercel and Cloudflare bill busy CPU, so their low ends assume an agent that is busy 10% of the time.

But cheap wasn't the experience we wanted. We wanted Charlie to come back mid-task, exactly where it left off — not restore a home folder and start over. That takes a VM per session that can pause with its memory.

Only E2B had a memory pause that's free while parked, plus fork, SOC 2 and a US West region. We picked it that afternoon and had it running the same day. Charlie's computer starts fresh in 6–10 seconds and comes back from a pause in about 2.

What I learned

  1. Design picks the box, not the price page. Fly was 2× cheaper for our design at every scale we modeled. We still switched, because our next design put the loop inside the box. The answer flipped on architecture, not scale.
  2. Idle is the bill. At 20 active hours a month, compute was $0.84 per user. The disk sitting idle was $0.75 — 45% of the bill. Suspending machines instead of deleting them made it worse, not better.
  3. Measure from where your users are. Every resume number on every pricing page is a vendor claim, and nobody independent has measured resume-from-pause for any of them. Ours were often nothing like the brochure — one Boat create took 501 seconds.
  4. Read the limits, not the rates. Boat's start cap. E2B's free tier ending every session after an hour. The cheapest box per hour can be the one you can't actually ship on.
  5. Keep your keys out of the box. If the loop lives outside, no model key ever enters the VM. If it lives inside, you need secret injection at the egress proxy before you move.
  6. The box is the easy half. The hard part is an agent loop that survives crashes and deploys: checkpoints, resume, wake on events. Most of what these vendors sell is operations — fast memory restore, dense idle packing, a fork that works.

How to pick yours

Start from what you're building and how it should feel. One question does most of the work: does your agent loop run inside the box or outside it?

Decision map: if the agent loop runs on your server, pick E2B for a throwaway box or Fly for a per-user computer; if it runs inside the box, pick E2B for one session each or an E2B fleet for fan-out, and an always-on box plus a realtime layer for people sharing it live

Picks 1–3 and 7 rest on our own tests and cost model; 4–6 are reasoned from vendor docs, not tested by us.

What you're buildingPickRunner-up
1. Throwaway box for model-written codeE2BVercel Sandbox, which bills CPU only while busy
2. A computer per user, loop on your serverFly MachinesFly Sprites
3. A VM per session, loop insideE2BBlaxel
4. Multiplayer: people and agents in one live workspaceAn always-on box plus a realtime layer (Durable Objects, Rivet)Freestyle
5. Orchestration: agents fan out and report backAn E2B fleet, with your own database as the busMorph
6. Browser-only tasksA managed browser (we use Kernel)—
7. Past 20,000–50,000 active usersSelf-host E2B's open-source stack, or run E2B in your own cloudNegotiated E2B Enterprise

That's how we ended up on E2B. Not because it was cheapest — it wasn't — but because it fit the experience we wanted Charlie to have.

Yours should follow what you're building and what you want it to feel like. Start there. Then measure from your own region.

Appendix: the numbers

List prices for a 2 vCPU / 4 GB box as of October 2026. Idle cost assumes a 5 GB home kept all month.

VendorPrice per active hourIdle per monthMemory pauseUS WestSOC 2
Boat$0.018 + $20/mo planFree 14 days, then deletedNo, disk onlyNo, EU onlyIn progress
Fly Machines$0.042 shared; $0.109 performance$0.75 volumeSuspend, not durableYesYes
Northflank$0.067$0.75 volumeNoYesYes
Vercel Sandbox$0.085 RAM + $0.128 per busy vCPU-hour~$0.40 snapshotNo, files onlyYesYes
Morph~$0.10~$0.07YesUndocumentedNone found
Prized$0.131~$1 pausedUnclearYesNone claimed
Freestyle$0.132 + $50/mo planStorage onlyYesUndocumentedNot checked
Cloudflare~$0.20 for 2 vCPU / 6 GiB fully busyDisk lost on stopNo, files onlyNo pinningUnverified
Fly SpritesUp to $0.165, billed on use~$0.10No, RAM lost on sleepUndocumentedUnstated
E2B$0.166 + $150/mo Pro$0Yes, plus forkYes, by defaultYes
Daytona$0.166Up to $0.39VM sandboxes only"us" onlyYes
Blaxel$0.166, billed on RAM~$1.40YesYesSelf-claimed
Modal$0.238; $0.416 in us-westVolume, 1 TiB freeAlpha, 7-day expiryAt 1.75×Yes
Runloop$0.317$1.25 diskSuspend needs $250/mo ProUndocumentedYes