Skip to main content
サンドボックス化されたbashモードは、AIエージェントがシェルコマンドで実行できる内容を制限します。有効にすると、コマンドはプロジェクトディレクトリと承認済みのネットワークドメインのみにアクセスできます。すべてのプロジェクトはデフォルトでサンドボックスモードです。
このサンドボックスが管理するのは CTOR 自身の組み込みエージェントのみです。CLI エージェント(Claude Code、Codex、Pi、Cursor Agent)で動作するチャットはその外側で動作し、ターミナルで実行する場合と同じファイルアクセスとシェルアクセスを持ちます。

モード

入力バーのサンドボックスモードセレクターで、プロジェクトごとに2つのモードを切り替えられます: 選択したモードはプロジェクトごとに保持されます。explore サブエージェントはプロジェクト設定に関わらず、常にサンドボックスモードで実行されます。
サンドボックスモードはmacOS、Linux、Windowsでサポートされています。Windowsのサポートは実験的です——Windows を参照してください。
Linuxでは、サンドボックスモードには Bubblewrapbwrap)と socat のインストールが必要です(sudo apt install bubblewrap socat)。Bubblewrapはサンドボックスコンテナを提供し、socatはネットワークプロキシブリッジを処理します。

Windows

Windowsのサポートは実験的です。サンドボックスモードは動作しますが、いくつかのプラットフォーム差があります:
  • エージェントのコマンドはPOSIXシェルではなくPowerShellで実行されます。 どれを使うかはターミナルシェルのプロファイルに従います:WSL プロファイルはフルアクセスのコマンドをディストリビューション内で bash を使って実行し、PowerShell 7pwsh.exe、それ以外はWindows PowerShell 5.1を使用します。どのシェルが有効かはエージェントに伝えられるため、そのシェルが受け付ける構文が書かれます。
  • サンドボックス化されたコマンドは、WSLプロファイルであっても常にWindows PowerShell 5.1を使用します——サンドボックスはWSLディストリビューションを隔離できません。WSL内で実行する必要があるコマンドは、プロジェクトをフルアクセスに切り替えてください。
  • ファイルシステムの許可はコマンド単位ではなくセッション単位で適用されます。 許可はサンドボックスの起動時にNTFSのアクセス許可として設定され、許可の対象が変わるとCTORはサンドボックスセッションを再起動します。
  • ホームディレクトリは明示的な拒否ルールではなく構造的に拒否されます。 sandbox.jsondenyRead / denyWrite の項目は、許可されたディレクトリ内にある場合は引き続き有効です。
サンドボックスを起動できない場合は、設定 > エージェント > サンドボックス設定に不足しているものが表示されます。

ファイルシステムの制限

サンドボックスモードでは、コマンドのファイルシステムアクセスが制限されます: 読み取り可能なパス:
  • プロジェクトディレクトリ(完全な読み取り/書き込み)
  • 一時ディレクトリ(/tmp/private/tmp
  • ホームディレクトリ下の PATH 内のツールバイナリ
  • グローバルスキルディレクトリ(~/.bricks-project-desktop/skills/
  • sandbox.jsonfilesystem.allowRead に記載されたパス
書き込み可能なパス:
  • プロジェクトディレクトリ
  • 一時ディレクトリ
  • グローバルスキルディレクトリ(~/.bricks-project-desktop/skills/
  • sandbox.jsonfilesystem.allowWrite に記載されたパス
ホームディレクトリのルートはデフォルトで拒否されます。許可リスト外のパスへのアクセスを試みるコマンドは権限エラーを受け取ります。 サンドボックス化時、チャット入力での @~/(ホームディレクトリブラウジング)を使用したファイル参照もブロックされます。プロジェクト相対パスを使用してください。

ネットワークの制限

サンドボックスモードでは、アウトバウンドのネットワークアクセスはデフォルトでブロックされます。サンドボックス化されたコマンドがネットワークアクセスを要求すると、3つのオプションを含む承認ダイアログが表示されます:
  • 1回だけ許可 — このセッションに限りリクエストを許可します
  • 許可して保存 — リクエストを許可し、将来のセッションのためにドメインを sandbox.json に追加します
  • 拒否 — リクエストをブロックします

サンドボックス設定

設定 > エージェント > サンドボックス設定 > 開くを開いて sandbox.json を編集します。このファイルでサンドボックスの権限をグローバルにカスタマイズできます。

ネットワークオプション

ファイルシステムオプション

bashコマンドの自動承認

設定 > エージェントbashコマンドを自動承認するトグルは、フルアクセスのbashコマンドと信頼済みプログラムのコマンドが確認プロンプトなしで実行されるかどうかを制御します。この設定はサンドボックスモードとは独立しています — 自動承認が有効かどうかに関わらず、サンドボックス化されたコマンドは常にサンドボックス内で実行されます。

信頼済みプログラム

いくつかのプログラムは、サンドボックスが付与できない直接アクセスを必要とするため、CTOR はそれらのサンドボックス回避を許可します:
  • bricks devtools — デバイスに接続するために直接 LAN アクセスが必要です。
  • agent-browser — 開いているブラウザタブを操作するために、ローカルのブラウザタブ CDP ブリッジが必要です。bunx agent-browserbun x agent-browser の形式も信頼されます。
信頼済みプログラムの単純な呼び出し — または agent-browser snapshot | jq . のような読み取り専用チェーン — は必要なアクセス権で実行され、自動承認がオンの場合はサイレントに実行されます。信頼済みプログラムを他のコマンドと組み合わせたシェルチェーン(例:cd /path && bricks devtools scan)もサンドボックスを回避しますが、自動承認が有効な場合でも常に承認プロンプトが表示され、毎回全体の組み合わせを確認できます。

危険なコマンドの検出

CTORはすべての bash 呼び出しを高影響パターンに対してスキャンします。検出されると、承認カードは赤い枠線、⚠ アイコン、危険なコマンドラベルで強調表示され、プロンプトが必ず表示されます。自動承認はバイパスされ、サンドボックスモードでも確認ゲートにフォールバックします。プロジェクトツリーは設計上書き込み可能なため(rm -rf <project>/... はサンドボックス内でも成功する)、サンドボックス自体ではこれらのパターンをブロックできません。 検出器は以下のカテゴリのコマンドをフラグします:
  • 権限昇格:sudodoassu
  • システム電源状態:shutdownreboothaltpoweroffinit
  • ディスクのフォーマットまたはパーティショニング:mkfs.*fdisksfdiskparteddiskutil
  • ロウディスク書き込み:of= ターゲット付きの dd
  • セキュア削除:shredsrmwipe
  • 再帰削除:rm -rrm -Rrm --recursive
  • 再帰的な権限または所有者の変更:chmod -Rchown -R
  • PID 1 のキル:kill 1pkill 1killall 1
  • 履歴を書き換える git:git push --force / -fgit reset --hardgit clean -fgit branch -Dgit checkout .git restore .
  • リモート実行パイプ:curl ... | shwget ... | bash| sudo sh を含む)
  • 任意のシェル文字列:bash -csh -czsh -c、その他 -c 付きのシェルインタプリター
検出はシェルチェーンの各セグメントを走査するため、危険なセグメントが先頭コマンドでなくても cd /tmp && rm -rf xcurl ... | sudo bash は捕捉されます。より安全なバリアントはフラグされません:git push --force-with-leasegit branch -d(マージ済みブランチのみ削除)、init 以外の PID への kill は通常通り実行されます。

データストレージ