E2B doesn't do splashy launches. It does weekly point releases, and if you run untrusted agent code in its sandboxes, those point releases are where your ergonomics quietly get better or your assumptions quietly break. The last few weeks shipped a cluster worth reading: Python SDK 2.32.0 and JS e2b 2.33.0 both on July 13, following 2.31/2.32 on July 8.

secure cloud sandboxes for running AI-generated code
★ 13kPythone2b-dev/E2B

None of it is a headline feature. All of it is the kind of change you only feel once you're running many sandboxes, not one — which is exactly when a framework's defaults start to cost you.

Integration config moved out of the hot path#

The change most likely to touch your code: integration configuration is now set-once and process-wide. Where you used to pass an integration option on individual calls, you now call ConnectionConfig.set_integration() in Python or setIntegration() in JS a single time, and it applies for the process.

That's a small API shift with a real intent behind it. Per-call configuration is the kind of thing that's fine in a demo and a liability in production — one call site forgets the option, behaves differently, and you spend an afternoon finding it. Hoisting it to startup makes the configuration a property of the process, not a thing you remember to repeat. If you're upgrading, this is the one line to move.

Template builds got lighter#

Building sandbox templates is the slow part of the loop, and July went after it. Template copy layers gained a gzip option, on by default, that you can flip to false for files that are already compressed — no point paying to gzip a tarball. On the Python side, archive uploads now use a 1-hour timeout instead of inheriting the general 60-second API timeout, and archives spool to disk during upload so a cleanup failure can no longer mask an otherwise-successful upload.

These aren't features you'll tweet about. They're the difference between a sandbox layer you trust at 500 builds a day and one you babysit.

Under the hood the build tooling also moved from tsup to tsdown; the published artifacts are unchanged, so this is invisible unless you build from source.

Snapshots you can afford to keep#

Slightly earlier — JS 2.31, June 25 — E2B reworked how a sandbox persists when it times out. The object-form onTimeout now takes a keepMemory flag. Set keepMemory: false and you get a filesystem-only snapshot: the disk is preserved, the live memory isn't, and on resume the sandbox cold-boots from that filesystem state. pause() accepts the same option.

The reason to care is cost. Full snapshots that preserve RAM are heavier to store and keep around. For a lot of agent workloads the important state lives on the filesystem — the repo you cloned, the files the agent wrote — not in process memory. Filesystem-only snapshots let you keep sandboxes parked cheaply and accept a cold boot when the agent comes back, which for asynchronous or long-idle agents is usually the right trade.

Why this cluster matters#

Read together, the July releases aren't about new capability — they're about running E2B at scale without the defaults working against you. Process-wide integration config, cheaper snapshots, faster and safer template uploads: these are the seams that only show under load, and E2B spent the month sewing them shut.

If you're still choosing where to run agent code in the first place, that's a different question — we put E2B head-to-head with Modal and Daytona and walked through a full untrusted-code setup elsewhere. But if you're already on E2B, the upgrade is worth the ten minutes: move your integration call to startup, and take the lighter snapshots for free.