
コーディングエージェントをサンドボックスで実行。HTTPでそれらを制御。Claude Code、Codex、OpenCode、Ampをサポート。
サンドボックス内で動作するサーバー。アプリケーションからリモート接続して、Claude Code、Codex、OpenCode、Cursor、Amp、または Pi を制御し、イベントをストリーム配信、権限を処理、セッションを管理します。
ドキュメント — API リファレンス — Discord
実験的: Gigacode — OpenCode の TUI を任意のコーディングエージェントで使用。
コーディングエージェントをリモートで実行するのは困難です。既存の SDK はローカル実行を前提としており、SSH は TTY 処理とストリーミングを破壊し、エージェントごとに API が異なります。ゼロから構築すると、コーディングエージェントごとにすべてを再実装する必要があります。
Sandbox Agent は次の3つの問題を解決します。
コーディングエージェントにはサンドボックスが必要 — AI に本番サーバーで任意のコードを実行させるわけにはいきません。コーディングエージェントには隔離された環境が必要ですが、既存の SDK はローカル実行を前提としています。Sandbox Agent はサンドボックス内で動作するサーバーで、HTTP/SSE を公開します。
コーディングエージェントはそれぞれ異なる — Claude Code、Codex、OpenCode、Cursor、Amp、Pi は、独自の API、イベント形式、動作を持っています。エージェントを切り替えるたびに統合コードを書き直す必要があります。Sandbox Agent は1つの HTTP API を提供します。コードを一度書けば、設定変更だけでエージェントを切り替えられます。
セッションは一時的 — エージェントのトランスクリプトはサンドボックス内に存在します。プロセスが終了するとすべて失われます。Sandbox Agent はイベントをユニバーサルスキーマでストレージにストリーム配信します。Postgres、ClickHouse、または Rivet に保存できます。後で再生したり、すべてを監査したりできます。

Sandbox Agent は、クライアントアプリケーションとさまざまなコーディングエージェントの間のユニバーサルアダプターとして機能します。各エージェントには、ユニバーサル API とエージェント固有のインターフェースの間の変換を処理する独自のアダプターがあります。
ユースケースに最適なインストール方法を選択してください。
skill をインストール:
npx skills add rivet-dev/skills -s sandbox-agent
bunx skills add rivet-dev/skills -s sandbox-agent
SDK を Node またはブラウザアプリケーションに直接インポート。完全な型安全性とストリーミングサポート。
インストール
npm install [email protected]
bun add [email protected]
# オプション: Bun がネイティブバイナリの postinstall スクリプトを実行できるようにする (SandboxAgent.start() に必要)。
bun pm trust @sandbox-agent/cli-linux-x64 @sandbox-agent/cli-linux-arm64 @sandbox-agent/cli-darwin-arm64 @sandbox-agent/cli-darwin-x64 @sandbox-agent/cli-win32-x64
セットアップ
ローカル (埋め込みモード):
import { SandboxAgent } from "sandbox-agent";
const client = await SandboxAgent.start();
リモート (サーバーモード):
import { SandboxAgent } from "sandbox-agent";
const client = await SandboxAgent.connect({
baseUrl: "http://127.0.0.1:2468",
token: process.env.SANDBOX_TOKEN,
});
API 概要
const agents = await client.listAgents();
await client.createSession("demo", {
agent: "codex",
agentMode: "default",
});
await client.postMessage("demo", { message: "SDK からこんにちは。" });
for await (const event of client.streamEvents("demo", { offset: 0 })) {
console.log(event.type, event.data);
}
HTTP サーバーとして実行し、任意の言語から接続。E2B、Daytona、Vercel、または独自のインフラストラクチャにデプロイ。
# インストール
curl -fsSL https://releases.rivet.dev/sandbox-agent/0.4.x/install.sh | sh
# 実行
sandbox-agent server --token "$SANDBOX_TOKEN" --host 127.0.0.1 --port 2468
オプション: エージェントバイナリを事前インストール (サーバーには不要。スキップした場合、初回使用時に遅延インストールされます):
sandbox-agent install-agent --all
ローカルで認証を無効にする:
sandbox-agent server --no-token --host 127.0.0.1 --port 2468
CLI ラッパーをインストール (オプションですが便利):
npm install -g @sandbox-agent/[email protected]
# Bun がネイティブバイナリの postinstall スクリプトを実行できるようにする。
bun add -g @sandbox-agent/[email protected]
bun pm -g trust @sandbox-agent/cli-linux-x64 @sandbox-agent/cli-linux-arm64 @sandbox-agent/cli-darwin-arm64 @sandbox-agent/cli-darwin-x64 @sandbox-agent/cli-win32-x64
セッションを作成しメッセージを送信:
sandbox-agent api sessions create my-session --agent codex --endpoint http://127.0.0.1:2468 --token "$SANDBOX_TOKEN"
sandbox-agent api sessions send-message my-session --message "Hello" --endpoint http://127.0.0.1:2468 --token "$SANDBOX_TOKEN"
sandbox-agent api sessions send-message-stream my-session --message "Hello" --endpoint http://127.0.0.1:2468 --token "$SANDBOX_TOKEN"
npx も使用できます:
npx @sandbox-agent/[email protected] --help
bunx @sandbox-agent/[email protected] --help
組み込みのインスペクター UI でセッションとイベントをデバッグ (例: http://localhost:2468/ui/)。

多くの場合、サンドボックスでエージェントをテストするために個人の API トークンを使用する必要があります:
sandbox-agent credentials extract-env --export
これにより、Sandbox Agent SDK でテストするための OpenAI/Anthropic などの API キーの環境変数が出力されます。
いいえ、補完関係にあります。AI SDK はチャットインターフェースを構築し、LLM を呼び出すためのものです。この SDK は、コードを記述してコマンドを実行する自律型コーディングエージェントを制御するためのものです。UI には AI SDK を、エージェントに実際にコーディングさせるときはこちらを使用してください。
Claude Code、Codex、OpenCode、Cursor、Amp、Pi です。SDK はそれらの API を正規化するため、コードを変更せずにエージェントを切り替えることができます。
この SDK はセッションデータの永続化を処理しません。イベントはユニバーサル JSON スキーマでストリーム配信され、任意の場所に永続化できます。Postgres を使用したパターンについてはセッション管理を、Rivet Actors については Rivet を参照してください。
どちらも可能です。開発時はローカルで実行し、本番環境では E2B、Daytona、Vercel Sandboxes にデプロイできます。
サーバーは単一の Rust バイナリで、curl インストールが可能なあらゆる環境で動作します。プラットフォームが Linux バイナリ (Docker、VM など) を実行できるなら動作します。E2B、Daytona、Vercel Sandboxes のデプロイガイドを参照してください。
はい。sandbox-agent credentials extract-env を使用して、ローカルのエージェント設定 (Claude Code、Codex、OpenCode、Amp、Pi) から API キーを抽出し、サンドボックス環境に渡してください。
Rust により、単一の静的バイナリ、高速な起動、予測可能なメモリ使用量が実現します。そのため、Node.js のような大きなランタイムを出荷せずに、サンドボックス内や CI で簡単に実行できます。
開発時は可能です。しかし本番環境では分離が必要です。コーディングエージェントは任意のコードを実行します。それをサーバー上で行うわけにはいきません。サンドボックスが分離を提供し、この SDK がコーディングエージェントをリモート制御するための HTTP API を提供します。
公式 SDK はローカル実行を前提としています。プロセスを起動し、対話型ターミナルを期待します。この SDK はサンドボックス内でサーバーを実行し、HTTP 経由で接続します。最初からリモート制御向けに設計されています。
コーディングエージェントは適切な TTY 処理を備えた対話型ターミナルを期待します。パイプされたコマンドによる SSH は、ツール確認、ストリーム出力、人間参加型フローを破壊します。SDK はこれらすべてをクリーンな HTTP API で処理します。
| コンポーネント | 説明 |
|---|
| サーバー | HTTP + SSE API を公開する Rust デーモン (sandbox-agent server) |
| SDK | 埋め込みモードとサーバーモードを備えた TypeScript クライアント |
| インスペクター | セッションとイベントを検査するための組み込み UI |
| CLI | sandbox-agent (同一バイナリ、npm ラッパー付き) で HTTP エンドポイントをミラーリング |