--- title: "ComputeSDK" description: "Deploy Sandbox Agent using ComputeSDK's provider-agnostic sandbox API." --- [ComputeSDK](https://computesdk.com) provides a unified interface for managing sandboxes across multiple providers. Write once, deploy anywhere by changing environment variables. ## Prerequisites - `COMPUTESDK_API_KEY` from [console.computesdk.com](https://console.computesdk.com) - Provider API key (one of: `E2B_API_KEY`, `DAYTONA_API_KEY`, `VERCEL_TOKEN`, `MODAL_TOKEN_ID` + `MODAL_TOKEN_SECRET`, `BLAXEL_API_KEY`, `CSB_API_KEY`) - `ANTHROPIC_API_KEY` or `OPENAI_API_KEY` ## TypeScript example ```bash npm install sandbox-agent@0.3.x computesdk ``` ```typescript import { SandboxAgent } from "sandbox-agent"; import { computesdk } from "sandbox-agent/computesdk"; const envs: Record = {}; if (process.env.ANTHROPIC_API_KEY) envs.ANTHROPIC_API_KEY = process.env.ANTHROPIC_API_KEY; if (process.env.OPENAI_API_KEY) envs.OPENAI_API_KEY = process.env.OPENAI_API_KEY; const sdk = await SandboxAgent.start({ sandbox: computesdk({ create: { envs }, }), }); try { const session = await sdk.createSession({ agent: "claude" }); const response = await session.prompt([ { type: "text", text: "Summarize this repository" }, ]); console.log(response.stopReason); } finally { await sdk.destroySandbox(); } ``` The `computesdk` provider handles sandbox creation, Sandbox Agent installation, agent setup, and server startup automatically. ComputeSDK routes to your configured provider behind the scenes. Before calling `SandboxAgent.start()`, configure ComputeSDK with your provider: ```typescript import { compute } from "computesdk"; compute.setConfig({ provider: "e2b", // or auto-detect via detectProvider() computesdkApiKey: process.env.COMPUTESDK_API_KEY, }); ``` ## Supported providers ComputeSDK auto-detects your provider from environment variables: | Provider | Environment Variables | |----------|----------------------| | E2B | `E2B_API_KEY` | | Daytona | `DAYTONA_API_KEY` | | Vercel | `VERCEL_TOKEN` or `VERCEL_OIDC_TOKEN` | | Modal | `MODAL_TOKEN_ID` + `MODAL_TOKEN_SECRET` | | Blaxel | `BLAXEL_API_KEY` | | CodeSandbox | `CSB_API_KEY` | ## Notes - **Provider resolution**: Set `COMPUTESDK_PROVIDER` to force a specific provider, or let ComputeSDK auto-detect from API keys. - `sandbox.runCommand(..., { background: true })` keeps the server running while your app continues. - `sandbox.getUrl({ port })` returns a public URL for the sandbox port. - Always destroy the sandbox when done to avoid leaking resources.