NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2535 most downloaded on PyPI
E2B Code Interpreter - Stateful code execution
Last release 3 days ago
01 Oct 2026
Release timing varies
gaps range from 2 weeks to 4 months
Nearly every release is documented
notes for 32 of 33 stable releases
106 versions withdrawn
withdrawn after publishing
3 years old
154 releases · first in 2024
2f92cc3 : Pin the Jupyter transport to HTTP/1.1 with get_transport(config, http_version="1.1") , following the renamed argument in e2b 2.52.0 (now the
get_transport(config, http_version="1.1"), following the renamed argument in e2b 2.52.0 (now the minimum supported version).390a1bf : Add an E2B client to the Code Interpreter SDKs that binds the connection configuration explicitly, so the API key and domain no longer have
E2B client to the Code Interpreter SDKs that binds the connection configuration explicitly, so the API key and domain no longer have to come from the environment variables: new E2B({ apiKey, domain }).Sandbox.create() in JavaScript and E2B(api_key=..., domain=...).Sandbox.create() in Python. The client exposes the package's own Sandbox (and AsyncSandbox in Python) together with the core Volume, Template and Secret resources, per-call options still take precedence, and multiple clients are isolated from each other and from the env-configured top-level exports.One column per month.
Nothing published for this version
8d0a81b : Bump E2B SDK dependency: JavaScript to 2.39.0, Python to 2.39.1.
8d0a81b: Bump E2B SDK dependency: JavaScript to 2.39.0, Python to 2.39.1.
The Python floor is 2.39.1 specifically: e2b 2.38.0 moved the SDK's HTTP stack onto pyqwest and dropped the http2 parameter that Jupyter requests rely on to pin HTTP/1.1, so any e2b in >=2.38.0, <2.39.1 raises TypeError on every code execution. 2.39.1 restores it.
Also fixes run_code's timeout in the Python SDK. The new transport collapses httpx's per-phase timeouts into a single whole-request deadline and takes the longest phase, so passing timeout as the read timeout alongside request_timeout on the write and pool phases made the effective deadline max(timeout, request_timeout) — any timeout shorter than request_timeout (60s by default) was ignored and the execution ran on until request_timeout. timeout now bounds the request on its own, and timeout=0 disables the deadline instead of inheriting the connect timeout.
eb70a98 : Honor the sandboxUrl / sandbox_url option and the E2B_SANDBOX_URL environment variable when connecting to the Jupyter server, matching the b
sandboxUrl/sandbox_url option and the E2B_SANDBOX_URL environment variable when connecting to the Jupyter server, matching the base E2B SDK. Jupyter requests now also send the E2b-Sandbox-Id and E2b-Sandbox-Port headers so a custom sandbox URL (e.g. a gateway or proxy) can route them to the right sandbox and port.fe3e5db : Throw a descriptive TimeoutError / TimeoutException instead of a raw socket error (e.g. ECONNRESET ) when the sandbox is killed or times out
TimeoutError/TimeoutException instead of a raw socket error (e.g. ECONNRESET) when the sandbox is killed or times out while a request (runCode/run_code, context management) is in progress94bebe8 : Bump E2B package: add API-only custom header options for the JavaScript and Python SDKs
E2B client to the Code Interpreter SDKs that binds the connection configuration explicitly, so the API key and domain no longer have to come from the environment variables: new E2B({ apiKey, domain }).Sandbox.create() in JavaScript and E2B(api_key=..., domain=...).Sandbox.create() in Python. The client exposes the package's own Sandbox (and AsyncSandbox in Python) together with the core Volume, Template and Secret resources, per-call options still take precedence, and multiple clients are isolated from each other and from the env-configured top-level exports.a214875: Update e2b SDK versions
a214875: Update e2b SDK versions
Remove Sandbox.betaCreate (JS) and Sandbox.beta_create (Python). These methods were a beta of the lifecycle configuration that has since shipped on Sandbox.create. Migrate by calling Sandbox.create with the lifecycle option:
// before
await Sandbox.betaCreate({ autoPause: true })
// after
await Sandbox.create({ lifecycle: { onTimeout: 'pause' } })
# before
Sandbox.beta_create(auto_pause=True)
# after
Sandbox.create(lifecycle={"on_timeout": "pause"})
sandboxUrl/sandbox_url option and the E2B_SANDBOX_URL environment variable when connecting to the Jupyter server, matching the base E2B SDK. Jupyter requests now also send the E2b-Sandbox-Id and E2b-Sandbox-Port headers so a custom sandbox URL (e.g. a gateway or proxy) can route them to the right sandbox and port.4db7f15: Raise the minimum supported e2b SDK dependency versions.
6d54054: Add autocomplete support for javascript, typescript, r, java, and bash languages in runCode/run_code and createCodeContext/create_code_contex
TimeoutError/TimeoutException instead of a raw socket error (e.g. ECONNRESET) when the sandbox is killed or times out while a request (runCode/run_code, context management) is in progress94bebe8: Bump E2B package: add API-only custom header options for the JavaScript and Python SDKs
secure option of Sandbox.create (still accepted, now ignored): every sandbox is created through the v2 API, which always secures envd access. allow_internet_access is no longer preset to True; when omitted, the API default applies.a214875: Update e2b SDK versions
a214875: Update e2b SDK versions
Remove Sandbox.betaCreate (JS) and Sandbox.beta_create (Python). These methods were a beta of the lifecycle configuration that has since shipped on Sandbox.create. Migrate by calling Sandbox.create with the lifecycle option:
// before
await Sandbox.betaCreate({ autoPause: true })
// after
await Sandbox.create({ lifecycle: { onTimeout: 'pause' } })
# before
Sandbox.beta_create(auto_pause=True)
# after
Sandbox.create(lifecycle={"on_timeout": "pause"})
E2B client to the Desktop SDKs that binds the connection configuration explicitly, so the API key and domain no longer have to come from the environment variables: new E2B({ apiKey, domain }).Sandbox.create() in JavaScript and E2B(api_key=..., domain=...).Sandbox.create() in Python. The client exposes the package's own Sandbox together with the core Volume, Template and Secret resources, per-call options still take precedence, and multiple clients are isolated from each other and from the env-configured top-level exports.### Patch Changes - 59ec6f4: secure traffic access
66eabba: added context methods to the sdk
E2B client to the Desktop SDKs that binds the connection configuration explicitly, so the API key and domain no longer have to come from the environment variables: new E2B({ apiKey, domain }).Sandbox.create() in JavaScript and E2B(api_key=..., domain=...).Sandbox.create() in Python. The client exposes the package's own Sandbox together with the core Volume, Template and Secret resources, per-call options still take precedence, and multiple clients are isolated from each other and from the env-configured top-level exports.66eabba: added context methods to the sdk
### Patch Changes - 699d26c: Await async callbacks
345fe4f: Update e2b version to use the new connect method
be28fb7: Fix issue with secure False
6f15355: e2b 2.3.0 bump, includes a new build system 2.0 release
It's using secure option by default. This is a breaking change for custom code interpreters, you will need to rebuild the template. New code interpret…
secure option by default. This is a breaking change for custom code interpreters, you will need to rebuild the template. New code interpreter template correctly forward the secure token.Nothing published for this version
### Patch Changes - 912b97e: updated e2b version
2b7833b: added MIT License source
c590c09: bump e2b core to 1.4.0
Nothing published for this version
Nothing published for this version
Nothing published for this version
0a27b5c: Update core SDK to add proxy parameter
Nothing published for this version
Nothing published for this version
2ee6ffb: Update JS SDK target to es2017
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
3fe798e: Fix json serialization for Result object
0d7e24f: Updated E2B SDK version
5493595: Remove bug in init method
### Patch Changes - f14a2a5: Add to_dict() method
Nothing published for this version
Nothing published for this version
Nothing published for this version
### Patch Changes - 9604b90: Update httpx version
### Patch Changes - 6022f33: bump e2b package
### Patch Changes - 822302a: Bump version
b6ac8ad: updated dependencies to latest
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →