このサンドボックスが管理するのは CTOR 自身の組み込みエージェントのみです。CLI エージェント(Claude Code、Codex、Pi、Cursor Agent)で動作するチャットはその外側で動作し、ターミナルで実行する場合と同じファイルアクセスとシェルアクセスを持ちます。
モード
入力バーのサンドボックスモードセレクターで、プロジェクトごとに2つのモードを切り替えられます:
選択したモードはプロジェクトごとに保持されます。
explore サブエージェントはプロジェクト設定に関わらず、常にサンドボックスモードで実行されます。
サンドボックスモードはmacOS、Linux、Windowsでサポートされています。Windowsのサポートは実験的です——Windows を参照してください。
Linuxでは、サンドボックスモードには Bubblewrap(
bwrap)と socat のインストールが必要です(sudo apt install bubblewrap socat)。Bubblewrapはサンドボックスコンテナを提供し、socatはネットワークプロキシブリッジを処理します。Windows
Windowsのサポートは実験的です。サンドボックスモードは動作しますが、いくつかのプラットフォーム差があります:- エージェントのコマンドはPOSIXシェルではなくPowerShellで実行されます。 どれを使うかはターミナルシェルのプロファイルに従います:WSL プロファイルはフルアクセスのコマンドをディストリビューション内で
bashを使って実行し、PowerShell 7 はpwsh.exe、それ以外はWindows PowerShell 5.1を使用します。どのシェルが有効かはエージェントに伝えられるため、そのシェルが受け付ける構文が書かれます。 - サンドボックス化されたコマンドは、WSLプロファイルであっても常にWindows PowerShell 5.1を使用します——サンドボックスはWSLディストリビューションを隔離できません。WSL内で実行する必要があるコマンドは、プロジェクトをフルアクセスに切り替えてください。
- ファイルシステムの許可はコマンド単位ではなくセッション単位で適用されます。 許可はサンドボックスの起動時にNTFSのアクセス許可として設定され、許可の対象が変わるとCTORはサンドボックスセッションを再起動します。
- ホームディレクトリは明示的な拒否ルールではなく構造的に拒否されます。
sandbox.jsonのdenyRead/denyWriteの項目は、許可されたディレクトリ内にある場合は引き続き有効です。
ファイルシステムの制限
サンドボックスモードでは、コマンドのファイルシステムアクセスが制限されます: 読み取り可能なパス:- プロジェクトディレクトリ(完全な読み取り/書き込み)
- 一時ディレクトリ(
/tmp、/private/tmp) - ホームディレクトリ下の
PATH内のツールバイナリ - グローバルスキルディレクトリ(
~/.bricks-project-desktop/skills/) sandbox.jsonのfilesystem.allowReadに記載されたパス
- プロジェクトディレクトリ
- 一時ディレクトリ
- グローバルスキルディレクトリ(
~/.bricks-project-desktop/skills/) sandbox.jsonのfilesystem.allowWriteに記載されたパス
@~/(ホームディレクトリブラウジング)を使用したファイル参照もブロックされます。プロジェクト相対パスを使用してください。
ネットワークの制限
サンドボックスモードでは、アウトバウンドのネットワークアクセスはデフォルトでブロックされます。サンドボックス化されたコマンドがネットワークアクセスを要求すると、3つのオプションを含む承認ダイアログが表示されます:- 1回だけ許可 — このセッションに限りリクエストを許可します
- 許可して保存 — リクエストを許可し、将来のセッションのためにドメインを
sandbox.jsonに追加します - 拒否 — リクエストをブロックします
サンドボックス設定
設定 > エージェント > サンドボックス設定 > 開くを開いてsandbox.json を編集します。このファイルでサンドボックスの権限をグローバルにカスタマイズできます。
ネットワークオプション
ファイルシステムオプション
bashコマンドの自動承認
設定 > エージェントのbashコマンドを自動承認するトグルは、フルアクセスのbashコマンドと信頼済みプログラムのコマンドが確認プロンプトなしで実行されるかどうかを制御します。この設定はサンドボックスモードとは独立しています — 自動承認が有効かどうかに関わらず、サンドボックス化されたコマンドは常にサンドボックス内で実行されます。信頼済みプログラム
いくつかのプログラムは、サンドボックスが付与できない直接アクセスを必要とするため、CTOR はそれらのサンドボックス回避を許可します:bricks devtools— デバイスに接続するために直接 LAN アクセスが必要です。agent-browser— 開いているブラウザタブを操作するために、ローカルのブラウザタブ CDP ブリッジが必要です。bunx agent-browserとbun x agent-browserの形式も信頼されます。
agent-browser snapshot | jq . のような読み取り専用チェーン — は必要なアクセス権で実行され、自動承認がオンの場合はサイレントに実行されます。信頼済みプログラムを他のコマンドと組み合わせたシェルチェーン(例:cd /path && bricks devtools scan)もサンドボックスを回避しますが、自動承認が有効な場合でも常に承認プロンプトが表示され、毎回全体の組み合わせを確認できます。
危険なコマンドの検出
CTORはすべてのbash 呼び出しを高影響パターンに対してスキャンします。検出されると、承認カードは赤い枠線、⚠ アイコン、危険なコマンドラベルで強調表示され、プロンプトが必ず表示されます。自動承認はバイパスされ、サンドボックスモードでも確認ゲートにフォールバックします。プロジェクトツリーは設計上書き込み可能なため(rm -rf <project>/... はサンドボックス内でも成功する)、サンドボックス自体ではこれらのパターンをブロックできません。
検出器は以下のカテゴリのコマンドをフラグします:
- 権限昇格:
sudo、doas、su - システム電源状態:
shutdown、reboot、halt、poweroff、init - ディスクのフォーマットまたはパーティショニング:
mkfs.*、fdisk、sfdisk、parted、diskutil - ロウディスク書き込み:
of=ターゲット付きのdd - セキュア削除:
shred、srm、wipe - 再帰削除:
rm -r、rm -R、rm --recursive - 再帰的な権限または所有者の変更:
chmod -R、chown -R - PID 1 のキル:
kill 1、pkill 1、killall 1 - 履歴を書き換える git:
git push --force/-f、git reset --hard、git clean -f、git branch -D、git checkout .、git restore . - リモート実行パイプ:
curl ... | sh、wget ... | bash(| sudo shを含む) - 任意のシェル文字列:
bash -c、sh -c、zsh -c、その他-c付きのシェルインタプリター
cd /tmp && rm -rf x や curl ... | sudo bash は捕捉されます。より安全なバリアントはフラグされません:git push --force-with-lease、git branch -d(マージ済みブランチのみ削除)、init 以外の PID への kill は通常通り実行されます。