factsGemini CLItrusted-folders

Trusted Folders

概要

どのプロジェクトが Gemini CLI の全機能を使えるかを制御するセキュリティ設定。フォルダを承認するまで、そこからプロジェクト固有の設定を読み込まないことで、悪意あるコードの実行を防ぐ。

仕様

有効化

  • trusted-folders のページには「この機能は既定で無効」と書かれている
  • 一方、configuration リファレンスの security.folderTrust.enabled は「Default: true」と記載されている(要再起動)
  • 出典内でこの 2 か所の記述が食い違っているため、実環境で有効・無効を確認すること
  • 有効にするには user の settings.jsonsecurity.folderTrust.enabled: true を書く

trust ダイアログ

有効にすると、あるフォルダから初めて Gemini CLI を起動したときにダイアログが出る。

選択肢内容
Trust folder現在のフォルダを完全に信頼する
Trust parent folder親ディレクトリを信頼する。そのサブディレクトリもすべて自動的に信頼される
Don't trustuntrusted としてマークする。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)

  1. workspace の設定を無視する: プロジェクトの .gemini/settings.json を読み込まない
  2. 環境変数を無視する: プロジェクトの .env を読み込まない
  3. extension の管理が制限される: インストール・更新・アンインストールができない
  4. ツールの自動承認が無効になる: グローバルに自動承認を有効にしていても、常に確認を求める
  5. 自動のメモリ読み込みが無効になる: ローカル設定で指定されたディレクトリからコンテキストへ自動でファイルを読み込まない
  6. MCP サーバーに接続しない
  7. カスタムコマンドを読み込まない: プロジェクト固有・グローバルの 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 判定の順序

  1. IDE trust signal: IDE Integration を使っている場合、CLI はまず IDE にワークスペースが信頼されているか尋ねる。IDE の応答が最優先
  2. Local trust file: IDE が接続されていない場合、~/.gemini/trustedFolders.json を確認する

設定

{
  "security": {
    "folderTrust": {
      "enabled": true
    }
  }
}

関連

  • facts/gemini-cli/configuration.md
  • facts/gemini-cli/commands.md
  • facts/gemini-cli/mcp-server.md
  • facts/gemini-cli/extensions.md
  • facts/gemini-cli/ide-integration.md
  • facts/gemini-cli/headless.md
  • facts/gemini-cli/policy-engine.md