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.