nikkie-ftnextの日記

イベントレポートや読書メモを発信

Codex CLIの@(/mention)、Gemini CLIの@

はじめに

七尾百合子さん、お誕生日 253日目 おめでとうございます! nikkieです。

Codex CLI とコードリーディングしての気づきの紹介です。

目次

まとめ:それぞれ@の効果が違う

共通点は、ファイルパスの入力ヒントです。

Codex CLI

Gemini CLI

違うのは、@が残るかどうかです

  • Codex CLI: @が残らない
    • あくまでファイルパスの入力補助
    • コンテキストにファイルの内容を含めていない
    • GPT がそのファイルを読むかを決める
  • Gemini CLI: @が残る
    • コンテキストにファイルの内容が展開されて Gemini に渡る

Codex CLI@(/mention)

Slash command /mentionは、@に変わるだけです。
https://developers.openai.com/codex/guides/slash-commands#highlight-files-with-mention

テストの様子がこちら
https://github.com/openai/codex/blob/rust-v0.63.0/codex-rs/tui/src/bottom_pane/chat_composer.rs#L2486-L2519
/mentionがクリアされ、@に変わる検証とのことです(gpt-5.1-codex 解説)

@でファイルパスのヒントが表示されるロジックは、今回はどちらも見ていません)

Gemini CLI@

テレメトリを見ていて1気づいたのですが、@で指定されたファイルの内容が含まれます

テスト https://github.com/google-gemini/gemini-cli/blob/v0.17.1/packages/cli/src/ui/hooks/atCommandProcessor.test.ts#L141-L176
@file_pathのように渡された時、ファイルの内容が展開されます。

{ text: `@${relativePath}` },
{ text: '\n--- Content from referenced files ---' },
{ text: `\nContent from @${relativePath}:\n` },
{ text: fileContent },
{ text: '\n--- End of content ---' },

実装箇所はこちら
https://github.com/google-gemini/gemini-cli/blob/v0.17.1/packages/cli/src/ui/hooks/atCommandProcessor.ts#L443-L483
readManyFilesToolで読んでいるみたいです

追い切れてないですが、@ディレクトリのパスを指定しても動くようです

感想

2つのコーディングエージェント、@のヒントで指定したファイルパスの扱いが異なっていて興味深いです。

Codex CLI の方が賢い印象です。
調査のやり方を知っている
知りたいことに対して、細い糸を通して調査を進めていく

Gemini CLI はガバっとコンテキストに入れて、だいたい合ってる出力をする感じですね。
Codex CLI と同じやり方はできないのでは

私の感覚と近いつぶやきもありました

終わりに

便利だからとコーディングエージェントに@でファイルパスを渡していますが、テレメトリやソースコードリーディングから扱いが異なることを知りました。
Codex CLI で Codex CLI の Rust 実装を読んだのですが、gpt-5.1-codex は知れば知るほど超優秀なエンジニアという印象です(シェル1つでコードベースに向かい、私の疑問をなんでも解決してくれるので)
Claude Code は実装が見えないですが、果たしてどちらなのでしょうね(VS Code 拡張で使うと Gemini CLI 式の印象?)


本記事は、以下の発表準備の中で生まれたものです。
11/26(水)お昼にオンライン開催!

lancersagent.connpass.com


  1. 全部知りたいですから