factsGemini CLIconfiguration

Gemini CLI configuration

概要

環境変数、コマンドライン引数、settings ファイルによる設定。このページは公式リファレンスのうち日常的に使う設定を抜き出したもので、全設定を網羅していない。 網羅的な一覧は出典を参照する。

仕様

設定レイヤーの優先順位

優先度の低い順(後のものが前を上書きする)。

  1. Default values: アプリケーション内のハードコードされた既定値
  2. System defaults file: 他の settings ファイルに上書きされうるシステム全体の既定
  3. User settings file: 現在のユーザーのグローバル設定
  4. Project settings file: プロジェクト固有の設定
  5. System settings file: 他のすべての settings ファイルを上書きするシステム全体の設定
  6. Environment variables: .env から読み込まれうる変数
  7. Command-line arguments: 起動時に渡した値

settings ファイルの場所

種類場所スコープ
System defaultsLinux /etc/gemini-cli/system-defaults.json、Windows C:\ProgramData\gemini-cli\system-defaults.json、macOS /Library/Application Support/GeminiCli/system-defaults.jsonGEMINI_CLI_SYSTEM_DEFAULTS_PATH で上書き可最も優先度が低い基底レイヤー
User settings~/.gemini/settings.json現在のユーザーの全セッション
Project settingsプロジェクトルートの .gemini/settings.jsonそのプロジェクトから実行したときのみ
System settingsLinux /etc/gemini-cli/settings.json、Windows C:\ProgramData\gemini-cli\settings.json、macOS /Library/Application Support/GeminiCli/settings.jsonGEMINI_CLI_SYSTEM_SETTINGS_PATH で上書き可システム全体・全ユーザー。すべての settings ファイルに優先する
  • JSON 対応エディタは生成済みスキーマ(リポジトリの schemas/settings.schema.json、またはホストされたもの)を参照して補完と検証ができる
  • プロジェクトの .gemini ディレクトリには settings 以外にカスタムの sandbox プロファイル(.gemini/sandbox-macos-custom.sb.gemini/sandbox.Dockerfile)も置ける

設定内の環境変数展開

  • settings.jsongemini-extension.json文字列値$VAR_NAME${VAR_NAME}${VAR_NAME:-DEFAULT_VALUE} の構文で環境変数を参照できる。設定の読み込み時に解決される
  • 各 extension は自身のディレクトリに .env を持て、自動的に読み込まれる

主な設定(settings.json

設定はカテゴリに整理され、対応するトップレベルのカテゴリオブジェクトの中に置く。

general

キー既定内容
general.preferredEditorundefined開くエディタ。組み込みの識別子のいずれかvscodevscodiumwindsurfcursorzedantigravitysublimetextlapcenovabbeditvimneovimemacshxemacsclientmicro)。未設定なら $VISUAL / $EDITOR を使う
general.openEditorInNewWindowfalseVS Code 系エディタを新しいウィンドウで開く
general.vimModefalseVim キーバインド
general.defaultApprovalMode"default"ツール実行の既定 approval mode。default / auto_edit / planYOLO モードはコマンドライン(--yolo または --approval-mode=yolo)でしか有効にできない
general.devtoolsfalse起動時に DevTools inspector を有効にする
general.enableAutoUpdatetrue自動更新
general.enableAutoUpdateNotificationtrue更新通知
general.enableNotificationsfalse対応が必要なプロンプトとセッション完了のターミナル通知
general.notificationMethod"auto"auto / osc9 / osc777 / bell
general.checkpointing.enabledfalseセッションの checkpointing(要再起動
general.plan.enabledtruePlan Mode(要再起動
general.plan.directoryundefined計画成果物の保存先。未指定ならシステムの一時ディレクトリ。カスタムディレクトリには、Plan Mode での書き込みを許すポリシーが必要(要再起動)
general.plan.modelRoutingtruePlan Mode の状態に応じて Pro と Flash を自動切り替えする(計画フェーズは Pro、実装フェーズは Flash)
general.retryFetchErrorstruefetch failed 系のエラーで再試行する
general.maxAttempts10メインのチャットモデルへのリクエストの最大試行回数。10 を超えられない
general.sessionRetention.enabledtrueセッションの自動クリーンアップ
general.sessionRetention.maxAge"30d"この期間より古いチャットを自動削除する
general.sessionRetention.maxCountundefined代替: 保持するセッションの最大数(新しい順)
general.sessionRetention.minRetention"1d"最小保持期間(安全上の下限)
general.topicUpdateNarrationtrueTopic & Update のコミュニケーションモデル
general.logRagSnippetsfalseCode Customization(RAG)で取得したスニペットをローカルファイルに記録する

output / ui

  • output.format: "text"(既定)または "json"
  • ui.themeui.customThemesui.autoThemeSwitching(既定 true)、ui.terminalBackgroundPollingInterval(既定 60 秒)
  • ui.inlineThinkingMode: "off"(既定)/ "full"
  • ui.dynamicWindowTitle(既定 true): ターミナルタイトルに状態アイコンを出す
  • ui.showHomeDirectoryWarning(既定 true、要再起動): ホームディレクトリで実行したとき警告する
  • ui.escapePastedAtSymbols(既定 false): 貼り付けテキスト内の @ をエスケープして意図しない @path 展開を防ぐ
  • ui.compactToolOutput(既定 true)、ui.hideTips(既定 false)、ui.showShortcutsHint(既定 true

tools

キー既定内容
tools.sandboxundefinedlegacy のフルプロセス sandbox 実行環境。真偽値、プロファイルのパス、または明示的な sandbox コマンド(docker / podman / lxc / windows-native)(要再起動)
tools.sandboxAllowedPaths[]sandbox からアクセスを許す追加パス(要再起動)
tools.sandboxNetworkAccessfalsesandbox のネットワークアクセス(要再起動)
tools.shell.enableInteractiveShelltruenode-pty による対話シェル。child_process へのフォールバックは引き続き適用される(要再起動)
tools.shell.backgroundCompletionBehavior"silent"バックグラウンドのシェルコマンド完了時の挙動。silent(既定)/ inject(出力をエージェントに返す)/ notify(チャットに短いメッセージ)
tools.shell.pager"cat"シェル出力の pager
tools.shell.showColortrueシェル出力の色
tools.shell.inactivityTimeout300出力が無い状態で許される最大秒数
tools.coreundefined組み込みツールを allowlist で制限する(要再起動)
tools.allowedundefined確認ダイアログを飛ばすツール名(例: ["run_shell_command(git)", "run_shell_command(npm test)"])(要再起動)
tools.confirmationRequiredundefined常に確認を要するツール名。allowed と core の allowlist より優先する(要再起動)
tools.excludeundefined発見から除外するツール名(要再起動)。Policy Engine のドキュメントではこの設定は deprecated とされ、deny のポリシールールが推奨されている
tools.discoveryCommand / tools.callCommandundefinedカスタムのツール発見・呼び出しコマンド。callCommand はツール名を第 1 引数に取り、JSON 引数を stdin から読み、JSON 結果を stdout に出す必要がある(要再起動)
tools.useRipgreptrue内容検索に ripgrep を使う
tools.truncateToolOutputThreshold40000大きなツール出力を切り詰めるときの最大文字数。0 以下で切り詰めを無効化(要再起動)
tools.disableLLMCorrectiontrue編集ツールの LLM ベースのエラー訂正を無効にする。有効時は完全一致が見つからないと自己訂正を試みず即座に失敗する(要再起動)
useWriteTodostruewrite_todos ツールを有効にする

mcp

  • mcp.serverCommand(要再起動)、mcp.allowed(許可する MCP サーバー一覧、要再起動)、mcp.excluded(除外、要再起動)

security

キー既定内容
security.toolSandboxingfalseツール単位の sandbox。CLI プロセス全体ではなく個々のツールを隔離する(要再起動)
security.disableYoloModefalseフラグで有効化されても YOLO モードを無効にする(要再起動)
security.disableAlwaysAllowfalseツール確認ダイアログの「Always allow」を無効にする(要再起動)
security.enablePermanentToolApprovalfalse「Allow for all future sessions」を有効にする
security.autoAddToPolicyByDefaultfalsetrusted なワークスペースの低リスクツールで「Allow for all future sessions」を既定の選択肢にする
security.blockGitExtensionsfalseGit からの extension のインストールと読み込みをブロックする(要再起動)
security.allowedExtensions[]許可する extension の正規表現。空でない場合、一致するものだけが許可され、blockGitExtensions を上書きする(要再起動)
security.folderTrust.enabledtrueFolder trust の有効・無効(要再起動)
security.environmentVariableRedaction.enabledfalse秘密を含みうる環境変数の redaction(要再起動)
security.environmentVariableRedaction.allowed / .blocked[]常に許可/常に redact する環境変数(要再起動)
security.auth.selectedType / .enforcedType / .useExternalundefined認証タイプ。enforcedType が選択中の型と一致しないと再認証を求められる(要再起動)
security.enableConsecafalsecontext-aware security checker。LLM を使ってプロンプトに基づくツール利用のセキュリティポリシーを動的に生成・強制する(要再起動)

advanced

  • advanced.autoConfigureMemory(既定 true、要再起動): Node.js のメモリ上限を自動設定する。メモリはプロセス起動時に確保されるため、この設定はグローバルの user settings からのみ読まれ、workspace レベルの上書きを無視する
  • advanced.dnsResolutionOrder(要再起動)
  • advanced.excludedEnvVars(既定 ["DEBUG", "DEBUG_MODE"]): プロジェクトのコンテキストから除外する環境変数
  • advanced.ignoreLocalEnv(既定 false、要再起動): プロジェクトディレクトリの汎用 .env を無視する
  • advanced.bugCommand: bug report コマンドの設定

admin

キー既定内容
admin.secureModeEnabledfalsetrue で YOLO モードと「Always allow」を使えなくする
admin.extensions.enabledtruefalse で extension のインストールと利用を禁じる
admin.mcp.enabledtruefalse で MCP サーバーの利用を禁じる
admin.mcp.config{}管理者が設定する MCP サーバー(allowlist)
admin.mcp.requiredConfig{}常に注入される管理者必須の MCP サーバー
admin.skills.enabledtruefalse で agent skills の利用を禁じる

policyPaths / adminPolicyPaths

  • どちらも配列、既定 []、要再起動。追加で読み込むポリシーファイル/ディレクトリ

mcpServers

  • 発見された各ツールには mcp_ 接頭辞とサーバーのエイリアスが付いて FQN(mcp_serverAlias_actualToolName)になる
  • 互換性のため、システムが MCP ツール定義から一部のスキーマプロパティを削ることがある
  • commandurlhttpUrl のうち少なくとも 1 つが必要。複数指定した場合の優先順位は httpUrlurlcommand
  • サーバーのエイリアスにアンダースコア(_)を使わない。 ポリシーエンジンは FQN を mcp_ 接頭辞の直後の最初のアンダースコアで分割するため、セキュリティポリシーが黙って機能しなくなりうる
  • サーバーごとのキー: commandargsenvcwdurl(SSE)、httpUrl(streamable HTTP)、headerstimeout など

シェル履歴

  • 場所: ~/.gemini/tmp/<project_hash>/shell_history
  • <project_hash> はプロジェクトルートのパスから生成される一意な識別子。プロジェクト間の衝突を避けるためプロジェクト固有ディレクトリに保存される

環境変数と .env

.env の読み込み順:

  1. 現在の作業ディレクトリの .env
  2. 見つからなければ、.git フォルダで識別されるプロジェクトルートまたはホームディレクトリに達するまで親ディレクトリを遡る
  3. それでも見つからなければ ~/.env
  • 一部の環境変数(DEBUGDEBUG_MODE)は、gemini-cli の挙動への干渉を防ぐためプロジェクトの .env から自動的に除外される。.gemini/.env の変数は決して除外されない。 この挙動は advanced.excludedEnvVars で変えられる

主な環境変数:

変数内容
GEMINI_API_KEYGemini API のキー
GEMINI_MODEL既定モデル。ハードコードされた既定を上書きする
GEMINI_CLI_TRUST_WORKSPACE"true" でそのセッションの間、現在のワークスペースを信頼し folder trust チェックを飛ばす。ヘッドレス環境(CI/CD)向け
GEMINI_CLI_TRUSTED_FOLDERS_PATHtrustedFolders.json の既定の場所を上書きする
GEMINI_CLI_IDE_PID連携に使う IDE プロセスの PID を手動指定する。自動 IDE 検出を上書きする
GEMINI_CLI_HOMEuser レベルの設定と保存のルートディレクトリ。既定はシステムのホームディレクトリで、その中に .gemini を作る
GEMINI_CLI_SURFACEAPI トラフィックのレポート用に User-Agent ヘッダーに含めるカスタムラベル
GOOGLE_API_KEYGoogle Cloud の API キー。Vertex AI の express mode に必要
GOOGLE_CLOUD_PROJECTGoogle Cloud のプロジェクト ID。Code Assist または Vertex AI に必要Cloud Shell では Cloud Shell 用に割り当てられた特別なプロジェクトが既定になり、グローバル環境の設定は上書きされる。別のプロジェクトを使うには .env で定義する
GOOGLE_APPLICATION_CREDENTIALSGoogle Application Credentials の JSON ファイルへのパス

コマンドライン引数

フラグ内容
--acpAgent Communication Protocol(ACP)モードで起動する
--allowed-mcp-server-namesそのセッションで許可する MCP サーバー名のカンマ区切り一覧
--allowed-tools <tool1,tool2,...>確認ダイアログを飛ばすツール名のカンマ区切り一覧
--approval-mode <mode>default / auto_edit / yolo / planplan は experimental planning の有効化が必要で、「現在開発中で完全には機能していない」と注記されている--yolo とは併用できず、新しい統一的な方法としては --approval-mode=yolo を使う
--debug-dデバッグモード。F12 でデバッグコンソールを開く
--delete-session <identifier>インデックス番号または完全な UUID でチャットセッションを削除する
--extensions <name ...>-e使う extension を指定する。指定しないと利用可能なすべてが使われる。gemini -e none ですべて無効化
--fake-responsesテスト用の偽モデル応答ファイルのパス
--include-directories <dir1,dir2,...>ワークスペースに追加ディレクトリを含める。最大 5 ディレクトリ
--list-extensions-l利用可能な extension を一覧して終了する
--list-sessions現在のプロジェクトのチャットセッションを一覧して終了する
--model <name>-mそのセッションで使うモデル
--output-format <format>非対話モードの出力形式。text(既定)/ json / stream-json(リアルタイムイベントを出すストリーミング JSON)
--prompt <text>-pプロンプトを直接渡す。非対話モードで起動する
--prompt-interactive <text>-iそのプロンプトを最初の入力として対話セッションを始める。stdin からパイプ入力しているときは使えない
--record-responsesテスト用にモデル応答を記録するファイルのパス
--resume [session_id]-r過去のセッションを再開する。latest、インデックス番号、完全な UUID。省略時は latest
--sandbox-sそのセッションで sandbox モードを有効にする
--screen-readerスクリーンリーダー向けに TUI を調整する
--versionバージョンを表示する
--yoloすべてのツール呼び出しを自動承認する

設定

{
  "general": {
    "defaultApprovalMode": "auto_edit",
    "checkpointing": { "enabled": true }
  },
  "tools": {
    "allowed": ["run_shell_command(git status)"],
    "useRipgrep": true
  },
  "security": {
    "folderTrust": { "enabled": true },
    "disableYoloMode": true
  }
}
{
  "apiKey": "${MY_API_TOKEN:-default-token}"
}

制約・注意点

  • このページは全設定の網羅ではない。網羅的な一覧は出典の configuration リファレンスを参照する
  • 「要再起動」と記した設定は、変更後に CLI の再起動が必要

関連

  • facts/gemini-cli/commands.md
  • facts/gemini-cli/policy-engine.md
  • facts/gemini-cli/sandbox.md
  • facts/gemini-cli/tools.md
  • facts/gemini-cli/mcp-server.md
  • facts/gemini-cli/gemini-md.md
  • facts/gemini-cli/trusted-folders.md
  • facts/gemini-cli/model.md
  • facts/gemini-cli/headless.md
  • facts/gemini-cli/extensions.md
  • facts/gemini-cli/hooks.md
  • facts/gemini-cli/skills.md
  • facts/gemini-cli/subagents.md
  • facts/gemini-cli/checkpointing.md