本稿は、Claude Code のサンドボックス機能を初めて導入する開発者に向けて、有効化の手順と、実際にシェルコマンドを一つ実行して隔離が効いていることを確認するまでをまとめた実践ガイドです(2026-10-18 時点、公式ドキュメントに基づく)。
サンドボックスの既定状態と有効化
Claude Code のサンドボックスは、既定では無効です。有効化するには、セッション内で /sandbox コマンドを実行するか、~/.claude/settings.json などの設定ファイルで sandbox.enabled を true にします。/sandbox パネルでモードを選択すると、設定はプロジェクトのローカル設定 .claude/settings.local.json に保存され、現在のプロジェクトに適用されます。
OS 別の前提
- macOS: 追加インストール不要で、内蔵の Seatbelt フレームワークを使って動作します。
- Linux / WSL2: bubblewrap と socat の二つのパッケージが必要です。
- ネイティブ Windows: Claude Code はシェルコマンドをサンドボックスなしで実行します。サンドボックスを使うには、WSL2 ディストリビューション内で Claude Code を動かします。
OS レベルの実装は、macOS が Seatbelt、Linux が bubblewrap、WSL2 が Linux と同様に bubblewrap です。Claude Code はオープンソースの @anthropic-ai/sandbox-runtime パッケージ上にサンドボックスを構築しています。
なお Ubuntu 24.04 以降では、既定の AppArmor ポリシーが bubblewrap に必要なユーザー名前空間の作成を妨げるため、専用の AppArmor プロファイルの追加が必要になる場合があります。
適用範囲
サンドボックスが適用されるのはシェルコマンドのみです。Claude のファイルツール・MCP サーバー・フックはサンドボックスの外で動作します。
既定の挙動は次のとおりです(2026-10-18 時点)。
- 書き込み: カレントワーキングディレクトリとそのサブディレクトリ、--add-dir / /add-dir / permissions.additionalDirectories で追加したディレクトリ、$TMPDIR が指すユーザー専用 tmp ディレクトリに読み書きできます。
- 読み取り: 一部の拒否ディレクトリを除き、マシン全体を読み取れます。この既定でも資格情報ファイルは読み取れるため、読まれたくない資格情報は別途保護する必要があります。
- ネットワーク: 外部への直接経路はありません。接続はマシン上のプロキシを経由し、各ホストが許可ドメインリストと照合されます。このリストは空から始まります。
隔離の確認
サンドボックスが有効な状態で、次のコマンドでファイルシステムの隔離を確認します。
touch ~/sandbox-probe
macOS では Operation not permitted、Linux / WSL2 では Read-only file system エラーで失敗します。
次にネットワークの隔離を確認します。
curl --noproxy '*' https://example.com
Could not resolve host エラーで失敗します。--noproxy '*' によってプロキシを迂回しようとしても、サンドボックスの外に出る経路がないためです。
ネットワーク未許可ホストへのアクセス時の挙動
サンドボックス内のコマンドが未許可ホストへ接続しようとした場合、manual・acceptEdits・plan モードでは承認プロンプトが表示されます。auto モードでは、コマンドがホストを明示し、かつクラシファイアがそのリストを承認した場合を除き拒否されます。dontAsk モードでは常に拒否されます。