'use client'; import { useState } from 'react'; import { Terminal, Check, ArrowRight } from 'lucide-react'; const CopyInstallButton = () => { const [copied, setCopied] = useState(false); const installCommand = 'npx rivet-dev/sandbox-agent'; const handleCopy = async () => { try { await navigator.clipboard.writeText(installCommand); setCopied(true); setTimeout(() => setCopied(false), 2000); } catch (err) { console.error('Failed to copy:', err); } }; return ( ); }; export function Hero() { return (

API for
Sandbox Agents

One API to run Claude Code, Codex, and Amp inside any sandbox. Manage transcripts, maintain state, and swap agents with zero refactoring.

Read the Docs
Supported Sandbox Providers
example_agent.ts
import{' '} {'{ SandboxAgent }'}{' '} from{' '} "@sandbox/sdk"; // Start Claude Code in an E2B sandbox const{' '} agent = await{' '} SandboxAgent. spawn {'({'} provider: "e2b", engine: "claude-code" {'}'});
const{' '} transcript = await{' '} agent. getTranscript ();
); } function CodeLine({ num, children }: { num: string; children: React.ReactNode }) { return (
{num} {children}
); } function DaytonaLogo() { return ( Daytona ); } function E2BLogo() { return ( E2B ); } function VercelLogo() { return ( ); }