← Antigravity CLI リファレンス(目次へ)

権限(Permissions)

出典: antigravity.google/docs/cli-permissions(公式ドキュメントの日本語要約)

ローカルワークステーションを保護し、絶対パスを制限し、独自の allow / deny / ask ポリシーを構成し、対話的な承認を管理します。

きめ細かな権限制御

自律的なワークフローを実現しながらワークステーションを保護するため、Antigravity CLI は堅牢なきめ細かな権限エンジン(Fine-Grained Permissions Engine)を統合しています。エージェントが実行するすべての機微な操作は、action(target) という形式の権限リソースとして表現されます。

権限は、グローバル設定内で構成される 3 つのアクセスリストにわたって評価されます。

~/.gemini/antigravity-cli/settings.json
注意
優先順位ルール(Precedence Rule): 競合するルールは厳密に優先順位順で評価されます: 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(*) など)、そのアクション名前空間全体に含まれるすべてのターゲットにマッチします。

暗黙的な権限ルール

クロスプラットフォームのパス正規化

Antigravity CLI は、macOS、Linux、Windows のいずれで開発していても、権限ルールが完全に機能することを保証します。macOS と Linux では、パスは標準的なスラッシュ(/)を使用します。Windows では、Antigravity CLI はルール評価の前にパスを自動的に正規化し、ドライブレター(例: C:)を取り除き、すべてのバックスラッシュ(\)をスラッシュ(/)に変換します。

システムのデフォルト挙動とガードレール

あるアクションが allow、deny、ask のいずれのリストにも明示的に列挙されていない場合、システムは安全なシステムデフォルトにフォールバックします。

  1. ワークスペースは自動的に許可: 通常の運用では、アクティブなプロジェクトディレクトリ内のファイルの読み取りと書き込みは自動的に許可されます。
  2. Web ブラウジングはデフォルトで Ask: read_url と execute_url のアクションはデフォルトで Ask になります。エージェントが Web ページにアクセスまたは操作する前に、allow ルールが構成されていない限り、一時停止して承認を求めます。
  3. 未構成のアクションはデフォルトで 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)"]
  }
}

関連項目