mirror of
https://github.com/harivansh-afk/sandbox-agent.git
synced 2026-04-15 21:03:26 +00:00
- Add `sandbox-agent/modal` provider using Modal SDK with node:22-slim image - Add `sandbox-agent/computesdk` provider using ComputeSDK's unified sandbox API - Update Modal and ComputeSDK examples to use new SDK providers - Update Modal and ComputeSDK deploy docs with provider-based examples - Add Modal to quickstart CodeGroup and docs.json navigation - Add provider test entries for Modal and ComputeSDK - Remove old standalone example files (modal.ts, computesdk.ts) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
76 lines
2.5 KiB
Text
76 lines
2.5 KiB
Text
---
|
|
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<string, string> = {};
|
|
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.
|