Skip to main content
CoreWeave のサンドボックスで Claude Code を実行し、操作方法を選択できます。ターミナルユーザーインターフェース (TUI) を使う場合は、ローカルのターミナルからサンドボックス内の Claude Code を操作します。Remote Control を使う場合は、Claude モバイルアプリ、Claude Desktop、または claude.ai/code から操作します。どちらの場合も、エージェントのプロセス、ツール、Workspaceはサンドボックス内で実行されます。モデルへのリクエストは、設定済みのモデルプロバイダーに送信されます。 Anthropic がエージェントループを管理し、サンドボックスでツールを実行するインテグレーションについては、Claude Managed Agents を参照してください。

前提条件

開始する前に、次のものを用意してください。
  • SANDBOX_USER action が付与された CoreWeave API アクセストークン。
  • ターミナルインターフェースを使用する場合は、Claude アカウント、または Claude Code でサポートされる API 認証情報。Remote Control を使用する場合は、Claude Pro、Max、Team、または Enterprise のサブスクリプション。APIキーおよび claude setup-token で発行したトークンでは Remote Control を認証できません。
  • サンドボックスがクローンできるリポジトリの URL。この例では公開リポジトリを使用しています。非公開リポジトリを使用する場合は、サンドボックス内に Git の認証情報が必要です。
このガイドの手順を実行するターミナルで、CoreWeave API アクセストークンをエクスポートします。
Remote Control を使用するには、Team アカウントおよび Enterprise アカウントで Owner がこの機能を有効にする必要があります。また、組織が Remote Control のトランスクリプトの保存を許可している必要があります。Zero Data Retention の要件がある組織では、この機能を有効にできません。Anthropic の Remote Control の要件を確認してください。 接続には送信方向の HTTPS を使用するため、サンドボックスの公開エンドポイントや受信ポートは不要です。 どちらのセットアップ方法でも、1 日の作業時間に合わせてサンドボックスのライフタイムを 8 時間に設定します。有効期間は作成時点から始まり、セットアップ時間やアイドル時間も含まれます。また、延長することはできません。有効期間が切れると、Claude が作業中であってもサンドボックスは停止し、セッションも終了します。作業が完了したら、有効期間が切れる前に結果を保存してサンドボックスを停止してください。 夜間にわたって作業する場合は、作成時に 24 時間を選択してください。cws-agent では --lifetime 24h を指定します。ソフトウェア開発キット (SDK) の例では、Python の max_lifetime_seconds または TypeScript の maxLifetimeSeconds を 24 * 3600 に設定します。

cws-agent のクイックスタート

cws-agent でサンドボックスを作成する場合は、このセットアップ手順を選択してください。クライアントライブラリで直接作成する場合は、Sandboxes SDK でのセットアップに進んでください。どちらの手順でも、いずれのインターフェースも使用できます。 cws-agent のインストール手順に従ってください。このツールは、ファイルシステムスナップショットでWorkspaceを保存、リストアするためのスナップショットボリュームを設定します。 Claude が開く前に、cws-agent がインポート対象のローカルスキルと Model Context Protocol (MCP) サーバーのプレビューを表示する場合があります。このガイドでは、インポートのプロンプトで Enter を押してスキップしてください。インポートは、後でエージェントツールのガイダンスに従って設定できます。 次のいずれかのインターフェースを選択してください。[SANDBOX-NAME] を cws-agent セッション名に、[REPOSITORY-URL] を公開リポジトリの URL に置き換えてください。セッション名には、小文字の英字、数字、ハイフンを 1~40 文字で使用し、英字または数字で始めてください。

ターミナルインターフェースを使用する

Anthropic APIキーを使用するには、サンドボックスを起動またはリストアする前に、ローカルターミナルの ANTHROPIC_API_KEY に読み込んでください。cws-agent はこの変数をサンドボックスに渡します。APIキーによる認証では、ブラウザーでのサインインは必要ありません。Claude Code の認証を参照してください。 Claude Code を起動し、ローカルターミナルを接続します。
Claude Code はサンドボックスの project ディレクトリで開きます。Workspaceの信頼に関するプロンプトに従ってください。APIキー認証の場合は、プロンプトが表示されたらキーを承認してください。アカウント認証が必要な場合は、Claude を終了して cws-agent login [SANDBOX-NAME] を実行し、そこで /login を完了してください。 --permission-mode native オプションは Claude 自身の承認設定を使用します。このオプションを指定しない場合、cws-agent はデフォルトでこれらの承認プロンプトを省略します。権限モードを参照してください。 APIキーを設定済みにもかかわらず Claude が Not logged in と表示し、キーの承認を求めるプロンプトも表示されない場合は、/exit で終了してから、オンボーディングを有効にして再接続してください:
このコマンドは Claude 自身の承認設定を使用します。続行する前に、Workspaceの信頼と API キーに関する確認に同意してください。 セッションを確認するに進み、プロンプトを送信して結果を検証してください。

Remote Control を使用する

デタッチされたサンドボックスを作成し、ターミナルを接続してサブスクリプションでサインインします。
接続コマンドは、サブスクリプションによるサインインや Remote Control 機能のチェックの妨げとなる設定をクリアします。また、オンボーディングを有効にするため IS_DEMO の設定を解除します。詳細は Claude Code の環境変数を参照してください。 Claude 内で、Claude サブスクリプションのアカウントを使用して /login を完了し、プロジェクトの信頼に関するプロンプトを承認します。/remote-control を実行して初回使用時の確認を承認したら、/exit で Claude を終了します。デタッチされたサーバーを起動する前に確認に応答できるよう、このステップはインタラクティブに実行してください。 ローカルのターミナルから、Claude 自身の承認設定を使用して Remote Control を起動します。
セッション URL が表示されたら、その URL を開きます。プロセスの開始を示すメッセージが表示されただけでは、接続できたとは言えません。Web、モバイル、またはデスクトップのクライアントからプロンプトを送信し、セッションを確認するの手順に従って結果を検証してください。 URL が表示されない場合は、リモートのログを確認します。
再試行する前に、サインインエラーや利用資格に関するエラーを解決してください。サーバーがインタラクティブプロンプトへの入力を待機している場合は、同じサンドボックス内でアタッチした tmux セッションからサーバーを再起動してください。cws-agent rc コマンドは出力をログにリダイレクトするため、既存のセッションにアタッチしてもプロンプトは表示されません。 ローカルのターミナルで、待機中のサーバーを停止し、代わりのセッションを開きます。
tmux 内で Remote Control を起動し、セッションでプロジェクトディレクトリが使用されるようにします。
表示されるプロンプトに応答し、表示された Claude Code の URL を開きます。接続を確認できたら、Ctrl-b に続けて d を押してデタッチし、サーバーを実行したままにします。置き換え後のセッションでは、ログは更新されず、出力は tmux に表示されます。セッションに戻るには、cws-agent connect [SANDBOX-NAME] --cmd 'tmux attach -t cws-remote-control' を実行します。

Sandboxes SDK で設定する

この代替手段では、Sandboxes SDK を使用して、どちらのインターフェースにも対応するサンドボックスを作成します。この方法は cws-agent に依存せず、スナップショットも設定しません。 このガイドで作成した仮想環境で Python スニペットを実行します。TypeScript スニペットを、クライアントをインストールした project 内の .mts ファイルとして保存し、npx tsx [FILENAME].mts で実行します。

サンドボックスを作成する

クライアントを選択し、ローカルにインストールします。
Python 3.11 以降と uv を使用します。
使用する言語のスクリプトを、記載のファイル名で保存します。このスクリプトは Claude Code と tmux をインストールし、コマンドラインで指定したリポジトリをクローンします。 どちらのスクリプトも、apt-get でパッケージをインストールし、/root/.local/bin/claude を使用するため、コンテナーを root として実行する必要があります。ランナーのポリシーで、このユーザーを許可しておいてください。
create_claude_sandbox.py
[REPOSITORY-URL] を公開リポジトリの URL に置き換えて実行します。
出力されたサンドボックス ID を控えておいてください。これらのスタンドアロンの例では、スクリプトが終了してもサンドボックスは実行されたままです。サンドボックスは、停止するか 8 時間の有効期間が切れるまで実行され続けます。Python では、サンドボックスを Session またはコンテキストマネージャーでラップすると、このクリーンアップの動作が変わります。

ターミナルを接続する

SDK を使用して、同じ CoreWeave 認証情報でローカルターミナルを接続します。このスクリプトはキー入力をサンドボックスのシェルに転送し、シェルの終了時にターミナルを元の状態に戻します。
macOS または Linux では、次のコードを attach_sandbox.py として保存します:
attach_sandbox.py
[SANDBOX-ID] を出力された ID に置き換えて、次を実行します:
代わりに cwsandbox sh [SANDBOX-ID] を使用することもできます。追加依存関係の cli をインストールし、CWSANDBOX_API_KEY には、そのサンドボックスで使用した CoreWeave API アクセストークンを設定しておいてください。 これで、ターミナルがサンドボックス内のシェルに接続されました。次のいずれかのインターフェースを選択して Claude Code を起動します。

ターミナルインターフェースを起動する

API キー認証の場合は、Claude を起動する前にサンドボックスの Bash シェルでキーを入力してください。入力は非表示になり、コマンド履歴にも記録されません:
サンドボックス内で、クローンしたリポジトリから Claude を起動します。
APIキーを使用する場合は、その使用を承認してください。それ以外の場合は、アカウントへのサインインを完了してください。次に、Workspaceの信頼を確認するプロンプトを承認し、セッションを確認するに進んでください。

Remote Control を開始する

このインターフェースでは、Claude のサブスクリプションでサインインしてください。以前にこのサンドボックスで APIキーを使用していた場合は、サインインする前に、シェルと Claude のすべての設定からその APIキーを削除してください。
サンドボックス内で、project に名前付きの tmux セッションを開きます。
tmux で Claude を起動します:
サブスクリプションでのサインインを完了し、Workspaceの信頼確認プロンプトを承認します。/exit で Claude を終了してから、同じディレクトリで Remote Control サーバーを起動します。
--spawn same-dir オプションを指定すると、リモートセッションでプロジェクトディレクトリが使用されます。確認を求められた場合は、初回使用時の確認を承認してください。表示された Claude Code の URL を、同じ Claude アカウントでサインインしているブラウザーで開きます。 接続を確認できたら、Ctrl-b、続けて d を押して tmux からデタッチし、サンドボックスのシェルを終了します。サーバーは tmux セッション内で実行され続けます。再接続するには、アタッチ用スクリプトを再実行してから tmux attach -t claude-remote を実行します。

セッションを確認する

ターミナルインターフェースの場合は、アタッチ済みの Claude Code TUI でプロンプトを送信します。Remote Control の場合は、同じアカウントで、ブラウザーから claude.ai/code にアクセスするか、Claude のモバイルアプリまたは Desktop アプリでセッションを開きます。 一意で、機密情報ではないテスト値を選択し、次のプロンプト内の [PROOF-VALUE] をその値に置き換えます。
確認を求められた場合は、ファイルの書き込みを承認します。ターミナルインターフェースを使用した場合は /exit で Claude を終了し、SDK でセットアップした場合はさらに exit でサンドボックスのシェルを終了します。ローカルのターミナルから、使用しているセットアップに応じたコマンドで結果を検証します。
値が一致すれば、作成したサンドボックスに Claude が書き込んだことを確認できます。

実行中のサンドボックスに戻る

Claude を終了したりターミナルを閉じたりしても、サンドボックスは実行されたままです。別のターミナルやマシンから戻るには、同じクライアントをインストールし、そのサンドボックスにアクセスできる認証情報で認証します。 cws-agent の場合は、名前でセッションを検索して、新しい Claude ターミナルを開きます。
connect コマンドは、既存のサンドボックスとファイルを使用します。以前の会話は再開されません。保存済みの会話を続行するには、まずその会話を実行していた元の Claude プロセスを終了します。次に履歴をリスト表示し、[CONVERSATION-ID] を再開したい会話の ID に置き換えます。
SDK を使用する場合は、同じサンドボックス ID を指定してターミナル接続スクリプトを再実行してから、Claude を再度起動します。サンドボックスの有効期間が 24 時間より長くても、1 つの SDK シェルセッションは 24 時間で終了します。サンドボックス自体は実行され続けるため、スクリプトを再実行すれば再接続できます。Remote Control の場合は、サーバーが実行されている間にセッション URL を再度開いてください。 サンドボックスへの接続とエージェントプロセスの有効期間は、それぞれ独立しています。切断後もターミナルのエージェントに作業を続けさせる必要がある場合は、tmux または cws-agent の worktree セッションを使用してください。 再接続しても、サンドボックスの有効期間はリセットされません。サンドボックスがすでに停止している場合は、代わりに保存済みのWorkspaceをリストアしてください。

結果を保持して停止する

長時間のセッションでは、有効期間の終了間際まで待たずに、途中で進捗を保存してください。cws-agent を使用する場合は、Claude の書き込みが終わるのを待ち、Workspaceに書き込むほかのプロセスを一時停止してから、サンドボックスを停止せずに /workspace ディレクトリを取得します。
コマンドが READY のスナップショットを報告するまで待ちます。スナップショットは、その時点のファイルを取得します。それ以降の編集を保存するには、改めてスナップショットを作成する必要があります。取得の動作と保存済みの認証情報については、スナップショットのガイダンスを参照してください。有効期間の終了による有効期限切れで最新の変更が保存されることを前提にしないでください。 ローカルのターミナルで、検証済みのテキスト結果をお使いのマシンにコピーします。
コードの変更については、Get changes back を参照してください。スナップショットはリモートのWorkspaceを保持するもので、ファイルをローカルマシンにコピーするものではありません。 作業を終了するときは、実行中のタスクとWorkspaceへの書き込みが完了するまで待ってから、Workspaceを保存してコンピュートを停止します。
down コマンドは、スナップショットを確定してから停止します。スナップショットの作成に失敗した場合、サンドボックスは実行中のままになります。cws-agent status [SANDBOX-NAME] を確認し、失敗の原因を解決してから再試行してください。現在の変更を保存せずに停止するには、cws-agent down [SANDBOX-NAME] --no-snapshot を使用します。 SDK を直接使用する場合、この例には永続マウントがありません。リストア可能なWorkspaceが必要な場合は、作成時にファイルシステムスナップショットを設定してください。ファイル操作で結果をコピーしてから、サンドボックスを停止します。
Claude を終了しただけでは、サンドボックスは停止せずに実行され続けます。サンドボックスを停止すると、Remote Control を含むエージェントのプロセスが終了します。スナップショットからファイルをリストアしても、そのプロセスは復元されません。必要に応じてサインインし、Remote Control を再度起動してください。 cws-agent で保存したWorkspaceに戻るには、新しいサンドボックスにリストアします。skills/MCP のインポートを求めるプロンプトが表示された場合は、Enter を押してスキップしてください。
Remote Control を使用する場合は、リストアした Claude TUI を /exit で終了してから、cws-agent connect 以降のサインインとサーバー起動の手順をもう一度実行します。サンドボックスはリストア時にすでに作成されているため、起動コマンドは実行不要です。保存済みの会話や並列 worktree については、cws-agent セッションガイドを参照してください。

トラブルシューティング

よくある問題を解決するには、以下の点を確認してください。
  • サンドボックスの作成に失敗する場合は、CoreWeave API アクセストークンと認証設定を確認してください。
  • インストール、クローン、またはモデルへのリクエストが失敗する場合は、アウトバウンドの接続性と、該当するプロバイダーの認証情報を確認してください。CoreWeave Kubernetes Service (CKS) への配置では、ランナーのポリシーでこれらの送信先を許可しておく必要があります。
  • ターミナルが切断された場合は、サンドボックスの実行中に再度アタッチしてください。ターミナルが切断されてもプロセスを維持するには、tmux などのターミナルマルチプレクサー内でプロセスを実行してください。
  • Remote Control で認証が拒否される場合は、Claude サブスクリプションでサインインしてください。また、リモート環境または Claude の設定から、競合する API キーの認証情報を削除してください。
  • Remote Control が利用できない場合は、Anthropic のトラブルシューティングガイドを参照して、組織設定、カスタム API エンドポイント、および必須の機能チェックを無効にしている環境変数を確認してください。
  • サンドボックスの有効期限が切れた場合は、新しいサンドボックスを作成してください。有効期間は作成後に延長できません。また、この SDK の例ではファイルシステムが自動的に保存されることはありません。

データの処理

コマンドはサンドボックス内で実行され、モデルへのリクエストは設定済みのプロバイダーに送信されます。Remote Control は、プロンプト、ツールのアクティビティ、会話の内容を Anthropic に送信するとともに、接続されたデバイス間で同期するためにトランスクリプトを保存します。詳細については、Remote Control のセキュリティおよび Claude Code のデータ使用を参照してください。

次のステップ

詳細については、次のガイドを参照してください。 claude.ai/code で新しいクラウドセッションを開始するたびにワーカーサンドボックスをプロビジョニングする方法については、Claude Code クラウドセッションを参照してください。
最終更新日 2026年10月15日