前提条件
開始する前に、以下を準備してください。-
cws-agentパスに対するSANDBOX_USERaction が付与された CoreWeave API アクセストークン。SDK では、シークレット注入に Forge APIキーも使用できます。詳しくは、Cursor キーの指定方法を選択するを参照してください。 - Cursor ユーザー APIキー と、Cursor CLI がサポートするモデルへのアクセス権。
- 公開リポジトリの URL。非公開リポジトリを使用する場合は、サンドボックス内に Git の認証情報が 必要です。
- Cursor、そのダウンロードホスト、および使用する Git ホストへのアウトバウンド接続。
CURSOR_API_KEY を読み取ります。Cursor は
プロンプト、ファイルの内容、ツールの出力を Cursor のサービスに送信することがあります。タスクに適したリポジトリと
認証情報を使用してください。
cws-agent で Cursor CLI を実行する
cws-agent を使用すると、サンドボックスの作成、Cursor のインストール、ターミナルのアタッチをまとめて行えます。
対話型のアタッチには、macOS、Linux、
または Windows Subsystem for Linux (WSL) 上の対話型ターミナル (TTY) が必要です。Windows ネイティブのターミナルはサポートされていません。
Cursor のキーをローカル環境でエクスポートしてください。cws-agent がこのキーをサンドボックスの
環境に転送します:
-
cws-agentのインストール手順に従います。 -
[SANDBOX-NAME]を、英小文字、数字、ハイフンからなる 1~40 文字の セッション名に置き換えます。先頭は英小文字または数字にしてください。[REPOSITORY-URL]はリポジトリの URL に置き換えます。Cursor は/workspace/projectで起動します。ワークスペースの信頼に関するプロンプトが表示された場合は、 承認してください。--permission-mode nativeを指定すると、Cursor の承認設定がそのまま維持されます。 指定しない場合、cws-agentは--forceを使用します。--no-config-syncを指定すると、 ローカルのスキルと Model Context Protocol (MCP) の設定はインポートされません。 -
後で取得できるファイルを作成するよう Cursor に依頼します。
タスク中に表示されるプロンプトはすべて承認します。
/exitで Cursor を終了します。 ローカルのターミナルでファイルを読み取ります。Hello from CoreWeaveと出力されれば成功です。Cursor を終了しても、 サンドボックスは実行されたままです。 -
サンドボックス内のすべての Cursor セッションを終了したら、Cursor が残した
worker.sockソケットファイルを削除し、ワークスペースを保存してコンピュートを停止します。このクリーンアップでは、スナップショットの作成を妨げる可能性があるソケットファイルを削除します。downはサンドボックスを停止する前にスナップショットを作成します。 スナップショットの作成に失敗した場合、サンドボックスは実行されたままになります。リストアする前に、 エラーを解決してdownを再試行してください。 -
保存済みのワークスペースに戻るには、ローカルで
CURSOR_API_KEYをエクスポートした状態のまま、次のコマンドを実行します。Cursor にsandbox-proof.txtファイルを読み取るよう依頼し、正しくリストアされたことを検証します。 作業が完了したら Cursor を終了し、クリーンアップとdownコマンドを再度実行します。
無人でプロンプトを実行する
新しいセッション名を選択します。ローカルのターミナルで--detach を指定して起動し、ターミナルへのアタッチをスキップしてから、
プロンプトを送信します。
cws-agent run はデフォルトで Cursor の --force フラグを渡すため、ヘッドレスのタスクは対話型の承認なしでファイルを書き込めます。ただし、明示的な拒否ルールは Cursor 側で引き続き適用されます。
実行中のセッションにターミナルをアタッチするには、次のコマンドを実行します。
cws-agent exec で結果を読み取ります。
その後、cws-agent で Cursor CLI を実行する に示すとおり、
cws-agent down でソケットをクリーンアップして保存します。
Sandboxes SDK でタスクを実行する
Sandboxes SDK を使用して、タスクを直接管理します。 この方法では、専用のサンドボックスを作成し、Cursor を print モードで実行してファイルを取得した後、 クリーンアップブロックでサンドボックスを停止します。スナップショットは設定せず、cws-agent も必要ありません。
Cursor キーの指定方法を選択する
どちらのスクリプトも、第 1 引数として認証モードを受け取ります。
これらの例ではサーバーレス配置を使用します。Forge のシークレット注入を使用するには、Forge 認証とサーバーレス配置が必要です。
forge モードを使用する場合は、Forge 管理者に Cursor キーをチームシークレットとして追加するよう依頼してください。
ローカルのターミナルで、[FORGE-TEAM] をチーム名に、
[CURSOR-SECRET-NAME] をシークレット名に置き換えます。
CURSOR_API_KEY にマッピングします。詳しくは
Forge シークレットを使用する を参照してください。
coreweave モードの場合は、SANDBOX_USER IAM action が付与された CoreWeave API アクセストークンを CWSANDBOX_API_KEY に設定します。詳しくは 認証情報を選択して取得する を参照してください。続いて、同じローカルターミナルで Cursor キーをエクスポートします。
coreweave パスでは、Cursor キーをサンドボックス作成リクエスト内で平文の環境変数値として渡します。これは、認証情報にはシークレット参照を使用するという SDK の推奨事項に対する例外です。このパスは、認証情報の取り扱いに関する組織のポリシーで許可されている場合にのみ使用してください。リクエストをログしたり、キーをコミットしたりしないよう注意してください。
クライアントをインストールする
言語を選択し、クライアントをローカルにインストールします。- Python
- TypeScript
Python 3.11 以降と
uv を使用します。新しいプロジェクトディレクトリで次のコマンドを実行します。作成、実行、クリーンアップ
使用する言語のスクリプトを、記載のファイル名で保存します。各スクリプトは Cursor をインストールし、コマンドラインで渡されたリポジトリをクローンしたうえで、sandbox-proof.txt ファイルを書き込むよう Cursor に指示します。
--print、--force、--trust フラグは、それぞれ非対話型の出力の有効化、
ファイル変更の許可、ワークスペースの信頼を行います。この
例は、信頼できるリポジトリでのみ使用してください。詳細は
Cursor headless mode を参照してください。
- Python
- TypeScript
run_cursor_sandbox.py
[AUTH-MODE] を
forge または coreweave に、[REPOSITORY-URL] をリポジトリの URL に置き換えて実行します。
- Python
- TypeScript
Hello from CoreWeave を出力します。セットアップや実行の途中でエラーが発生した場合でも、
クリーンアップブロックで必ず stop() が呼び出されます。
追加で必要なファイルは、クリーンアップブロックが実行される前に取得してください。結果のサイズが大きい場合は、
ファイル操作を使用してください。
2 時間の有効期間は、起動時間を含む実時間の上限です。また、各
コマンドにも個別のタイムアウトが設定されています。コマンドのタイムアウトを変更しても、
サンドボックスのライフタイムは延長されません。
トラブルシューティング
よくある問題は、次の点を確認して解決してください。- サンドボックスの作成に失敗する場合は、選択した 認証モードの認証情報を確認してください。
-
Forge シークレットを解決できない場合は、
FORGE_TEAM、CURSOR_SECRET_NAME、 および APIキーのチームへのアクセス権を確認してください。 -
Cursor で認証エラーが発生する場合は、モードに応じて Forge シークレットまたはローカルの
CURSOR_API_KEYに設定されたキーを検証し、アカウントにモデルへのアクセス権があるかどうかを確認してください。 -
SDK のプロンプトで変更が提案されるだけの場合は、Cursor のコマンドに
--forceが含まれていることを確認してください。 - インストール、クローン、またはモデルへのリクエストが失敗する場合は、アウトバウンドの接続性 とプロバイダーの認証情報を確認してください。CoreWeave Kubernetes Service (CKS) に配置する場合は、 ランナーのポリシーで必要な送信先が許可されている必要があります。
次のステップ
詳細については、次のガイドを参照してください。- CoreWeave サンドボックスでエージェントを実行する では、配置、 長時間のセッション、ワークスペースのライフサイクルについて説明しています。
- cws-agent で Cursor を使用する では、保存済みの会話と設定のインポートについて説明しています。
- Cursor CLI のドキュメント では、エージェントの 設定とサポートされているモードについて説明しています。