Open3

Claude Code と Gemini CLI の設定の共通部分と相違部分

hatahata

Custom Slash Commands

File Directory

  • Claude: ~/.claude/commands/
  • Gemini: ~/.gemini/commands/

File Format

  • Claude: *.md
  • Gemini: *.toml

Fields

Claude Code Gemini CLI Notes
Markdown content prompt Main command content
Frontmatter description description Command description
$ARGUMENTS {{args}} Argument placeholder
!command !{command} Shell command syntax
allowed-tools - List of tools the command can use
argument-hint - The arguments expected for the slash command. Example: argument-hint: add [tagId]
model - opus, sonnet, haiku
hatahata

Settings files

階層

両ツールとも階層的な設定管理システムを採用し、複数レベルでの設定を可能にしている。

相違点

項目 Claude Code Gemini CLI
ユーザー設定 ~/.claude/settings.json ~/.gemini/settings.json
プロジェクト設定 .claude/settings.json (共有)
.claude/settings.local.json (個人用)
.gemini/settings.json
エンタープライズ設定 対応あり
- macOS: /Library/Application Support/ClaudeCode/managed-settings.json
- Linux: /etc/claude-code/managed-settings.json
- Windows: C:\ProgramData\ClaudeCode\managed-settings.json
記載なし
優先順位 1. エンタープライズポリシー
2. コマンドライン引数
3. ローカルプロジェクト設定
4. 共有プロジェクト設定
5. ユーザー設定
1. コマンドライン引数
2. 環境変数
3. プロジェクト設定
4. ユーザー設定
5. デフォルト値

主要な設定項目

共通機能

機能カテゴリ Claude Code Gemini CLI
モデル設定 model (例: "claude-3-5-sonnet-20241022") model (環境変数 GEMINI_MODEL でも設定可)
環境変数 env オブジェクト .env ファイルと連携
MCP サーバー enableAllProjectMcpServers
enabledMcpjsonServers
disabledMcpjsonServers
mcpServers オブジェクト

Claude Code 固有の設定

設定項目 説明
apiKeyHelper APIキー生成用カスタムスクリプト /bin/generate_temp_api_key.sh
cleanupPeriodDays チャット履歴の保持期間 20
includeCoAuthoredBy GitコミットにClaude署名を含むか false
permissions ツール使用権限の詳細設定 -
hooks ツール実行前後のカスタムコマンド {"PreToolUse": {"Bash": "echo 'Running command...'"}}
forceLoginMethod ログイン方法の制限 "claudeai" または "console"
awsAuthRefresh AWS認証の更新コマンド "aws sso login --profile myprofile"

Gemini CLI 固有の設定

設定項目 説明
theme カラーテーマ "dark", "light" など
autoAccept 安全な読み取り専用ツールの自動承認 false
sandbox ツール実行の分離環境 "docker", "podman"
checkpointing ファイル変更の復元機能 {"enabled": true}
usageStatisticsEnabled 使用統計の収集 true
contextFileName コンテキストファイル名のカスタマイズ "GEMINI.md"
verbose 詳細出力の有効化 false
preferredNotifChannel 通知チャンネルの設定 "iterm2"

3. 権限管理とセキュリティ

Claude Code

  • 詳細な権限制御: allowdeny 配列で細かいツール使用制限
  • ワーキングディレクトリ制御: additionalDirectories で追加アクセス許可
  • 権限モード: defaultModedisableBypassPermissionsMode
  • : ["Bash(git diff:*)", "WebFetch"]

Gemini CLI

  • ツール制御: coreToolsexcludeTools でツールの有効/無効化
  • サンドボックス: Dockerコンテナでの分離実行
  • MCPサーバーの信頼設定: trust オプションで確認ダイアログのバイパス
  • : "excludeTools": ["run_shell_command(rm)"]

4. サブエージェント/拡張機能

Claude Code

  • サブエージェント: Markdownファイルとして定義
    • ユーザー: ~/.claude/agents/
    • プロジェクト: .claude/agents/
  • YAMLフロントマターでカスタムプロンプトとツール権限を定義

Gemini CLI

  • 拡張機能: extensions ディレクトリで管理
    • プロジェクト: .gemini/extensions/
    • ユーザー: ~/.gemini/extensions/
  • gemini-extension.json でMCPサーバー、ツール、コンテキストファイルを設定

5. 環境変数との連携

共通点

  • 両ツールとも環境変数によるオーバーライドが可能
  • APIキーの環境変数設定をサポート

相違点

Claude Code Gemini CLI
settings.json 内で環境変数を定義可能 (env キー) .env ファイルを別途使用
多数の専用環境変数 (CLAUDE_CODE_* プレフィックス) GEMINI_* および GOOGLE_* プレフィックスの環境変数

6. コンテキスト管理

Claude Code

  • 設定ファイル内では特に言及なし
  • 主にサブエージェント機能で対応

Gemini CLI

  • GEMINI.md ファイルによる階層的コンテキスト管理
  • contextFileName 設定でファイル名をカスタマイズ可能
  • /memory コマンドでコンテキストの管理

7. 設定管理コマンド

Claude Code

claude config list          # 設定一覧
claude config get <key>     # 設定確認
claude config set <key> <value>  # 設定変更
claude config add <key> <value>  # リストに追加
claude config remove <key> <value>  # リストから削除

Gemini CLI

  • コマンドラインインターフェースからの設定変更は主に設定ファイルの直接編集
  • /mcp refresh でMCPサーバー設定の再読み込み
  • /memory refresh でコンテキストファイルの再読み込み
hatahata

特定のファイルへのアクセスの禁止や特定のファイルの走査の除外。

目的

おそらく2つにわけて考えられる。

1つはシークレット情報などを収集やインデックスされたくないという目的。

もう1つは node_modules のような開発対象とすべきではない大量のファイルを読んでトークンやコンテキストを無駄に消費させたくないというもの、

Gemini CLI

.geminiignore ファイルという機構がサポートされている。

https://github.com/google-gemini/gemini-cli/blob/main/docs/gemini-ignore.md

Claude Code

.claudeignore のような仕組みはいまのところない。

何度も Issue に上がっているが、 Close されている。
https://github.com/anthropics/claude-code/issues/79

https://github.com/anthropics/claude-code/issues/579

https://github.com/anthropics/claude-code/issues/4160

settings.json の Deny の Read() を使うことで対応してと #79 の Issue には書かれている。

.claudeignore という機構は 2025/08/07 時点では存在しない。

AI 生成と思われるいくつかのブログ記事ではハルシネーションしたまま公開しているように見えるので注意。 note が多い。 Zenn で同様の話に言及している記事は、今後に期待としてちゃんと書かれていた。