Antigravity を使っていて、npm install や git status のような同じコマンドを1日に何度も「許可しますか?」と聞かれていませんか。「常に許可」を押したはずなのに、翌朝開き直すとまた最初から確認が始まる—この症状で作業が止まっている方は珍しくありません。
私自身、Antigravity に乗り換えて最初の1週間は、この許可ダイアログとの戦いで開発リズムが完全に崩れました。原因を追ってみると、許可リストはちゃんと保存されているのに、Antigravity 側がその設定を読んでくれない条件が複数あったのです。ここでは実機で再現できた3つの原因と、それぞれの恒久的な解決策を順番に整理していきます。
なぜ許可ダイアログが繰り返し表示されるのか
Antigravity の許可システムは VS Code の Workspace Trust とは別の仕組みで動いています。具体的には、エージェントが run_terminal_command ツールを呼び出すたびに、許可リストに照合してマッチしなければダイアログを出す、というシンプルな設計です。
許可リストは3つの場所に分かれて保存されます。
- User 設定:
~/Library/Application Support/Antigravity/User/settings.json(macOS の場合) - Workspace 設定: プロジェクトルートの
.antigravity/settings.json - Session メモリ: Antigravity を起動している間だけ保持される一時許可
「常に許可」をクリックしたとき、どの場所に保存されるかは、その時点で開いているワークスペースの信頼状態によって決まります。ここが今回の混乱の発生源です。
原因1: ワークスペース信頼が「Restricted Mode」になっている
最も多いのがこのケースです。Antigravity でプロジェクトを開いた直後、画面右下に小さく「This workspace is in Restricted Mode」と表示されていませんか。Restricted Mode の状態で「常に許可」を押すと、設定はワークスペース側に保存されず、セッションメモリに一時的に置かれるだけです。Antigravity を再起動すると当然消えます。
確認方法はシンプルです。コマンドパレット(Cmd+Shift+P / Ctrl+Shift+P)を開き、Workspaces: Manage Workspace Trust を実行してください。「Trusted」になっていない場合、これが直接の原因です。
解決手順
- コマンドパレットから
Workspaces: Manage Workspace Trustを開く - 「Trust」をクリックし、対象フォルダを信頼済みに変更する
- 既存の許可エントリをクリアして、もう一度同じコマンドを実行
- 出てきたダイアログで「常に許可」を選択する
これでワークスペース側の .antigravity/settings.json に許可エントリが書き込まれ、再起動後も維持されます。
原因2: 許可パターンとコマンド文字列が一致していない
2つ目の落とし穴は、保存されている許可パターンが実行コマンドと厳密に一致していないケースです。Antigravity の許可マッチングは、デフォルトでは前方一致ではなく完全一致で動きます。
たとえば過去に npm install で許可した場合、npm install --save-dev typescript は別コマンドとして再度ダイアログが出ます。エージェントが日々生成するコマンドは引数が微妙に変わるため、完全一致ではすぐに許可リストの効力が切れてしまうのです。
settings.json で wildcard 許可を設定する
ユーザー設定ファイル(~/Library/Application Support/Antigravity/User/settings.json)を開いて、以下のように antigravity.commands.alwaysAllow を編集します。
{
"antigravity.commands.alwaysAllow": [
{
"pattern": "npm install*",
"match": "glob"
},
{
"pattern": "npm run *",
"match": "glob"
},
{
"pattern": "git (status|log|diff|branch).*",
"match": "regex"
},
{
"pattern": "ls *",
"match": "glob"
},
{
"pattern": "cat *",
"match": "glob"
}
]
}設定の意味を順に説明します。pattern がマッチさせたい文字列、match がマッチング方式(exact / glob / regex)です。glob は shell のワイルドカード相当で、* が任意の文字列に対応します。regex は正規表現で、複雑な分岐をひとつのエントリに集約できます。
実行頻度の高い読み取り系コマンドは glob で広めに、書き込み系(rm、git push、npm publish など)は exact で慎重に扱う、という使い分けが現場では落ち着きどころです。
期待される動作
設定を保存したあと、Antigravity を再起動せずにコマンドパレットから Antigravity: Reload Permission Settings を実行すると即座に反映されます。エージェントが npm install --save-dev typescript を実行しても、もうダイアログは出ません。
原因3: 設定ファイルが上書きされている
3つ目はやや見つけにくい原因です。Settings Sync を有効にしていると、別のマシンで開いた Antigravity が空の許可リストを同期してきて、こちらの設定を上書きしてしまうことがあります。私の場合、デスクトップとノート PC の両方で Antigravity を使っていて、ノート PC 側で許可を1つも追加していなかったため、デスクトップの設定が定期的に消える状態になっていました。
解決手順: 許可リストを Sync 対象から外す
設定ファイルに以下を追記すると、許可リストはローカル専用になり、Settings Sync に巻き込まれません。
{
"settingsSync.ignoredSettings": [
"antigravity.commands.alwaysAllow",
"antigravity.commands.alwaysDeny"
]
}これでマシンごとに独立した許可リストを保てます。複数台で Antigravity を使う方には強くおすすめします。
危険なコマンドを自動拒否する設定
「常に許可」を広めに設定すると、エージェントが想定外のコマンドを実行するリスクが増えます。これを防ぐには、alwaysAllow と対になる alwaysDeny リストを併用するのが安全です。
{
"antigravity.commands.alwaysDeny": [
{
"pattern": "rm -rf /*",
"match": "glob"
},
{
"pattern": "sudo *",
"match": "glob"
},
{
"pattern": "git push --force*",
"match": "glob"
},
{
"pattern": ":(){ :|:& };:",
"match": "exact"
}
]
}alwaysDeny のマッチングは alwaysAllow より優先されるため、alwaysAllow 側で git * を許可していても git push --force だけは確実にブロックできます。私はこの 4 行をすべてのプロジェクトで標準テンプレートにしています。
トラブルが残るときのデバッグ手順
ここまで設定しても症状が続く場合、次の順番で原因を切り分けてください。
- コマンドパレットで
Antigravity: Show Permission Resolver Logsを実行し、どのパターンと照合されているか確認する - ログに「No matching pattern」と出ているなら、パターンの書き方が原因
- ログに「Workspace not trusted」と出ているなら、原因1のワークスペース信頼問題
- ログ自体が出ない場合、許可マッチングが無効になっている可能性があるため、設定ファイルの JSON 構文エラーを
jq . settings.jsonで検証する
JSON 構文エラーは見落としがちです。カンマの位置やクォートの種類が原因で、設定ファイル全体が読み込まれずダイアログが出続ける、というケースを実際に何度か経験しました。
関連する設定の調整
許可ダイアログの問題を解決すると、今度は「許可した結果、エージェントが想定外の挙動をする」という二次的な問題が起きやすくなります。エージェントの挙動制御については Antigravityignore ファイル完全ガイド で、エージェントが触れていいファイルの範囲を絞り込む方法を解説しています。あわせて、Antigravity の Settings Sync が同期されない・コンフリクトする問題の解決 も読んでおくと、3つ目の原因をより深く理解できます。
許可設定や開発環境の堅牢化をさらに
全体を振り返って
許可ダイアログの繰り返し表示は、Antigravity を使い始めた誰もが一度はぶつかる壁ですが、原因はほぼ3つに集約されます。今すぐできる最小の一歩としては、ご自身のプロジェクトをコマンドパレットから「Trusted」に切り替え、settings.json に頻用コマンド3〜5個分の glob パターンを追加してみてください。これだけで体感のストレスが半減するはずです。設定を一度整えてしまえば、毎朝ダイアログを閉じる時間がそのまま開発時間に変わります。