ローカルワークステーションを保護し、絶対パスを制限し、独自の allow / deny / ask ポリシーを構成し、対話的な承認を管理します。
きめ細かな権限制御
自律的なワークフローを実現しながらワークステーションを保護するため、Antigravity CLI は堅牢なきめ細かな権限エンジン(Fine-Grained Permissions Engine)を統合しています。エージェントが実行するすべての機微な操作は、action(target) という形式の権限リソースとして表現されます。
権限は、グローバル設定内で構成される 3 つのアクセスリストにわたって評価されます。
~/.gemini/antigravity-cli/settings.json
deny: その操作を即座にブロックします。ask: エージェントは一時停止し、続行前にあなたの明示的な承認を求めます。allow: その操作を確認なしで自動承認します。
ask リストに command(*) を、allow リストに command(git) を設定した場合、ask ルールが優先され、すべてのコマンドの前にプロンプトが表示されます。
サポートされるアクションとマッチングルール
きめ細かな権限は、標準的なスキーマパターンに従います。
action(target)
サポートされるアクション、ターゲットの形式仕様、およびマッチングアルゴリズムは次のとおりです。
| アクション | ターゲット形式 | マッチングの挙動 | デフォルトのフォールバック |
|---|---|---|---|
read_file |
read_file(/path)、read_file(dir)、または read_file(*) |
絶対パス、またはワークスペースルートからの相対パスにマッチします。含まれるすべてのファイル/フォルダに対して再帰的な読み取りアクセスを付与します。read_file(*) はシステム上のすべてのファイルにマッチします。 |
Ask(ワークスペース内では自動的に許可) |
write_file |
write_file(/path) または write_file(*) |
read_file と同じです。まったく同じターゲットパスに対する read_file を暗黙的に付与します。 |
Ask(ワークスペース内では自動的に許可) |
read_url |
read_url(domain) または read_url(*) |
ホスト名とサブドメインにマッチします(例: google.com は mail.google.com をカバーします)。URL のパスセグメントは無視します。read_url(*) は任意のドメインにマッチします。 |
Ask |
execute_url |
execute_url(domain) または execute_url(*) |
あるドメイン上で Web 要素を操作(クリック、入力)したり、対話的なブラウザワークフローを駆動したりします。 | Ask |
command |
command(prefix)、command(regex)、または command(*) |
コマンドを正確な単語/トークンのプレフィックスでマッチします。空白で区切られた各トークンは、アンカー付き正規表現(^(?:pattern)$)として評価されます。例: command(npm run (build|lint|test)) は npm run build と npm run test にマッチします。 |
Ask |
unsandboxed |
unsandboxed(prefix) または unsandboxed(*) |
コマンドを正確な単語/トークンのプレフィックスでマッチします。このグラントにマッチするコマンドは、コンテナ分離の外で実行されます(ターミナルサンドボックスが有効な場合にのみ適用されます)。 | Ask |
mcp |
mcp(server/tool) または mcp(*) |
正確な MCP ツール、または指定されたサーバー上のすべてのツールにマッチします(ローカルの mcpl サーバーおよびリモート接続に適用されます)。mcp(*) は任意のツールにマッチします。 |
Ask |
グローバルワイルドカード構文
サポートされるすべてのアクションタイプにおいて、グローバルワイルドカード * を渡すと(read_file(*)、command(*)、mcp(*) など)、そのアクション名前空間全体に含まれるすべてのターゲットにマッチします。
暗黙的な権限ルール
- Write は Read を含む: あるパスに対して
write_fileを許可すると、そのパスに対するread_fileも自動的に付与されます。 - Read の拒否は Write の拒否を含む: あるパスに対して
read_fileを拒否すると、そのパスに対するwrite_fileも即座にブロックされます。
クロスプラットフォームのパス正規化
Antigravity CLI は、macOS、Linux、Windows のいずれで開発していても、権限ルールが完全に機能することを保証します。macOS と Linux では、パスは標準的なスラッシュ(/)を使用します。Windows では、Antigravity CLI はルール評価の前にパスを自動的に正規化し、ドライブレター(例: C:)を取り除き、すべてのバックスラッシュ(\)をスラッシュ(/)に変換します。
システムのデフォルト挙動とガードレール
あるアクションが allow、deny、ask のいずれのリストにも明示的に列挙されていない場合、システムは安全なシステムデフォルトにフォールバックします。
- ワークスペースは自動的に許可: 通常の運用では、アクティブなプロジェクトディレクトリ内のファイルの読み取りと書き込みは自動的に許可されます。
- Web ブラウジングはデフォルトで Ask:
read_urlとexecute_urlのアクションはデフォルトで Ask になります。エージェントが Web ページにアクセスまたは操作する前に、allow ルールが構成されていない限り、一時停止して承認を求めます。 - 未構成のアクションはデフォルトで Ask: その他の未構成のアクション(
command、mcp、execute_url、ワークスペース外のファイル)はすべてデフォルトで Ask になります。
対話的な権限プロンプト
エージェントが承認を必要とする操作(Ask モード)に遭遇すると、TUI に対話的なプロンプトカードが表示されます。
ファイル、URL、または MCP 権限について Allow を確定する前に、プロンプトカード内でターゲット文字列を直接編集して、付与するスコープを拡大できます(たとえば、単一ファイルのリクエスト /project/file.txt を親ディレクトリ /project に広げるなど)。CLI は、編集後のターゲットがその操作を安全にカバーしていることを検証し、そのターン中は拡大されたグラントを適用することで、関連する操作に対する繰り返しのプロンプトを防ぎます。(注: ターミナルコマンドではスコープ編集はサポートされていません。)
構成例
これらのルールを ~/.gemini/antigravity-cli/settings.json ファイルに追加します。
{
"permissions": {
"allow": [
"command(git)",
"command(npm run (build|lint|test))",
"unsandboxed(git push)",
"read_file(/var/log/app)",
"write_file(src/)",
"read_url(google.com)",
"mcp(linter/*)"
],
"deny": [
"command(rm -rf)",
"command(curl .*)",
"command(sudo)",
"write_file(.git/)",
"write_file(/home/user/.ssh)"
],
"ask": ["command(*)", "execute_url(aws.amazon.com)", "mcp(sql/execute_mutation)"]
}
}
関連項目
- サンドボックスのカスタマイズ: OS レベルのコンテナ分離境界を強制します。
- プラグインとスキル: 独自のカスタムスキルやスラッシュコマンドを作成します。
- 設定、レンダリング、キーバインディング: キーボードのホットキーやバッファをカスタマイズします。