## 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>
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
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.
