Files
e2b-dev--e2b/packages/js-sdk
devin-ai-integration[bot] 29794d0d56 Route volume-api generation through redocly filtering (#1731)
## Summary

Follow-up to #1728 (per review:
https://github.com/e2b-dev/E2B/pull/1728#discussion_r3822169921): the
volume-content client generation now bundles through redocly first, like
the envd pipeline, so future `x-internal: true` operations in the synced
spec are dropped before SDK schemas are generated.

- `redocly.yaml`: new `volume` API rooted at
`spec/openapi-volumecontent.yml` with the same `filter-out: x-internal`
+ `remove-unused-components` decorators as `envd`.
- js-sdk `generate:volume-api` and python-sdk `generate-volume-api` now
run `redocly bundle volume -o spec/openapi_generated.volume.yml` before
their generators (the bundle output is gitignored like the other
`openapi_generated.*.yml` files).

Regenerated output: the Python volume client is byte-identical (the spec
has no `x-internal` operations today); the JS `schema.gen.ts` only loses
four response components (400/401/403/409) that no operation referenced,
dropped by `remove-unused-components`.

Now that #1728 is merged, this is rebased onto `main` (single commit,
codegen plumbing only) and ready for review.

Link to Devin session:
https://app.devin.ai/sessions/175095f75cbe42df8710718a1ff2a6a3
Requested by: @mishushakov

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: mish@e2b.dev <mish@e2b.dev>
2026-08-21 14:59:45 +00:00
..
2026-08-21 12:41:38 +00:00
2025-08-21 08:45:25 -07:00
2025-06-05 07:10:07 -07:00

E2B Logo

Last 1 month downloads for the JavaScript SDK

What is E2B?

E2B is an open-source infrastructure that allows you to run AI-generated code in secure isolated sandboxes in the cloud. To start and control sandboxes, use our JavaScript SDK or Python SDK.

Run your first Sandbox

1. Install SDK

npm i e2b

2. Get your E2B API key

  1. Sign up to E2B here.
  2. Get your API key here.
  3. Set environment variable with your API key
E2B_API_KEY=e2b_***

3. Start a sandbox and run commands

import { Sandbox } from 'e2b'

const sandbox = await Sandbox.create()
const result = await sandbox.commands.run('echo "Hello from E2B!"')
console.log(result.stdout) // Hello from E2B!

4. Bind the configuration to a client

The top-level Sandbox, Volume, Template and Secret exports read their configuration from the environment variables. To use an explicit configuration — e.g. several API keys or domains in one process — create an E2B client and use the resources it exposes:

import { E2B } from 'e2b'

const client = new E2B({ apiKey: 'e2b_***', domain: 'e2b.dev' })

const sandbox = await client.Sandbox.create()
const volume = await client.Volume.create('my-volume')
const exists = await client.Template.exists('my-template')
await client.Secret.create('openai-api-key', 'sk-***')

// The classes can be destructured and used like the top-level ones.
const { Sandbox } = client
const paginator = Sandbox.list()

Per-call options still take precedence over the client's options, and clients are isolated from each other and from the env-configured top-level exports.

5. Code execution with Code Interpreter

If you need runCode(), install the Code Interpreter SDK:

npm i @e2b/code-interpreter
import { Sandbox } from '@e2b/code-interpreter'

const sandbox = await Sandbox.create()
const execution = await sandbox.runCode('x = 1; x += 1; x')
console.log(execution.text)  // outputs 2

6. Check docs

Visit E2B documentation.

7. E2B cookbook

Visit our Cookbook to get inspired by examples with different LLMs and AI frameworks.