Skip to main content
Tenki sandboxes are disposable Linux VMs for running agent or automation code.

What you’re integrating

Anchor SDK in Tenki’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.
  • Tenki 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.

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 a Dockerfile ENV line or in the sandbox entrypoint. Without this alias, session and task calls fail auth (401) even when ANCHOR_API_KEY is set.

API key (BYOK)

Each Tenki customer brings their own Anchor API key as a sandbox secret: ANCHOR_API_KEY=sk-.... List it in Tenki’s secrets UI as a known integration. Anchor bills the customer directly on usage — Tenki 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.

Session hygiene

  • Reuse one session per agent run — do not create a session per page.
  • Set timeout.max_duration / timeout.idle_timeout (minutes) so abandoned sandboxes do not hold browsers open. See Session Timeout.
  • Delete the session on sandbox teardown (delete_session / deleteSession).
  • Show live_view_url in the sandbox UI so users can watch the browser run.

Egress

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