Gemini CLI 環境調査レポート(Stage 3-A Phase 1)¶
TL;DR — 重要発見 5 件¶
- Gemini CLI 0.42.0 が
/opt/homebrew/bin/geminiに Homebrew インストール済み。OAuth 認証完了済(kudotakuma421@gmail.com)。 - MCP プロトコル完全対応。
obsidian(HTTP 27123) とworkflowy(stdio) は既に接続済み・動作確認済み。Gemini CLI 側設定ファイルは~/.gemini/settings.json(~/.config/gemini/ではない)。 GEMINI.mdは CLAUDE.md と完全に同じ階層メモリ規約。DEFAULT_CONTEXT_FILENAME = "GEMINI.md"がバンドル内で確認できた。/initでひな型生成、/memory listで読み込みパス確認、/memory reloadでリロード。- Claude Code との互換性が公式に意図されている:
gemini hooks migrateサブコマンドが「Migrate hooks from Claude Code to Gemini CLI」として存在。Skills / Extensions / Hooks エコシステムが Claude Code と並走する設計。 - Vault 実機テスト成功:
cd ~/KUDO-Vault && gemini --approval-mode plan -p "..."でCLAUDE.mdを読み・日本語で要約を出力。MCP 経由ではなく Gemini CLI 自体のローカル file read が利いた。Read-onlyplanモードで安全。
§1 インストール状況¶
| 項目 | 値 |
|---|---|
| バイナリパス | /opt/homebrew/bin/gemini |
| インストール経路 | Homebrew(@google/gemini-cli npm パッケージを Homebrew 経由で導入) |
| バージョン | 0.42.0 |
| 実体ディレクトリ | /opt/homebrew/lib/node_modules/@google/gemini-cli/ |
verbatim:
§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:
→ OAuth 認証は完了済み。oauth_creds.json は 600 パーミッションで保護。
~/.gemini/history/ 配下:kudo-vault / kudotakuma / working の各プロジェクト用履歴ディレクトリあり。
§3.3 機密扱い¶
oauth_creds.json:OAuth refresh token を含む。600 パーミッションで保護されているが、レポートには verbatim 記載しない。obsidianMCP の 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¶
→ Phase 1 時点では未導入。extensions new <path> [template] でひな型生成可能。
Stage 3-A スコープ外。
§7.3 Hooks(重要:Claude Code 互換)¶
→ 公式に「Claude Code の hooks を移行する」サブコマンドが用意されている。
Stage 3-B 以降で ~/.claude/settings.json の hooks を移行する場合の選択肢。
ただし「双方向に同期」する仕組みではない点に注意(migrate=片方向)。
§8 Vault 実機テスト(成功)¶
§8.1 実行コマンド¶
§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.jsonuser 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 の発見¶
- MCP 設定の SSOT 化:
~/.gemini/settings.jsonの mcpServers が Claude Code (~/.claude.jsonuser scope) と別ファイルで管理されている点を明示。両方をメンテする必要あり。 - trust モデルの違い:Gemini CLI の
trustedFolders.jsonと--skip-trustの挙動を CLAUDE.md には無い独自項目として記載。 - headless で OAuth 失敗の可能性:AI-ACCESS.md にも「初回 headless 実行は Google 認証エラーで失敗 → 対話起動
gemini --skip-trustで認証完了後は headless でも動作する想定」と記載済。GEMINI.md にも転記推奨。 Ripgrep is not available警告:性能の問題。Stage 3-B 以降でbrew install ripgrepを推奨設定として記載。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-3 を v1.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