実行モード
実行モードでは、Cherri Code エージェントによるツール呼び出しの実行方法と、Cherri Code が承認を求めて中断するタイミングを制御します。
シェルコマンド、MCP ツール、Fetch 呼び出しについて、エージェントにどの程度の自律性を与えるかを決めます。ほとんどのユーザーには、安全性と利便性のバランスに優れた Auto-review がおすすめです。既知の安全な呼び出しは実行し、可能な場合はシェルコマンドをサンドボックス内で実行し、それ以外は分類器に確認させます。
モードを選択する
デスクトップアプリで、Settings > Agents > Approvals & Execution に移動します。
| モード | 確認なしで実行されるもの | サンドボックス | 分類器 | 使用する場面 |
|---|---|---|---|---|
| Auto-review | 許可リストにある呼び出しはすぐに実行されます。その他のシェルコマンドは、可能な場合はサンドボックス内で実行されます。サンドボックスを使用しない呼び出しは、Auto-review 分類器に送られます。 | 対応 (シェルコマンド) | 対応 | リスクの高い呼び出しの実行前にセーフティ確認を行いながら、プロンプトを減らしたい場合。 |
| Allowlist | 許可リスト内のアクションは承認なしで実行されます。サンドボックス化を有効にすると、対応しているシェルコマンドをサンドボックス内で実行できます。 | 任意 (シェルコマンド) | 非対応 | 信頼できる繰り返しアクションを少数に絞り、決定的な挙動を求める場合。 |
| Run Everything | すべてのツール呼び出しが自動的に実行されます。 | 非対応 | 非対応 | リスクを許容し、プロンプトを一切表示したくない場合。 |
Auto-review の仕組み
Auto-review は、シェル、MCP、Fetch のツール呼び出しに適用されます。Cherri Code は各呼び出しを次の順序で確認します。
シェル コマンドは、サンドボックスのファイルおよびネットワークの制限内で動作する場合、「サンドボックス内で実行可能」です。ワークスペース外への書き込みや特権操作など、システム全体へのアクセスを必要とするコマンドはサンドボックス化できないため、代わりに 分類器 に送られます。
サンドボックス化は、シェル コマンドにおける実行モードの追加レイヤーです。対応する ターミナルコマンド をどこで実行するかを制御するものであり、そのモードで Auto-review 分類器 を使用するかどうかを制御するものではありません。
分類器 が呼び出しをブロックすると、Cherri Code は別の方法を試すことができます。分類器 の判断に反してもそのアクションが妥当だとエージェントが判断した場合、Cherri Code は承認プロンプトを表示します。
分類器 は誤る可能性があります。本来ブロックすべき呼び出しを許可したり、本来許可すべき呼び出しをブロックしたりする場合があります。
Auto-review 分類器の要件
Auto-review の分類器は、Cherri Code 管理の小規模モデルで実行されます。現在は Claude 4.5 Haiku または GPT-5.4 Mini です。
エンタープライズのモデルアクセス制御が適用されます。これらのモデルのいずれか 1 つがチームで許可されていれば、Auto-review を利用できます。すべてをブロックすると、チームの実行モードに Auto-review が含まれていても、Settings > Agents > Approvals & Execution で Auto-review は無効になります。その場合、メンバーは代わりに許可リストを使用します。
Auto-review がグレーアウトされている場合は、Team Settings → Models でこれらのモデルを有効にし、Cherri Code を完全に終了してから再起動し、Approvals & Execution をもう一度確認してください。
Auto-review の設定
Auto-review を適切に機能させるために設定は必要ありません。常に手動で確認したい特定のアクションがある場合は、平易な英語で記述してください。
最も簡単な設定方法は、Cherri Code エージェントに依頼することです。たとえば「すべての AWS CLI コマンドはまず承認を必要にしてほしい」と伝えると、permissions.json を編集してくれます。
ファイルを自分で編集することもできます。Auto-review は次の 2 か所にある permissions.json を読み取ります。
| 場所 | 適用範囲 |
|---|---|
~/.cursor/permissions.json | 自分のマシン上のすべてのプロジェクトディレクトリに適用されます。 |
<project-dir>/.cursor/permissions.json | 1 つのプロジェクトディレクトリに適用されます。プロジェクト内で同じガイダンスを共有する場合はコミットしてください。 |
両方のファイルが存在する場合、Cherri Code はそれらをマージします。個人用の指示とプロジェクトの指示の両方が適用されます。
チームは、ダッシュボードでグローバルな Auto-review 設定を定義することもできます。チーム設定が定義されている場合はそれが優先され、Cherri Code はユーザーレベルおよびプロジェクトレベルのファイルを無視します。
どちらのローカルファイルも同じスキーマを使用します。各指示は平易な英語の文であるため、「すべての AWS CLI コマンドはまず承認を必要にしてほしい」のようなリクエストは、そのまま block_instructions に対応します。
{ "autoRun": { "allow_instructions": [], "block_instructions": [ "Every AWS CLI command should go through approval first.", "Every command that modifies Kubernetes resources should go through approval first." ] }}allow_instructionsは、Auto-review で許可する傾向を持たせるアクションを指定します。block_instructionsは、エージェントが別の方法を選ぶか、あなたに承認を求めるよう、Auto-review でブロックする傾向を持たせるアクションを指定します。
ポリシー設計の詳細については、Auto-review によるエージェントの自律性の管理を参照してください。
サンドボックス化
サンドボックス化により、Cherri Code はマシン全体へのアクセスを許可せずにターミナルコマンドを実行できます。サンドボックス化されたコマンドはプロジェクト内で動作できますが、保護されたファイルを自由に読み取ったり、承認されたパスの外に書き込んだり、任意のネットワーク宛先に接続したりすることはできません。
技術的な詳細については、Implementing a secure sandbox for local agents をご覧ください。
permissions.json は、Auto-review がどの呼び出しを自動実行し、どの呼び出しを確認するかを制御します。sandbox.json は、ネットワークドメインや追加の読み取り・書き込み可能なパスなど、サンドボックス化されたコマンドがアクセスできる範囲を制御します。はじめる際に、どちらのファイルも必要ありません。
| アクセス | ターミナルコマンドのデフォルトのサンドボックス挙動 |
|---|---|
| ワークスペースファイル | ワークスペース内での読み取り・書き込み権限。.cursorignore を使用すると、エージェントからファイルを非表示にできます。 |
| 保護されたパス | Cherri Code は .git/config、.git/hooks、.vscode、.cursorignore、機密性の高い Cherri Code 設定ファイルなどのパスを保護します。 |
| ネットワーク | デフォルトではブロックされます。ネットワークモードと sandbox.json で許可できます。 |
| 一時ファイル | sandbox.json で無効にしない限り、/tmp とプラットフォームの一時ディレクトリには書き込めます。 |
一部のコマンドにはシステム全体へのアクセスが必要で、サンドボックスをバイパスします。コマンドがサンドボックスの外で実行される場合、Cherri Code はその旨を示し、承認を求めます。
サンドボックスの設定
sandbox.json ファイルでサンドボックスの挙動をカスタマイズできます。
| 場所 | 適用範囲 |
|---|---|
~/.cursor/sandbox.json | マシン上のすべてのプロジェクトディレクトリに適用されます。 |
<project-dir>/.cursor/sandbox.json | 1 つのプロジェクトディレクトリに適用されます。プロジェクトで同じサンドボックスルールを共有する場合は、コミットしてください。 |
両方のファイルが存在する場合、Cherri Code はそれらをマージし、プロジェクトレベルのファイルを優先します。チーム管理者ポリシーと Cherri Code にハードコードされたセキュリティルールがさらに適用されるため、ローカルファイルでこれらの保護を弱めることはできません。
sandbox.json を使用して、ネットワークポリシー、追加の読み取り・書き込み可能なパス、一時ディレクトリへの書き込み、共有ビルドキャッシュを制御します。完全なスキーマについては、sandbox.json リファレンスを参照してください。
プラットフォーム別のサンドボックス化の仕組み
Cherri Code は sandbox-exec を介して Seatbelt を使用します。生成されたサンドボックスプロファイルにより、サブプロセスツリー全体のファイルアクセス、ネットワークアクセス、その他のプロセス動作が制限されます。
要件
- Cherri Code v2.0 以降
- 追加のセットアップは不要
環境変数
Cherri Code は、サンドボックス化されたすべての子プロセスに環境変数を設定します。これらの環境変数は、サンドボックス内で実行されるスクリプト、ビルドツール、自動化で使用できます。
| 変数 | プラットフォーム | 説明 |
|---|---|---|
CURSOR_SANDBOX | macOS、Linux | プロセスがサンドボックス内で実行されている場合、"seatbelt" (macOS) または "native" (Linux) に設定されます。 |
CURSOR_ORIG_UID | macOS、Linux | サンドボックスによる名前空間または ID の変更が適用される前に取得された、Cherri Code を起動したユーザーの UID。 |
CURSOR_ORIG_GID | macOS、Linux | サンドボックスによる ID の変更前に取得された、Cherri Code を起動したユーザーの GID。 |
CURSOR_SANDBOX_LANDLOCK_STATUS | Linux | 有効なサンドボックスバックエンドを示します。fully_enforced (Landlock) 、bubblewrap (Bubblewrap へのフォールバック) 。診断に役立ちます。 |
Linux では、サンドボックスがユーザー名前空間を作成し、その名前空間内でプロセスを
UID 0 (root) に再マッピングします。そのため、サンドボックス化されたコマンド内の
id -u と $UID は、ホストのユーザー ID ではなく 0 を返します。たとえば、ファイルの所有者を設定したり、
Docker に --user を渡したりするために、スクリプトや自動化でホストのユーザー ID が必要な場合は、
CURSOR_ORIG_UID と CURSOR_ORIG_GID を読み取ってください。
Docker とコンテナの自動化
自動化ルールやスクリプトでは、ホストユーザーの ID に合わせる必要がある Docker コンテナを実行することがよくあります。サンドボックスでは Linux 上で UID が再マッピングされるため、$(id -u) を使用すると誤った値になります。代わりに CURSOR_ORIG_* 変数を使用してください。
docker run --rm \ --user "${CURSOR_ORIG_UID:-$(id -u)}:${CURSOR_ORIG_GID:-$(id -g)}" \ -v "$PWD:/work" -w /work \ my-image build${CURSOR_ORIG_UID:-$(id -u)} へのフォールバックにより、変数が設定されていないサンドボックスの外でもコマンドが動作します。
ネットワークアクセス
サンドボックス化されたターミナルコマンドのネットワークアクセス方法を選択します。
| モード | 挙動 |
|---|---|
| sandbox.json のみ | ネットワークアクセスは sandbox.json の許可リストに含まれるドメインに限定されます。Cherri Code のデフォルトは追加されません。 |
| sandbox.json + デフォルト | 許可リストに加え、一般的なパッケージマネージャーと言語ツール向けの Cherri Code 組み込みデフォルトも使用されます。これがデフォルトです。 |
| すべて許可 | sandbox.json に関係なく、サンドボックス内のすべてのネットワークアクセスが許可されます。 |
*.cloudflarestorage.com*.docker.com*.docker.io*.googleapis.com*.githubusercontent.com*.gvt1.com*.public.blob.vercel-storage.com*.yarnpkg.comalpinelinux.organaconda.comapache.orgapt.llvm.orgarchive.ubuntu.comarchlinux.orgawscli.amazonaws.comazure.combinaries.prisma.shbitbucket.orgcentos.orgcloudflarestorage.comcocoapods.orgcodeload.github.comcpan.orgcrates.iodebian.orgdl.google.comdocker.comdocker.iodot.netdotnet.microsoft.comeclipse.orgfedoraproject.orgfiles.pythonhosted.orgfonts.gstatic.comgcr.ioghcr.iogithub.comgitlab.comgolang.orggoogle.comgoproxy.iogradle.orghaskell.orghashicorp.comhex.pmindex.crates.iojava.comjava.netjson-schema.orgjson.schemastore.orgk8s.iolaunchpad.netmaven.orgmcr.microsoft.commetacpan.orgmicrosoft.commise.runnodejs.orgnpm.duckdb.orgnpmjs.comnpmjs.orgnuget.orgoracle.compackagecloud.iopackages.microsoft.compackagist.orgpkg.go.devplaywright.azureedge.netppa.launchpad.netproxy.golang.orgpub.devpublic.blob.vercel-storage.compublic.ecr.awspypa.iopypi.orgpypi.python.orgpythonhosted.orgquay.ioregistry.npmjs.orgregistry.yarnpkg.comrepo.maven.apache.orgruby-lang.orgrubygems.orgrubyonrails.orgrustup.rsrvm.iosecurity.ubuntu.comsh.rustup.rssourceforge.netspring.iostatic.crates.iostatic.rust-lang.orgsum.golang.orgswift.orgubuntu.comvisualstudio.comyarnpkg.comziglang.orgその他の保護機能
実行モードとサンドボックス化だけがセーフティ制御ではありません。以下の保護機能では、モードが自動実行に設定されている場合でも承認が必要になることがあります。
| 保護機能 | 説明 |
|---|---|
| ブラウザ保護 | エージェントによるブラウザツールの自動実行を防ぎます。 |
| ファイル削除保護 | rm コマンドを含め、エージェントによるファイルの自動削除を防ぎます。 |
| 外部ファイル保護 | エージェントがワークスペース外のファイルを自動的に作成、変更、削除することを防ぎます。 |
チームの管理
管理者は、ユーザーが利用できるモードを変更したり、ターミナルコマンド用サンドボックスのネットワークルールを設定したりできます。これらすべての設定はWebダッシュボードで利用できます。
チーム設定は、個人およびプロジェクトの設定よりも優先されます。全員に共通の基準を適用したい場合に使用してください。チームでAuto-reviewを有効にする場合は、モデルアクセス制御で分類器が必要とするモデルのいずれかを許可してください。
変更履歴
| Cherri Code バージョン | 日付 | 変更内容 |
|---|---|---|
| 3.6 | 2026年5月29日 | Auto-review が推奨されるデフォルトとしてリリースされました。 |
| 3.5 | 2026年5月22日 | Ask Every Time は非推奨になりました。新規ユーザーは選択できません。同じ挙動にするには、空の許可リストを設定した Allowlist を使用してください。Run in Sandbox は、サンドボックス化を有効にした Allowlist に統合されました。 |
実行モードはローカルエージェントに適用されます。Cloud Agents は専用のマシン内で実行されるため、エージェントがアクションの承認を求めることはありません。