Skip to content

Agent Environments

Templates are ready-to-run images. Create a sandbox with a template id and the environment is on the PATH — no Dockerfile, no npm install, no waiting for a base layer to warm up.

python
sandbox = client.sandboxes.create(
    template="claude-code",
    env={"ANTHROPIC_API_KEY": key},
)
result = sandbox.run('claude "refactor the auth module"')

List what your account can see with client.templates.list() or GET /sandboxes/templates.

Coding agents

TemplateCLIAuth (via env)
claude-codeClaude CodeANTHROPIC_AUTH_TOKEN or ANTHROPIC_API_KEY
codexOpenAI CodexOPENAI_API_KEY; endpoint/model via OPENAI_BASE_URL / OPENAI_MODEL
gemini-cliGemini CLIGEMINI_API_KEY; endpoint/model via GEMINI_BASE_URL / GEMINI_MODEL
deepseek-harnessDeepSeek Harness (dsh)DEEPSEEK_API_KEY
qwen-codeQwen CodeOPENAI_API_KEY; endpoint/model via OPENAI_BASE_URL / OPENAI_MODEL
kimi-cliKimi CLI (Moonshot)KIMI_API_KEY; endpoint/model via KIMI_BASE_URL / KIMI_MODEL_NAME

Agent CLIs are version-pinned per template release.

Compute

TemplateWhat you get
pythonPython 3.12 for scripts and notebooks
nodeNode.js 22 for JavaScript and TypeScript workloads
ubuntuBare Ubuntu 22.04 with a shell
code-interpreterJupyter-style interpreter with execd; use the stateful code API

Browser

TemplateWhat you get
playwrightHeadless Chromium driven by Playwright
chromeChromium with VNC and remote DevTools on port 9222

Desktop

TemplateWhat you get
vscodecode-server (VS Code in the browser) and its toolchain
desktopXFCE with Xvfb, x11vnc and noVNC preinstalled

Both serve their UI over WebSockets, which public endpoints do not carry yet, so today you drive them from inside the sandbox. See VS Code and Desktop.

Expose ports publicly from the console's endpoint panel or GET /sandboxes/{id}/endpoints/{port} — HTTP today, WebSockets once the ingress gateway ships.

Start-up time

Agent templates resolve to prebuilt images, so the CLI is already on the PATH when the sandbox reports Running — there is no install step to wait through.

Passing secrets

Prefer not to hand long-lived provider keys through env where you can bind them at the network boundary instead — see Secrets & Credential Vault. Today that path is not available yet; env injection is the supported default.