E2B SDK v2.29.0 adds file metadata and filesystem event entry info
E2B releases `e2b@2.29.0` with user-defined file metadata on sandbox file operations and an `includeEntry`/`include_entry` option for filesystem directory watching, plus a broad set of JS/Python SDK alignment fixes.
Score breakdown
The release extends the E2B sandbox filesystem API with persistent, queryable file metadata and richer filesystem events, while closing a broad set of behavioral inconsistencies between the JS and Python SDKs.
- 01File uploads now accept a `metadata` option, persisted as extended attributes in the `user.e2b.` xattr namespace and returned on subsequent filesystem reads
- 02Metadata is transmitted as `X-Metadata-<key>: <value>` HTTP headers; keys must be valid HTTP header tokens and values must be printable US-ASCII
- 03File metadata feature requires envd 0.6.2 or later
E2B's `e2b@2.29.0` release ships two minor feature additions. First, file uploads now support user-defined metadata: the `write`, `writeFiles`, and `write_files` methods accept a `metadata` option whose key-value pairs are sent as `X-Metadata-<key>: <value>` HTTP request headers. The sandbox lowercases keys, and envd persists them as extended attributes in the `user.e2b.` xattr namespace, returning them on all subsequent filesystem reads — including any `user.e2b.*` xattrs set out-of-band. Metadata is validated client-side (keys must be valid HTTP header tokens; values must be printable US-ASCII), and invalid input raises `InvalidArgumentError` / `InvalidArgumentException`. The same metadata map is applied to every file in a multi-file upload. This feature requires envd 0.6.2 or later. Second, filesystem directory watching gains an `includeEntry`/`include_entry` option: when enabled, each `FilesystemEvent` carries the affected entry's `EntryInfo` on a best-effort basis, left unset for events where the path no longer exists (e.g., remove or rename-away). This requires envd 0.6.3 or later; using the option against an older sandbox raises a template error.
The patch changes focus on closing behavioral gaps between the JS and Python SDKs.
The patch changes focus on closing behavioral gaps between the JS and Python SDKs. On the Python side, `commands.send_stdin` and `CommandHandle.send_stdin` now accept `bytes` in addition to `str`; `git.reset` now accepts a typed `GitResetMode` (now exported); `sandbox_url` is propagated through `get_api_params`; `Template.from_image()` now raises when only one of `username`/`password` is provided; `get_info()` no longer carries the envd access token on the returned `SandboxInfo`; and `get_metrics()` now raises `TemplateException` (previously `SandboxException`). On the JS side, `Sandbox.getInfo()` now includes `sandboxDomain` and `getFullInfo` is deprecated in favor of `getInfo`; `Sandbox.getMetrics()` returns `[]` in debug mode; `Template.fromImage()` now requires both credentials when registry credentials are provided; `Template.getBuildStatus()` defaults `logsOffset` to `0`; `requestTimeoutMs: 0` explicitly disables the request timeout; and `getMetrics()` now throws `TemplateError` (previously `SandboxError`) when the sandbox is too old.
Key facts
- 01File uploads now accept a `metadata` option, persisted as extended attributes in the `user.e2b.` xattr namespace and returned on subsequent filesystem reads
- 02Metadata is transmitted as `X-Metadata-<key>: <value>` HTTP headers; keys must be valid HTTP header tokens and values must be printable US-ASCII
- 03File metadata feature requires envd 0.6.2 or later
- 04New `includeEntry`/`include_entry` option for directory watching attaches `EntryInfo` to each `FilesystemEvent` on a best-effort basis
- 05Directory watching with `includeEntry` requires envd 0.6.3 or later; using it against an older sandbox raises a template error
- 06Python SDK: `commands.send_stdin` now accepts `bytes` in addition to `str`, and `GitResetMode` is now exported
- 07JS SDK: `getFullInfo` is deprecated and now wraps `getInfo`; `requestTimeoutMs: 0` explicitly disables the request timeout
Topics
Summary and scoring are generated automatically from the original article. We always link back to the publisher and never republish images or paywalled content. Last processed Jun 11, 2026 · 08:34 UTC. How this works →