Skip to content

Compatibility with the E2B SDK

CoAI Sandbox is tested against the official SDKs e2b 2.52.0 (PyPI and npm) and the Code Interpreter SDKs e2b-code-interpreter 2.10.1 and @e2b/code-interpreter 2.8.0: the SDKs' own test suites run against a fresh CoAI Sandbox, unchanged (the e2b suites every night). Older 2.x releases are checked for the basic steps (test/sdk-compat/minver).

Supported

Area What works
Sandboxes Sandbox.create (template, timeout, metadata, envs), connect, kill, set_timeout, get_info, Sandbox.list with filters, order and pagination
Commands commands.run (foreground and background), streaming output, send_stdin, kill, list, connect; PTY
Files read, write, write many, list, exists, info, metadata, rename, remove, make directories, watch, secured access
Network allow_internet_access, network.allow_out / deny_out (within your level), updating the network of a running sandbox, the traffic access token
Hosts get_host(port) and the <port>-<id> addresses, with the access token where your level needs it
Metrics get_metrics of a sandbox and the latest metrics of your sandboxes (their SDK tests join the nightly matrix with M3's beta suites)
Code Interpreter the code-interpreter-v1 template: run_code in Python, JavaScript, R, Bash and Java (its SDKs' own suites: the matrix's group 2)

Not yet (planned)

Feature What you get today
Pause and resume (pause, resume, connect to a paused sandbox) 501 not_implemented
lifecycle / autoPause, autoResume, keep_memory 400 unsupported_feature
network.httpsPorts, network.maskRequestHost 400 unsupported_feature

Not supported

Feature What you get
Building templates (Template, the E2B CLI), custom templates 501 not_implemented; use base or code-interpreter-v1
MCP gateway (mcp=) 400 unsupported_feature
network.rules (header transforms), network.egressProxy 400 unsupported_feature
Volumes (volume_mounts), workload identity (iam) 400 unsupported_feature
Snapshots, forks, sandbox logs and the other API routes not listed above 501 not_implemented
E2B access tokens (E2B_ACCESS_TOKEN, Authorization: Bearer) 401: use an API key (E2B_API_KEY)

Differences you may notice:

  • The base template has python3 but no python command.
  • Limits are those of your level (tiers and limits page), not E2B's Hobby or Pro limits; for now internet access is an allowlist at every level (network page; open internet access for A1 and A2 is planned), so tests that reach arbitrary sites fail.
  • Sandbox addresses are under us-dal.coaisandbox.app, the API at api.sandbox.coaiwork.com.