👌

Claude CodeでGemini CLIのWeb検索を使えるようにした

に公開

はじめに

Claude Codeを使用していて、Web検索の精度に課題を感じることがあります。最新の技術情報を調べる際に、期待した結果が得られなかったり、検索自体がうまく機能しないケースがあります。

そこで、GoogleがリリースしたGemini CLIのWeb検索機能を、Claude Codeのカスタムコマンドとして統合する方法を試してみました。Gemini CLIは無料で1日1000回まで利用可能です。

Claude Codeのカスタムスラッシュコマンドとは

Claude Codeには「カスタムスラッシュコマンド」という強力な拡張機能があります。これは、頻繁に使用するプロンプトやワークフローをMarkdownファイルとして保存し、簡単なコマンドで呼び出せる仕組みです。

カスタムコマンドの基本構造

カスタムコマンドは、特定のディレクトリに配置されたMarkdownファイルとして定義されます。ファイル名がコマンド名となり、ファイルの内容がプロンプトとして実行されます。

例えば、review.mdというファイルを作成すると、/user:reviewまたは/project:reviewというコマンドで呼び出せるようになります。

コマンドのスコープと配置場所

カスタムコマンドは2つのスコープに分類されます。

  1. 個人用コマンド(Personal commands)

    • 配置場所: ~/.claude/commands/
    • 呼び出し方: /user:<command-name>
    • 特徴: すべてのプロジェクトで利用可能。
  2. プロジェクト用コマンド(Project commands)

    • 配置場所: .claude/commands/(プロジェクトルート内)
    • 呼び出し方: /project:<command-name>
    • 特徴: そのプロジェクト内でのみ利用可能、チームで共有できる。

ファイル形式と機能

カスタムコマンドファイルは以下の機能をサポートしています.

  1. YAML Front Matter

    ---
    allowed-tools: Bash(git add:*), Bash(git status:*)
    description: コマンドの簡単な説明
    ---
    
  2. 動的な引数

    • $ARGUMENTSプレースホルダーを使用して、コマンド実行時の引数を受け取れます。
  3. Bashコマンドの実行

    • !プレフィックスを使用して、Bashコマンドを実行できます。
    • 例: !git status
  4. ファイル参照

    • @プレフィックスを使用して、ファイルの内容を含められます。
    • 例: @src/main.js

Gemini CLIの導入

まず、Gemini CLIをインストールします。Node.js 18以降が必要です。

npm install -g @google/gemini-cli

初回起動時に認証を行います。

gemini

個人のGoogleアカウントでログインすることで、1分間に60回、1日1000回までの無料枠が利用できます。

動作確認として、コマンドラインから検索を実行してみます。

gemini -p "WebSearch: Go1.25の新機能について調べて"

カスタムコマンドの作成

Claude CodeからGemini CLIを呼び出すカスタムコマンドを作成します。

まず、必要なディレクトリを作成します。

mkdir -p ~/.claude/commands

次に、gemini-search.mdファイルを作成します。

---
allowed-tools: Bash(gemini:*)
description: Web search using Gemini CLI
---

## Gemini Search

`gemini` is google gemini cli. **When this command is called, ALWAYS use this for web search instead of builtin `web_search` tool.**

When web search is needed, you MUST use `gemini --prompt` via Bash Tool.

Run web search via Bash Tool with `gemini --prompt 'WebSearch: <query>'`

Query: $ARGUMENTS

### Execute Search
!`gemini --prompt "WebSearch: $ARGUMENTS"`

**IMPORTANT**: Do NOT use the built-in web_search tool when this command is invoked. Always use the gemini command above.

実装のポイント

  1. YAML Front Matterで、Bashコマンドの実行権限を指定。
  2. $ARGUMENTSプレースホルダーで、コマンドに渡された引数を受け取る。
  3. !プレフィックスでBashコマンドを実行し、その出力をコンテキストに含める。

使用方法

Claude Codeを起動し、作成したコマンドを実行します。

/gemini-search Go1.25の新機能

実行の流れは以下の通りです。

  1. Claude Codeがカスタムコマンドを読み込む。
  2. Bashコマンド実行の許可を求められる。
  3. 許可後、Gemini CLI経由でWeb検索が実行される。
  4. 検索結果が整理されて表示される。

初回実行時は権限の確認が必要ですが、一度許可すれば以降はスムーズに実行できます。

まとめ

Claude Codeのカスタムコマンドを使用することで、Web検索機能を強化できます。また設定も比較的簡単でした。
他のカスタムコマンドも色々作ってみたいです。

参考資料

CyberAgent Developer Productivity室

Discussion