コンテンツにスキップ

Gemini CLI 環境調査レポート(Stage 3-A Phase 1)

TL;DR — 重要発見 5 件

  1. Gemini CLI 0.42.0 が /opt/homebrew/bin/gemini に Homebrew インストール済み。OAuth 認証完了済(kudotakuma421@gmail.com)。
  2. MCP プロトコル完全対応。obsidian (HTTP 27123) と workflowy (stdio) は既に接続済み・動作確認済み。Gemini CLI 側設定ファイルは ~/.gemini/settings.json~/.config/gemini/ ではない)。
  3. GEMINI.md は CLAUDE.md と完全に同じ階層メモリ規約DEFAULT_CONTEXT_FILENAME = "GEMINI.md" がバンドル内で確認できた。/init でひな型生成、/memory list で読み込みパス確認、/memory reload でリロード。
  4. Claude Code との互換性が公式に意図されているgemini hooks migrate サブコマンドが「Migrate hooks from Claude Code to Gemini CLI」として存在。Skills / Extensions / Hooks エコシステムが Claude Code と並走する設計。
  5. Vault 実機テスト成功cd ~/KUDO-Vault && gemini --approval-mode plan -p "..."CLAUDE.md を読み・日本語で要約を出力。MCP 経由ではなく Gemini CLI 自体のローカル file read が利いた。Read-only plan モードで安全。

§1 インストール状況

項目
バイナリパス /opt/homebrew/bin/gemini
インストール経路 Homebrew(@google/gemini-cli npm パッケージを Homebrew 経由で導入)
バージョン 0.42.0
実体ディレクトリ /opt/homebrew/lib/node_modules/@google/gemini-cli/

verbatim:

$ which gemini
/opt/homebrew/bin/gemini

$ gemini --version
0.42.0


§2 利用可能な機能(gemini --help verbatim)

Usage: gemini [options] [command]

Gemini CLI - Defaults to interactive mode. Use -p/--prompt for non-interactive (headless) mode.

Commands:
  gemini mcp                   Manage MCP servers
  gemini extensions <command>  Manage Gemini CLI extensions.  [aliases: extension]
  gemini skills <command>      Manage agent skills.  [aliases: skill]
  gemini hooks <command>       Manage Gemini CLI hooks.  [aliases: hook]
  gemini gemma                 Manage local Gemma model routing
  gemini [query..]             Launch Gemini CLI  [default]

Positionals:
  query  Initial prompt. Runs in interactive mode by default; use -p/--prompt for non-interactive.

Options:
  -d, --debug                     Run in debug mode (open debug console with F12)
  -m, --model                     Model  [string]
  -p, --prompt                    Run in non-interactive (headless) mode with the given prompt.
                                  Appended to input on stdin (if any).
  -i, --prompt-interactive        Execute the provided prompt and continue in interactive mode
      --skip-trust                Trust the current workspace for this session.
  -w, --worktree                  Start Gemini in a new git worktree.
  -s, --sandbox                   Run in sandbox?
  -y, --yolo                      Automatically accept all actions (aka YOLO mode)
      --approval-mode             Set the approval mode: default (prompt for approval),
                                  auto_edit (auto-approve edit tools), yolo (auto-approve all
                                  tools), plan (read-only mode)
      --policy                    Additional policy files or directories to load
      --admin-policy              Additional admin policy files or directories to load
      --acp                       Starts the agent in ACP mode
      --experimental-acp          Starts the agent in ACP mode (deprecated)
      --allowed-mcp-server-names  Allowed MCP server names
      --allowed-tools             [DEPRECATED] Tools allowed without confirmation
  -e, --extensions                A list of extensions to use
  -l, --list-extensions           List all available extensions and exit
  -r, --resume                    Resume a previous session (use "latest" or index number)
      --session-id                Start a new session with a manually provided UUID
      --list-sessions             List available sessions for the current project and exit
      --delete-session            Delete a session by index number
      --include-directories       Additional directories to include in the workspace
      --screen-reader             Enable screen reader mode for accessibility
  -o, --output-format             The format of the CLI output (text / json / stream-json)
      --raw-output                Disable sanitization of model output
      --accept-raw-output-risk    Suppress the security warning when using --raw-output
  -v, --version                   Show version number
  -h, --help                      Show help

§2.1 重要オプション・サブコマンドの所感

オプション / 機能 CLAUDE 環境での等価物 Stage 3-A での意義
-p, --prompt Claude Code の headless スクリプトから呼べる。scheduled-tasks 統合の素地。
--approval-mode plan Claude Code の plan mode 読み取り専用モード。Vault の安全な読み込み検証に最適。
--approval-mode yolo / -y --dangerously-skip-permissions バッチ実行向け。Stage 3-B 以降で検討。
-r, --resume / --list-sessions Claude Code の resume セッション再開可能。
--include-directories Claude Code の include クロスフォルダ参照(Vault + working を同時参照など)。
--policy / --admin-policy 同等概念は Claude Code には弱め Policy Engine:許可リスト式のツール制御(allowed-tools の後継)。
--acp (Claude Code 側にも ACP あり) Agent Communication Protocol — 上位ハーネスから操作可能。
gemini hooks migrate Claude Code の hooks をそのまま移植できる。後述 §5 で詳述。
gemini skills Claude Code の ~/.claude/skills/ SKILL.md 仕様が共通。Stage 3-B での流用設計が可能。
gemini extensions Claude Code の plugin Extension システム(geminicli.com/docs/extensions/writing-extensions)。
gemini gemma ローカル Gemma モデルへのルーティング。オフライン代替可。

--context / --file / --system / --instruction といった単独フラグは存在しない。 代わりに GEMINI.md 階層メモリ規約(§4 後述)と --include-directories で文脈付与する。


§3 設定ファイル探索

§3.1 ディレクトリ存在確認

$ ls -la ~/.config/gemini/
ls: /Users/kudotakuma/.config/gemini/: No such file or directory

$ ls -la ~/.gemini/
(中略)
-rw-r--r--@  google_accounts.json
drwxr-xr-x@  history/
-rw-r--r--@  installation_id
-rw-------@  oauth_creds.json
-rw-r--r--@  projects.json
-rw-r--r--@  settings.json
-rw-r--r--@  settings.json.bak.20260518-105850
-rw-------@  state.json
drwxr-xr-x@  tmp/
-rw-------@  trustedFolders.json

正しいパスは ~/.gemini/(XDG 規約の ~/.config/gemini/ ではない)。

§3.2 主要設定ファイル verbatim

~/.gemini/settings.json

{
  "mcpServers": {
    "obsidian": {
      "url": "http://127.0.0.1:27123/mcp/",
      "type": "http",
      "headers": {
        "Authorization": "Bearer ████████"  // 機密のため伏字(実体は AI-ACCESS.md 経由で確認可)
      }
    },
    "workflowy": {
      "command": "/Users/kudotakuma/go/bin/workflowy",
      "args": ["mcp", "--expose=all"]
    }
  },
  "security": {
    "auth": {
      "selectedType": "oauth-personal"
    }
  }
}

~/.gemini/projects.json

{
  "projects": {
    "/Users/kudotakuma/Library/CloudStorage/GoogleDrive-kudotakuma421@gmail.com/マイドライブ/working": "working",
    "/Users/kudotakuma/KUDO-Vault": "kudo-vault",
    "/Users/kudotakuma": "kudotakuma"
  }
}

→ working / KUDO-Vault / home の 3 プロジェクトが既に登録済み。

~/.gemini/google_accounts.json

{ "active": "kudotakuma421@gmail.com", "old": [] }

OAuth 認証は完了済みoauth_creds.json は 600 パーミッションで保護。

~/.gemini/history/ 配下kudo-vault / kudotakuma / working の各プロジェクト用履歴ディレクトリあり。

§3.3 機密扱い

  • oauth_creds.json:OAuth refresh token を含む。600 パーミッションで保護されているが、レポートには verbatim 記載しない。
  • obsidian MCP の Bearer Token:本レポートでは伏字。実体は KUDO-Vault の Obsidian Local REST API プラグイン設定から取得可。

§4 GEMINI.md 階層メモリ規約(CLAUDE.md と等価)

§4.1 バンドル内の正本(grep 結果 verbatim)

chunk-JEW7ZIWE.js:var DEFAULT_CONTEXT_FILENAME = "GEMINI.md";
interactiveCli-AG2YWL2O.js:  "Create a project-specific GEMINI.md file with /init"
interactiveCli-AG2YWL2O.js:  "Reload instructional context from GEMINI.md files with /memory reload"
interactiveCli-AG2YWL2O.js:  "List the paths of the GEMINI.md files in use with /memory list"
interactiveCli-AG2YWL2O.js:  "This folder is untrusted, project settings, hooks, MCPs, and GEMINI.md files will not be applied"
chunk-JEW7ZIWE.js:  text: "Refreshing hierarchical memory (GEMINI.md or other context files)..."
chunk-JEW7ZIWE.js:  [MemoryDiscovery] No GEMINI.md files found in hierarchy of the workspace.

§4.2 規約の要点

  • 階層メモリ:起動時に作業ディレクトリから親方向へ GEMINI.md を順次探索し、複数あれば全部マージ。
  • 重複排除:file identity ベースで dedupe(シンボリックリンクや同一ファイルの多重読込を防止)。
  • trust ベース:untrusted folder では「project settings, hooks, MCPs, GEMINI.md」がすべて無効化される。/permissions で trust 切替可。
  • /init:プロジェクトひな型 GEMINI.md 生成。
  • /memory list:現在読み込まれている GEMINI.md の全パス一覧。
  • /memory reload:GEMINI.md 群を再読込(編集後のホットリロード)。

CLAUDE.md と完全に並列構造。Phase 2 で GEMINI.md を起草する際、CLAUDE.md と同じ階層(~/.gemini/GEMINI.md グローバル、~/KUDO-Vault/GEMINI.md プロジェクト、~/working/GEMINI.md プロジェクト)に配置する設計が自然。

§4.3 現状(Phase 1 時点)

~/.gemini/GEMINI.md         → 存在しない
~/KUDO-Vault/GEMINI.md      → 存在しない
~/working/GEMINI.md         → 存在しない
~/KUDO-Vault/.gemini/       → 存在しない

Phase 2 で新設対象。Stage 3-A の中核作業。


§5 MCP サポート状況(完全対応・接続済み)

§5.1 gemini mcp --help verbatim

gemini mcp

Manage MCP servers

Commands:
  gemini mcp add <name> <commandOrUrl> [args...]  Add a server
  gemini mcp remove <name>                        Remove a server
  gemini mcp list                                 List all configured MCP servers
  gemini mcp enable <name>                        Enable an MCP server
  gemini mcp disable <name>                       Disable an MCP server

§5.2 gemini mcp list verbatim(実機接続確認)

Configured MCP servers:

✓ obsidian: http://127.0.0.1:27123/mcp/ (http) - Connected
✓ workflowy: /Users/kudotakuma/go/bin/workflowy mcp --expose=all (stdio) - Connected

両方 Connected 状態。Stage 3-A 開始時点で MCP 層は完全に立ち上がっている。

§5.3 確認できた MCP 機能

  • HTTP transport(obsidian)・stdio transport(workflowy)両対応。
  • Authorization: Bearer ヘッダ対応。
  • 動的 capability 検出:obsidian は completions / resources / tools 全対応、workflowy は logging / tools 対応。
  • listChanged 通知を受信して MCP context refresh を自動実行。
  • Claude Code と同じ MCP 接続パターン(KUDO-Vault/AI-ACCESS.md の表に既記載)。

§5.4 scheduled-tasks MCP

現時点で Gemini 設定には未登録。Stage 3-B 以降で追加するかは、用途分担マトリクス(Phase 3 で kudo-cowork-code-handoff-protocol §16-3 に統合)の議論に依存。


§6 Context Window サイズ

§6.1 バンドル内の値(grep 結果)

トークン数 用途推定
1_048_576 (1M) gemini-2.5-flash / gemini-3-flash / gemini-3.1-flash-lite 系
2_097_152 (2M) gemini-2.5-pro / gemini-3-pro / gemini-3.1-pro 系

§6.2 利用可能モデル一覧(バンドル内)

gemini-2.0-flash
gemini-2.5-flash, gemini-2.5-flash-base, gemini-2.5-flash-lite
gemini-2.5-pro
gemini-3-flash, gemini-3-flash-base, gemini-3-flash-preview
gemini-3-pro, gemini-3-pro-preview
gemini-3.1-flash-lite-preview, gemini-3.1-flash-live-preview
gemini-3.1-pro, gemini-3.1-pro-preview, gemini-3.1-pro-preview-customtools

→ ★仮説:Pro は 2M context、Flash は 1M context。 ただし公式仕様確定値は要追加調査(https://ai.google.dev/gemini-api/docs/ で確認推奨)。

§6.3 比較

環境 Context window
Claude Code(Opus 4.7 [1M]) 1,000,000
Gemini CLI(gemini-3-pro 想定) 2,097,152

Gemini Pro は Claude Opus 1M の約 2 倍。長文 Vault 全読の用途で優位。


§7 Skills / Extensions / Hooks エコシステム

§7.1 Skills

$ gemini skills list --all

skill-creator [Enabled] [Built-in]
  Location: /opt/homebrew/lib/node_modules/@google/gemini-cli/bundle/builtin/skill-creator/SKILL.md

SKILL.md 仕様が共通(Claude Code と同じファイル名)。 利用可能サブコマンド:list / enable / disable / install / link / uninstall

gemini skills install <git-url-or-local-path>GitHub からも・ローカルからもインストール可。 gemini skills link <path>シンボリックリンク的に live-link(編集が即反映)。

★含意:Claude Code の ~/.claude/skills/ 配下のスキル群をそのまま link で共有できる可能性が高い。 Stage 3-B 以降で実証する余地あり。

§7.2 Extensions

$ gemini extensions list
No extensions installed.

→ Phase 1 時点では未導入。extensions new <path> [template] でひな型生成可能。 Stage 3-A スコープ外。

§7.3 Hooks(重要:Claude Code 互換)

$ gemini hooks --help

Commands:
  gemini hooks migrate  Migrate hooks from Claude Code to Gemini CLI

公式に「Claude Code の hooks を移行する」サブコマンドが用意されている。 Stage 3-B 以降で ~/.claude/settings.json の hooks を移行する場合の選択肢。 ただし「双方向に同期」する仕組みではない点に注意(migrate=片方向)。


§8 Vault 実機テスト(成功)

§8.1 実行コマンド

cd ~/KUDO-Vault && gemini --approval-mode plan -p "CLAUDE.md を読んで、その内容を3行で要約してください。日本語で。"

§8.2 出力(verbatim)

Warning: 256-color support not detected. Using a terminal with at least 256-color support is recommended for a better visual experience.
Ripgrep is not available. Falling back to GrepTool.
`CLAUDE.md` の内容を3行で要約します。

1. 本ファイルは、工藤氏のAI外部記憶(KUDO-Vault)におけるフォルダ構造や安全規則などを一元的に定義した、AI運用指示の正本(SSOT)です。
2. ファイル命名規則、YAMLフロントマター、Obsidian構文のほか、人間のノート上書き禁止やリネーム時のリンク走査など、AIが安全に読み書きするための厳格なルールが記載されています。
3. このファイルを直接編集できるのは工藤氏のみであり、AI(ClaudeやGemini)は毎セッション開始時に必ず参照し、記載された指示に従ってVaultを運用することが求められます。
Shell cwd was reset to /Users/kudotakuma/Library/CloudStorage/GoogleDrive-kudotakuma421@gmail.com/マイドライブ/working

§8.3 検証結果

  • MCP 経由ではなく、Gemini CLI 自体のローカル file read 機能で動作(KUDO-Vault/AI-ACCESS.md §「Gemini CLI でのファイル直読み」の挙動を実証)。
  • ✅ Read-only モード(--approval-mode plan)で起動。書き込み一切なし。
  • ✅ 日本語応答の品質も十分。
  • ⚠️ 警告 2 件:
  • 256-color support not detected:Terminal の TERM 環境変数依存。実害なし。
  • Ripgrep is not available. Falling back to GrepTool.:rg 未導入。Stage 3-B 以降で brew install ripgrep 推奨(grep 性能向上のため)。

§8.4 ★追加の重要観察

Gemini CLI は実行終了時に Shell cwd was reset to ... という挙動を出す。 これは Bash subshell が cwd を保持しなかった示唆で、Code 環境のシェル状態管理と若干仕様が違う。 Stage 3-B 以降のスクリプト連携時に cd ... && gemini ... パターンが必須(一行で完結させる)。


§9 KUDO-Vault 連携の現状(AI-ACCESS.md 既記載)

~/KUDO-Vault/AI-ACCESS.md の表によれば、Gemini CLI(v0.42.0)は既に:

| Gemini CLI (v0.42.0) | MCP HTTP 27123 | ✓ Connected(MCP層・LLM層とも end-to-end 検証済み) | ~/.gemini/settings.json user scope。vault_read ツール経由で memory/MEMORY.md の frontmatter 取得を 2026-05-18 確認 |

として登録済み。Stage 0.5(2026-05-18)時点で接続検証は完了しており、Stage 3-A はこれを SSOT 化・規範化する段階に相当する。


§10 Google 公式・公式に近いドキュメント URL

/opt/homebrew/lib/node_modules/@google/gemini-cli/README.md および bundle 内から抽出:

URL 用途
https://geminicli.com/docs/ 公式ドキュメント TOP(一次ソース)
https://www.geminicli.com/docs/changelogs Changelog
https://www.geminicli.com/docs/cli/checkpointing Checkpointing
https://www.geminicli.com/docs/cli/custom-commands Custom Commands
https://geminicli.com/docs/extensions/writing-extensions Extensions 作成ガイド
https://geminicli.com/docs/core/policy-engine Policy Engine(allowed-tools の後継)
https://codewiki.google/github.com/google-gemini/gemini-cli OSS リポジトリ codewiki
https://ai.google.dev/gemini-api/docs/grounding Gemini API grounding
https://aistudio.google.com/apikey API key 発行(OAuth 以外を使う場合)
https://cloud.google.com/gemini/docs/quotas Quota / Rate limits

→ Phase 2 GEMINI.md 起草時、§3 ドキュメント参照先 セクションでこの一覧を SSOT 化推奨。


§11 Phase 2 への申し送り(GEMINI.md 起草ガイダンス)

Phase 1 の結果から、Phase 2 で GEMINI.md を起草する際の設計指針

§11.1 配置先(CLAUDE.md と並列構造)

パス 役割
グローバル ~/.gemini/GEMINI.md 全環境共通の保存先パス規律・文字正規化・状態再構成(CLAUDE.md §1 の Gemini 等価物)
Vault プロジェクト ~/KUDO-Vault/GEMINI.md Vault 専用ルール(既存 CLAUDE.md と AI-ACCESS.md を踏襲)
working プロジェクト ~/working/GEMINI.md 案件作業時の規律(CLAUDE.md §3 の二層ワークスペース等を Gemini 視点で参照)

★Phase 2 議論ポイント:GEMINI.md を CLAUDE.md の単純コピーにすべきか、それとも Gemini 固有の差分(context window 2M / Vault 直読の推奨 / --approval-mode plan デフォルト推奨)に絞った薄いファイルにすべきか。後者を推奨。CLAUDE.md は cross-reference で参照する。

§11.2 反映すべき Phase 1 の発見

  1. MCP 設定の SSOT 化~/.gemini/settings.json の mcpServers が Claude Code (~/.claude.json user scope) と別ファイルで管理されている点を明示。両方をメンテする必要あり。
  2. trust モデルの違い:Gemini CLI の trustedFolders.json--skip-trust の挙動を CLAUDE.md には無い独自項目として記載。
  3. headless で OAuth 失敗の可能性:AI-ACCESS.md にも「初回 headless 実行は Google 認証エラーで失敗 → 対話起動 gemini --skip-trust で認証完了後は headless でも動作する想定」と記載済。GEMINI.md にも転記推奨。
  4. Ripgrep is not available 警告:性能の問題。Stage 3-B 以降で brew install ripgrep を推奨設定として記載。
  5. Shell cwd was reset 仕様:スクリプト連携時の cd チェイン必須。

§11.3 反映してはいけないこと(思い込み回避)

  • GEMINI.md に「Claude Code から移行」と書かない:双方を並走運用する設計。Gemini と Claude は両立する独立 SSOT。
  • MCP 設定を CLAUDE.md と二重定義しない:「MCP サーバー定義の正本は ~/.gemini/settings.json、Claude Code 側は ~/.claude.json、両者の整合性確認は AI-ACCESS.md の表を見る」と参照させる。
  • scheduled-tasks MCP を Gemini 側にも自動登録しない:Phase 3 の用途分担マトリクス(kudo-cowork-code-handoff-protocol v1.15)で議論してから判断。

§12 Phase 3 への申し送り(用途分担マトリクス拡張ガイダンス)

kudo-cowork-code-handoff-protocol v1.14 §16-3v1.15 に拡張する際、本調査から導かれる新しい軸

Claude Code Gemini CLI
Context window 1M(Opus 4.7 [1M]) 2M(gemini-3-pro 系 / ★要追加検証)
MCP 接続 obsidian + workflowy + scheduled-tasks + …(多数) obsidian + workflowy(2 件のみ)
Skills エコシステム ~/.claude/skills/ に kudo 群 50 件 skill-creator のみ。kudo 群との連携は未実装
Hooks フル運用中 未設定(gemini hooks migrate で移行可能)
OAuth / Auth 安定性 API key ベースで安定 OAuth 1 件(kudotakuma421@gmail.com)
日本語応答 安定 安定(実機確認済)
即応性(Vault 全読要求時) context 1M で部分読み context 2M で全読の可能性 ← 強み

Gemini CLI の独自強み = 2M context での KUDO-Vault 全読 / 長文一括処理。 これを軸に振り分けを設計するのが Phase 3 の方針候補。


§13 Chat 介入トリガーの判定(Phase 1 完了時点)

トリガー 判定
Gemini CLI が想定外に機能制限されている ❌ なし。むしろ想定以上に整備されている(MCP / Skills / Hooks 全対応)
認証状態 / Google Cloud アカウント設定で追加質問が必要 ❌ なし。OAuth 完了済・MCP 接続済
Phase 1 の結果次第で Phase 2 設計が大きく変わる ⚠️ あり(Phase 2 §11.1 の設計選択:薄い差分ファイルか、フルコピーか)

★Chat に渡すべき判断項目(1 件):

GEMINI.md は CLAUDE.md と並列構造で配置するが、内容は「Gemini 固有の差分のみ」の薄いファイルにする方針で起草してよいか? CLAUDE.md は 参照先 として cross-reference する設計。 (理由:CLAUDE.md の §3 / §4 はすでに「Code 環境向けの集約索引」として位置づけられているため、内容を二重化するとメンテ負担が増える。Gemini 固有の差分= context window 2M / OAuth / trustedFolders.json / Shell cwd reset 仕様 / --approval-mode plan 推奨デフォルト / Ripgrep 警告対応、などに絞れば 100 行未満で済む)


§14 まとめ

  • Gemini CLI 0.42.0 は Claude Code と思想・規約・エコシステムが極めて近い(GEMINI.md / SKILL.md / Hooks / Plan モード / Resume)。
  • MCP は 既に接続済み(obsidian + workflowy)。Stage 3-A は「未整備のものを整える」のではなく「既に動いているものを SSOT 化する」段階。
  • Phase 2 GEMINI.md 起草の主要決定事項は 1 つ:薄いファイル方針か、フルコピー方針か。Chat の指示を待つ。
  • Phase 3 の用途分担マトリクス拡張は 「2M context での Vault 全読」を Gemini の独自強みとして設計する方向が妥当。
  • Phase 1 で Stage 2 §16-3 環境非対称性見落とし(Entry #20)の再発は回避。実機検証ベースで全項目確認できた。

§15 配置情報

  • 本レポートのパス:~/working/_claude_workspace_global/reports/gemini-cli-environment-survey-2026-05-22.md
  • 集中原則準拠(CLAUDE.md §3.1 / kudo-shared-storage-protocol §5.5)
  • 関連 SSOT:~/KUDO-Vault/AI-ACCESS.md(Vault 側の vendor-neutral 設計の正本)

EOF