Deepseek ArtifactsDeepseek Artifacts
GitHub公式サンドボックスデモから

Copilotサンドボックスモード:図解使い方ガイド

ローカルサンドボックスは、GitHub Copilotのシェルコマンド・ファイルツール・ネットワークアクセスをOSレベルの箱の中にとどめます。公式デモに沿って、/sandboxで有効化し、ポリシーを調整し、切り離し、セッションごとクラウドへ預けるまでを解説します。

要点まとめ

  • サンドボックスモードは、Copilotのシェルコマンド・ファイルツール・MCP/LSPサーバーをOSサンドボックス内で実行します。VMやコンテナを使わず(macOSはSeatbelt、Linuxはbubblewrap、WindowsはProcessContainer)、ファイル・ネットワーク・資格情報へのアクセスを制限します。
  • Copilotアプリではサンドボックスは既定でオフ。アプリ設定でプロジェクトを選び「Sandbox new sessions」をオンにします。CLIでは/sandbox enable(実験的機能)を実行。
  • /sandboxでポリシーを調整。CLIにはGeneral・Filesystem・Networkの3タブ、アプリには追加読み書き・読み取り専用・拒否パスと、ネットワーク・資格情報のスイッチがあります。変更は新しいセッションか/restart-sessionで反映。
  • copilot --cloudでセッション全体をGitHubホストのクラウドサンドボックスへ。github.com/copilot/tasksのリンクやリポジトリのAgentsタブから再参加できます。ローカルのサンドボックス設定はクラウドセッションには適用されません。

How to run GitHub Copilot in local and cloud sandboxes | demo

チャンネル:GitHub (official channel)1:31

視聴

GitHub Copilot Sandboxes are SO COOL

チャンネル:Gwyneth Peña-Siguenza1:50

視聴

Local sandboxing in the GitHub Copilot app (public preview)

ドキュメント:github.blog/changelog

視聴

Configuring local sandboxing in the GitHub Copilot app

ドキュメント:docs.github.com

視聴

About cloud and local sandboxes for GitHub Copilot

ドキュメント:docs.github.com

視聴

本ガイドのフレームはすべてGitHub公式サンドボックスデモ(クリーンなターミナル録画)から。本文は動画とGitHub公式ドキュメントに基づき、設定名は原文のまま引用しています。

スクリーンショットの著作権は作成者に帰属し、視覚的な参考資料としてクレジット付きで利用しています。ローカルサンドボックスはパブリックプレビューのため、名称や動作は変更される可能性があります。

ウォークスルー:12ステップ

1 · ローカルサンドボックスを有効にする

  1. 1

    リポジトリでCopilotを起動

    プロジェクトでCopilot CLIを起動します。サンドボックスはCLIの実験的機能で、バナーには/experimentalバッジが表示され、ステータスバーにはこれから読み方を覚えるサンドボックス表示が現れます。

    Copilot CLI v1.0.56 session start in a repo showing the yellow /experimental badge with the sandbox enabled indicator lit in the status bar
    Copilot CLIの起動画面。/experimentalバッジとステータスバーのサンドボックス表示。0:08 に視聴
  2. 2

    /sandbox enable を実行

    /sandboxと入力すると、コマンドパレットにはenableとdisableの2つの切り替えだけが候補に出ます。enableを選ぶと、このCopilotセッションと、そこで実行されるすべてのシェルコマンドにサンドボックスが適用されます。

    Copilot CLI slash-command menu listing /sandbox enable and /sandbox disable above the /sandbox [enable|disable] prompt hint
    /sandboxの補完候補にenableとdisableが並ぶ。0:24 に視聴
  3. 3

    セッションのサンドボックス化を確認

    Copilotが「Sandboxing has been enabled.」と表示し、ステータスバーはAI Creditsの隣に「sandbox enabled」と示します。以降、エージェントが実行するコマンドはサンドボックス内で動きます。

    Copilot CLI printing Sandboxing has been enabled with the status bar reading sandbox enabled next to AI Credits 0
    「Sandboxing has been enabled.」——出てほしかった確認メッセージ。0:12 に視聴

2 · サンドボックスの権限範囲を決める

  1. 4

    /sandbox でポリシーパネルを開く

    /sandbox単体でConfigure sandboxパネルが開き、設定はsettings.jsonの`sandbox`配下に保存されます。Generalタブでは、シェルコマンド・MCPサーバー・LSPサーバー、そしてgitやghの資格情報ヘルパーのためのmacOSキーチェーンアクセスを、サンドボックス内で実行するか決められます。

    Copilot CLI Configure sandbox panel on the General tab with Sandboxing enabled, Sandbox MCP servers, Sandbox LSP servers and Allow keychain access checkboxes
    Generalタブ:シェル・MCP・LSPサーバーとキーチェーンアクセス。0:30 に視聴
  2. 5

    ファイルシステムの範囲を決める

    Filesystemタブは作業ディレクトリを読み書き可能パスへ自動追加し、サンドボックス終了時に権限をリセットできます。~/.nvmや~/.npmなどのツールパスは読み取り専用でマウントされるので、ツールチェーンが必要ならリストを広げます。

    Copilot CLI sandbox Filesystem tab showing Include working directory, Clear policy on exit and the read-only ~/.nvm and ~/.npm path list
    nvmとnpmの読み取り専用パス。作業ディレクトリは自動で含まれる。0:32 に視聴
  3. 6

    ネットワークの範囲を決める

    Networkタブの操作点は3つ:アウトバウンドのインターネット許可、ローカルネットワーク許可、ホスト単位のAccessリスト。ダウンロードが不要なタスクなら、まずここを絞ります。

    Copilot CLI sandbox Network tab with the Allow outbound connections and Allow local network checkboxes plus an empty Access Host list
    ネットワークポリシー:アウトバウンド・ローカルネットワーク・ホスト単位の許可リスト。0:36 に視聴
  4. 7

    普段どおりに作業——コマンドはサンドボックス内

    いつもどおり作業します。エージェントが計画・編集・実行している間も、ステータスバーは「sandbox enabled」を表示し続けます。ポリシーが拒否するものをコマンドが必要とすると、Copilotはこっそり箱を抜けるのではなく、はっきり失敗します。

    Copilot CLI agent planning a SQLAlchemy 2.0 migration while the status bar reads sandbox enabled at 61.8 AI Credits
    SQLAlchemy移行の計画と実行。ステータスバーは「sandbox enabled」。0:20 に視聴

3 · 作業・解除・クラウドへ

  1. 8

    /sandbox disable で元に戻す

    箱の外に出たい一手があるなら/sandbox disable。サンドボックスをオフにし、「Sandboxing has been disabled.」が表示され、ステータスバーからサンドボックスバッジが消えます。タスクに応じて何度でも切り替えられます。

    Copilot CLI printing Sandboxing has been disabled after the /sandbox disable command with AI Credits 133 and no sandbox badge left in the status bar
    「Sandboxing has been disabled.」——ステータスバーからサンドボックスバッジが消えたことに注目。0:38 に視聴
  2. 9

    copilot --cloud でクラウドサンドボックスを起動

    重めの作業は--cloudフラグで起動します(公式デモは--yoloと組み合わせ、GitHubのドキュメントは--cloud --experimentalを例示)。セッションは手元のマシンではなく、GitHubホストの使い切り環境で動きます。

    Terminal launching a Copilot cloud sandbox with the copilot --cloud --yolo command typed at the tailspin-toys git prompt
    copilot --cloud --yolo——セッション全体がまもなくノートPCを離れる。0:50 に視聴
  3. 10

    リモートコントロールのリンクを取得

    リモートセッションのプロビジョニングが済むと、Copilotはリモートコントロールを接続し、github.com/copilot/tasks/...のURLを表示します。ctrl+eでQRコードを表示。作業ツリーはクラウドサンドボックス内の/workspaces/<repo>に置かれます。

    Copilot cloud session showing Remote control connected as GeekTrainer with the github.com/copilot/tasks session URL and the ctrl+e QR code hint
    リモートコントロール接続。セッションURLとQRコードのショートカット付き。1:00 に視聴
  4. 11

    クラウドでのビルドとテストに任せる

    エージェントはクラウドサンドボックス内でファイル作成・依存関係のインストール・テストスクリプトの実行を進めます。この例ではtest_auth.pyを作成しバックエンドのテストスイートを実行。手元のマシンはアイドルのまま、ステータスバーのクレジットだけが動きます。

    Copilot cloud sandbox creating test_auth.py and running backend unit tests through the test-runner skill inside /workspaces/tailspin-toys
    クラウドサンドボックスでテスト実行。この時点で80.4 AI Creditsを消費。1:10 に視聴
  5. 12

    GitHub.comで監視し、いつでも再参加

    セッションはリポジトリのAgentsタブにRemote CLI sessionとして現れます。ブラウザで進捗を見たりメッセージを送ったりでき、copilot --resumeで後から再開すればローカルとリモートの両セッションが一覧に出ます。

    GitHub.com Agents tab listing Remote CLI sessions for the tailspin-toys repo while Copilot recommends Flask auth libraries in the session panel
    tailspin-toysのAgentsタブがクラウドセッションをライブ追跡。1:14 に視聴

設定の場所:Copilot アプリ vs Copilot CLI

ローカルサンドボックスは2つのサービス面に存在し、設定は別々に管理されます。片方を変えてももう片方には反映されません。

  • 1Copilotアプリ:既定でオフ。アプリ設定を開き、プロジェクトを選び、「Sandbox」配下の「Sandbox new sessions」をオンにします。プロジェクトポリシーが、サンドボックス化されたセッションが要求できる内容を定めます。
  • 2アプリのポリシー:ファイルシステムアクセスは、ワークスペースと作業ディレクトリの読み書きから始まり、追加読み書き・追加読み取り専用・拒否パスのリストを併用。ネットワークはアウトバウンドインターネットとローカルネットワーク、資格情報はgitとGitHub CLIをカバーします。
  • 3Copilot CLI:サンドボックスは実験的機能です。--experimental付きで起動するか/experimental onを実行し、/sandbox enable・/sandbox disable、もしくは/sandbox単体で設定パネルを開きます。設定はsettings.jsonの`sandbox`配下に保存されます。
  • 4スラッシュコマンドはタイミングに敏感です。実行中のセッションで/sandbox on・/sandbox offと入力すればそのセッション限りの上書きになり、セッション開始前に入力すればプロジェクトの既定値を変更します。/restart-sessionなら履歴を残したままポリシー変更を適用できます。
  • 5クラウドセッションは別世界です。ローカルのサンドボックス設定はクラウドサンドボックスにもリモートホストのセッションにも適用されず、クラウドサンドボックスは組織またはエンタープライズのオーナーがアクセスポリシーを有効化するまで現れません。

本ガイドのCLIデモが最短ルートです。方針が固まったら、アプリのプロジェクト単位トグルが長期的な既定になります。

サンドボックスが「否」と言うとき:フェイルクローズ設計

サンドボックスはフェイルクローズで設計されています。OSが要求されたポリシーを強制できない場合、コマンドはサンドボックスなしで実行されるのではなく、エラーで止まります。

  1. 1未対応のプラットフォームやポリシー:要求したポリシーを強制できない場合、サンドボックス付きシェルはエラーで失敗し、サンドボックスなし実行へ黙ってフォールバックすることはありません。
  2. 2「Sandbox unavailable」:アプリが問題を知らせ、原因を解消すればRetry sandboxボタンで再試行できます。
  3. 3緊急退出口:「Run outside the sandbox?」のプロンプトで、キャンセル・サンドボックス外で1回だけ実行・このセッションのサンドボックス解除が選べ、「Re-enable sandbox」で元に戻せます。再起動で終了し、プロジェクトの既定値は決して変えません。
  4. 4エンタープライズオーナーが最終決定権を持ちます。管理設定でサンドボックス外実行の逃げ道を塞げば、そちらの強制もフェイルクローズです。

プラットフォームメモ:macOSは15以上を推奨(Seatbelt)。LinuxはPATH上のbubblewrap 0.5.0+に加え、slirp4netns・util-linux 2.35以上・iptables・/dev/net/tunが必要。WindowsはProcessContainerのBaseContainer層を使い、拒否パスを保証できない場合はunsupported-policyのエラーで失敗します。

CopilotサンドボックスFAQ

関連ガイド