Sandbox snapshots
You can now create persistent point-in-time captures of a running sandbox, including both filesystem and memory state. Use a snapshot to spawn new sandboxes that start from the exact same state — great for creating reusable checkpoints across multiple sandbox instances.Available in both the JavaScript and Python SDKs. Learn more about snapshots.Lifecycle configuration and AutoResume
The newlifecycle option on Sandbox.create lets you control what happens when a sandbox times out. Set onTimeout to pause instead of kill, and enable autoResume so paused sandboxes automatically wake up when traffic arrives.This replaces the previous betaPause / beta_pause API. See the AutoResume docs.CLI pause and resume commands
You can now pause and resume sandboxes directly from the CLI:Template tags API
A newgetTags (JS) / get_tags (Python) method lets you list all tags for a template, returning each tag’s name, build ID, and creation date. Read more about template tags.Recursive directory listing
ThelistDir filesystem method now supports a depth parameter (1–10) for recursively listing subdirectory contents in a single call. See the filesystem docs.CLI piping support
The E2B CLI now supports piping, so you can compose commands with other tools in your shell workflows.Updates
- CLI sandbox list now has a default limit. The
sandbox listcommand defaults to returning up to 1,000 results. Pass--limit 0for no limit. A note is printed when results are truncated. - API timeout responses changed from 503 to 408. Requests that exceed the server timeout now return
408 Request Timeoutinstead of503 Service Unavailable, making it easier to distinguish timeouts from server errors.
Bug fixes
- Dotfiles included in template uploads. Files like
.envand.gitignoreare now correctly included when uploading template files. Previously, glob defaults excluded dotfiles. - Python SDK async transport fix. The async HTTP transport is now scoped per event loop, fixing errors when
asyncio.run()is called multiple times or from different threads. - JS SDK
listSandboxespagination fix. Fixed a bug where passing alimittolistSandboxescould cause the SDK to paginate through all results instead of stopping at the requested count. - JS SDK sandbox headers in self-hosted environments. Sandbox headers are now correctly passed to the internal API client, fixing sandbox creation failures in self-hosted setups.
- Clearer error messages. The
set_timeouterror message no longer incorrectly references “Paused” when a sandbox is not found.