Trusted Folders
概要
どのプロジェクトが Gemini CLI の全機能を使えるかを制御するセキュリティ設定。フォルダを承認するまで、そこからプロジェクト固有の設定を読み込まないことで、悪意あるコードの実行を防ぐ。
仕様
有効化
- trusted-folders のページには「この機能は既定で無効」と書かれている
- 一方、configuration リファレンスの
security.folderTrust.enabledは「Default:true」と記載されている(要再起動) - 出典内でこの 2 か所の記述が食い違っているため、実環境で有効・無効を確認すること
- 有効にするには user の
settings.jsonにsecurity.folderTrust.enabled: trueを書く
trust ダイアログ
有効にすると、あるフォルダから初めて Gemini CLI を起動したときにダイアログが出る。
| 選択肢 | 内容 |
|---|---|
| Trust folder | 現在のフォルダを完全に信頼する |
| Trust parent folder | 親ディレクトリを信頼する。そのサブディレクトリもすべて自動的に信頼される |
| Don't trust | untrusted としてマークする。CLI は制限された "safe mode" で動く |
- 選択は
~/.gemini/trustedFolders.jsonに保存され、フォルダごとに 1 回だけ尋ねられる
discovery フェーズ
選択の前に、フォルダを走査して設定候補を探し、判断材料としてダイアログに表示する。
- Commands: 機能を追加するカスタム
.tomlのコマンド定義 - MCP Servers: CLI が接続を試みる設定済みサーバー
- Hooks: 挙動を横取り・変更しうる hook
- Skills: ローカルの agent skill
- Setting overrides: グローバルの user 設定を上書きするプロジェクト固有の設定
加えて次も表示される。
- Security Warnings: 特定のツールの自動承認やセキュリティ sandbox の無効化など、危険になりうる設定を明示的に示す
- Discovery Errors: 走査中の問題(不正な
settings.jsonなど)を目立つ形で表示する
untrusted なワークスペースでの制限(safe mode)
- workspace の設定を無視する: プロジェクトの
.gemini/settings.jsonを読み込まない - 環境変数を無視する: プロジェクトの
.envを読み込まない - extension の管理が制限される: インストール・更新・アンインストールができない
- ツールの自動承認が無効になる: グローバルに自動承認を有効にしていても、常に確認を求める
- 自動のメモリ読み込みが無効になる: ローカル設定で指定されたディレクトリからコンテキストへ自動でファイルを読み込まない
- MCP サーバーに接続しない
- カスタムコマンドを読み込まない: プロジェクト固有・グローバルの user コマンドの両方を読み込まない
ヘッドレス・自動化環境
- 対話プロンプトを出せない環境(CI/CD など)では trust ダイアログを表示できない
- フォルダが untrusted で Folder Trust が有効な場合、CLI は
FatalUntrustedWorkspaceErrorを投げて終了する - 回避方法
- コマンドラインフラグ
--skip-trust - 環境変数
GEMINI_CLI_TRUST_WORKSPACE=true
- コマンドラインフラグ
- どちらもプロンプトを出さずに、そのセッションの間だけ現在のワークスペースを信頼する
trust ファイルの場所の上書き
- 既定は
~/.gemini/trustedFolders.json GEMINI_CLI_TRUSTED_FOLDERS_PATH環境変数に絶対ファイルパスを設定すると変更できる
管理
- 現在のフォルダの trust を変える: CLI 内で
/permissionsを実行すると同じ対話ダイアログが出る - すべての trust ルールを見る:
~/.gemini/trustedFolders.jsonの内容を確認する
trust 判定の順序
- IDE trust signal: IDE Integration を使っている場合、CLI はまず IDE にワークスペースが信頼されているか尋ねる。IDE の応答が最優先
- Local trust file: IDE が接続されていない場合、
~/.gemini/trustedFolders.jsonを確認する
設定
{
"security": {
"folderTrust": {
"enabled": true
}
}
}
関連
facts/gemini-cli/configuration.mdfacts/gemini-cli/commands.mdfacts/gemini-cli/mcp-server.mdfacts/gemini-cli/extensions.mdfacts/gemini-cli/ide-integration.mdfacts/gemini-cli/headless.mdfacts/gemini-cli/policy-engine.md