Skip to main content
E2B sandboxes are isolated cloud VMs for running agent or automation code.

What you’re integrating

Anchor SDK in E2B’s base image → Anchor Cloud. The sandbox stays vanilla and lightweight. Chromium runs as a managed Anchor cloud session; the sandbox just holds the SDK and talks to it over HTTPS + CDP.
  • E2B stays the code runtime — install packages, run a script, call a model.
  • Anchor stays the remote browser — stealth, proxies, live view, and session lifecycle.
  • Do not launch a browser inside the sandbox. Skip E2B Computer use (desktop / VNC) and in-sandbox Chromium — live view for this integration is Anchor’s remote session.

Create the sandbox

Pass keys at create time on Sandbox.create. Template setEnvs / set_envs is build-time only — secrets and the SDK alias belong on create.
JavaScript timeoutMs is milliseconds. Python timeout is seconds. That value is the E2B sandbox lifetime (Hobby max 1 hour, Pro max 24 hours) — it is separate from Anchor’s session timeout.max_duration / timeout.idle_timeout. Run the snippets below inside the sandbox. From the host you can write them in with files.write and commands.run.

Preinstall the SDK

Install into the image app directory — not globally. npm install -g is not importable from user projects.
playwright / playwright-core are only needed for direct CDP control, not for agent.task / agentTask. Alias the env var the raw SDK actually reads, so code that does not call setConfig / api_key= still works:
Put that on Sandbox.create envs (as above) or in the sandbox entrypoint. Without this alias, session and task calls fail auth (401) even when ANCHOR_API_KEY is set. There is no public Anchor E2B template. Bake anchorbrowser (and Playwright only if you need CDP) into your own tag so every sandbox starts ready:
Build that template with the E2B SDK or CLI, then create from the tag (Sandbox.create('your-tag', { envs, timeoutMs })). Runtime pip install / npm install works if you skip a template, but it adds 30–60s to every sandbox.

API key (BYOK)

Each E2B customer brings their own Anchor API key as a sandbox env: ANCHOR_API_KEY=sk-.... Anchor bills the customer directly on usage — E2B does not meter or bill browser usage.
Keyless trial (optional): agents without a key can self-provision a small trial key via Agent Access — guide → puzzle challenge (120s TTL) → submit the answer for an api_key, sent as header anchor-api-key. Trial keys are capped (1 credit, 60-minute session cap). Fine for exploration, not a BYOK replacement. Do not market this as unlimited browser access.

Expose a browser tool

Wrap the SDK so agents call it declaratively. agent.task (Python) / agentTask (Node) return an object; the result string is result.data.result.

Optional: full Playwright control

Connect over CDP to the created cloud session (session.data.cdp_url).
That URL carries the API key in the query string — never log it. Surface session.data.live_view_url to humans instead (https://live.anchorbrowser.io/inspector.html?sessionId=...). Closing Playwright only disconnects — it does not end the cloud session.
If the remote browser needs to visit an app running inside the sandbox, expose the port with getHost / get_host and open that public HTTPS URL. The cloud browser cannot reach localhost inside the VM.

Session hygiene

You have two lifecycles to close:
  • Reuse one Anchor session per agent run — do not create a session per page.
  • Set Anchor timeout.max_duration / timeout.idle_timeout (minutes) so an abandoned sandbox does not hold a browser open. See Session Timeout.
  • Delete the Anchor session on teardown (delete_session / deleteSession). sandbox.kill() stops the VM only — it does not end the cloud browser.
  • Set the E2B sandbox timeout (timeoutMs / timeout) and call sandbox.kill() when the run finishes.
  • Show live_view_url in the sandbox UI so users can watch the browser run. That stream is the remote Anchor session, not E2B’s desktop / VNC view.

Egress

If E2B sandboxes restrict egress, allowlist:
  • https://api.anchorbrowser.io
  • wss://connect.anchorbrowser.io
  • https://live.anchorbrowser.io
See the Sandboxes overview and Create a Session.