factsGemini CLIgemini-md

Provide context with GEMINI.md files

概要

既定のファイル名 GEMINI.md で、モデルに指示的コンテキストを与える仕組み。プロジェクト固有の指示、ペルソナ、コーディングスタイルガイドを 1 か所に定義できる。

仕様

階層

CLI は複数の場所からコンテキストファイルを読み、見つかったすべての内容を連結して毎回のプロンプトと一緒にモデルへ送る。読み込み順:

  1. Global context file: ~/.gemini/GEMINI.md。すべてのプロジェクトへの既定の指示
  2. Environment / workspace context files: 設定したワークスペースディレクトリとその親ディレクトリGEMINI.md
  3. Just-in-time(JIT)context files: ツールがファイルやディレクトリにアクセスしたとき、そのディレクトリと trusted root までの祖先を自動走査する。必要になったときだけ特定コンポーネント向けの指示を発見できる
  • CLI のフッターに読み込まれたコンテキストファイル数が表示される

/memory コマンド

  • /memory show: 現在の階層メモリの全内容を連結して表示する
  • /memory reload: 設定されたすべての場所の GEMINI.md を再走査・再読み込みする

facts/gemini-cli/commands.md/memory には list / refresh / show が挙げられている)

ファイル名のカスタマイズ

  • settings.jsoncontext.fileName プロパティで別名や名前の一覧を指定できる

インポート(Memory Import Processor)

@file.md 構文で他のファイルの内容を取り込み、大きな GEMINI.md を分割できる。

  • 相対パス: @./file.md(同じディレクトリ)、@../file.md(親)、@./components/file.md(サブディレクトリ)
  • 絶対パス: @/absolute/path/to/file.md
  • インポートされたファイル自身もインポートを含められる(ネスト)

安全機構:

  • 循環インポートを自動検出して防ぐ
  • validateImportPath 関数により、指定されたディレクトリからのインポートだけが許可され、範囲外の機微なファイルへのアクセスを防ぐ
  • 無限再帰を防ぐため、最大インポート深さが設定可能で既定は 5 レベル

エラー処理:

  • 参照先のファイルが無い場合、出力にエラーコメントを残して穏当に失敗する
  • 権限などのファイルシステムエラーも適切なメッセージで処理される

コード領域の検出:

  • marked ライブラリでコードブロックとインラインコードを検出し、その中の @ インポートは無視される

設定

# Project: My TypeScript Library

## General Instructions

- When you generate new TypeScript code, follow the existing coding style.
- Ensure all new functions and classes have JSDoc comments.
# Main GEMINI.md file

This is the main content.

@./components/instructions.md

@../shared/style-guide.md
{
  "context": {
    "fileName": ["AGENTS.md", "CONTEXT.md", "GEMINI.md"]
  }
}

関連

  • facts/gemini-cli/configuration.md
  • facts/gemini-cli/commands.md
  • facts/gemini-cli/skills.md
  • facts/gemini-cli/auto-memory.md
  • facts/gemini-cli/extensions.md