AIにコードのことを相談していて、「あれ、その情報ちょっと古くない…?」と感じたこと、ありませんか。
新しく出たライブラリのバージョンを聞いたのに、少し前の答えが返ってくる。まだ存在しない前提で話が進む。なんかこれって、めっちゃもったいない気がするんですよね。せっかく賢いのに、見ている世界が「ちょっと前」で止まっている。
今日はその悩みにピンポイントで効く、OpenAIの Codex CLI の --search という機能を、ひとつだけ、とことん丁寧に紹介します。まだCodexを触ったことがない方でも、この記事だけで「最新情報をWebから調べさせる」ところまでたどり着けるように書きました。扱うのは --search ひとつだけ。あれもこれもは詰め込みません。
この記事は、Codexの公式ドキュメントを実際に読んで、コマンド名やモードの挙動を照合したうえで書いています。読んだページは末尾の「参考リンク」にまとめました。
そもそも Codex CLI と --search って何?
まず言葉から、ひとつずつほどいていきます。
- CLI … 「Command Line Interface」の略で、ターミナル(黒い画面に文字を打って操作するアプリ)でコマンドを打って使う方式のことです。マウスでボタンを押す代わりに、文字で指示を出すイメージですね。
- Codex CLI … そのターミナルの中で動く、OpenAIのコーディング用AIエージェントです。あなたのパソコン上でファイルを読んだり、コードを書いたり、コマンドを実行したりしてくれます。
-
フラグ … コマンドの後ろにつける「オプションのスイッチ」のことです。
--searchのように--で始まる文字を足すと、その回の動きを少し変えられます。
つまり --search は、Codexを起動するときに付ける「今回はWebから最新情報を取りに行っていいよ」というスイッチ なんです。ここ、地味だけど大事なので先に言っておきますね。--search は、ターミナルで打つ検索コマンド(grepみたいなもの)ではありません。Codexを立ち上げるときのフラグ です。ここを最初に押さえておくと、後がすっと入ってきます。
実は、最初からWeb検索は動いている
ここでちょっと意外な話を。
「じゃあ --search を付けないとWeb検索は一切できないの?」と思いますよね。正直に言うと、そうではない んです。
公式のConfig basicsによると、Codexはローカルでのチャットで 標準でWeb検索が有効 になっています。ただし既定は「cached(キャッシュ)モード」。これは、OpenAIが管理しているWeb結果のインデックス(あらかじめ取り込んでおいた索引)から答えを引く方式です。ライブでその場のページを取りに行くのではなく、事前に索引化された結果を返す。だから、動いてはいるけれど「最新のいままさに」ではないことがある、というわけです。
Codexの web_search には、次の4つのモードがあります。
| モード | 挙動 | どんな時 |
|---|---|---|
cached(既定) |
OpenAI管理のインデックスから結果を返す | ふだんはこれ。手軽で安全寄り |
indexed |
検索インデックスが必要と判断した時だけ外部アクセスを許可 | ゲートを効かせたい時 |
live |
いまのWebから最新データを取りに行く(--search と同じ) |
最新情報が要る時 |
disabled |
Web検索そのものをオフにする | 一切ネットに出したくない時 |
そして本題の --search は、この live を一時的にオンにするフラグ です。公式にも「live(--search と同じ)」と明記されています。
まとめると、こういう分岐で考えると迷いません。
- ふだん(cached)… だいたいの調べ物はこれで十分。
- 最新が要る一回だけ(
--search= live)… 「昨日リリースされた話」みたいな時に付ける。 - 完全にオフ(disabled)… ネットに出したくない環境の時。
なぜ便利か:古い前提のまま実装が進むのを止められる
AIコーディングでいちばん怖いのは、「間違ったまま、それっぽく進んでしまう」ことだと思うんです。
たとえば、新しめのライブラリの使い方を相談したとします。cachedの索引にまだ十分反映されていないと、AIは少し前のAPIを前提に、堂々と自信満々にコードを書いてくれる。で、動かして初めて「あ、そのメソッドもう無いやつだ…」と気づく。この手戻り、地味に時間を溶かしますよね。
--search(live)を付けておくと、Codexはその回、いまのWebを見に行ってから 答えを組み立てます。つまり「古い前提で走り出す」前に、最新の一次情報で足元を確認できる。ここが --search の本当の価値だと、僕は思っています。
使い方①:インストールとサインイン(最短)
まだCodexを入れていない方向けに、いちばん短い道だけ置いておきます。すでに使っている方は、次の②まで飛ばして大丈夫です。
Mac / Linux の場合(ターミナルに貼り付けて実行):
curl -fsSL https://chatgpt.com/codex/install.sh | sh
Windows の場合(PowerShellに貼り付け):
powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex"
npm や Homebrew が好きな方は、こちらでも入ります:
# npm を使う場合
npm install -g @openai/codex
# Homebrew を使う場合(Mac)
brew install --cask codex
入ったら、まずは起動して、ちゃんと入ったか確認しましょう。
codex --version
バージョン番号が表示されればOKです。(この記事では、ここまでは実際に手元で確認できる範囲として書いています。この先の対話部分は、公式仕様に基づく手順で、筆者環境では検索の実行例までは未実行です。)
初回は、そのまま codex と打つとサインインを求められます。「Sign in with ChatGPT」 を選んで、お使いのChatGPTアカウント(Plus / Pro など)でログインするのが公式のおすすめです。APIキーでの利用もできますが、こちらは追加設定が要るので、まずはChatGPTログインが一番やさしい入り口です。
codex
# → 「Sign in with ChatGPT」を選んでログイン
使い方②:codex --search で最新情報を聞く(10分の最初の成功)
ここが今日の主役、いちばんやってほしい「最初の一歩」です。10分あれば終わります。
やることは、たった3つ。
--searchを付けて起動する- 「最近リリースされた○○の変更点は?」と1つだけ聞く
- やり取りのログ(transcript)で、実際に検索が走ったかを確認する
まず、--search を付けて起動します。
codex --search
起動したら、その入力欄に、最新情報が必要な質問をひとつ投げてみてください。たとえば、こんな感じです。
最近アップデートされた、あるフロントエンドのビルドツールの
最新安定版のバージョンと、主な変更点を3つだけ教えて。
出典のURLも一緒に出してください。
ポイントは 「出典のURLも」と添えること。こうすると、AIがどこを見て答えたのかが分かって、あとで自分でも裏取りできます。
Codexは、検索の動き(どんな検索をしたか)を、他のツール呼び出しと一緒に やり取りのログに残す 仕様になっています。なので、答えが返ってきたら、ログの中に検索が実行された形跡があるかを見てみてください。そこに検索のステップが見えていれば、それがあなたの「最初の成功」です。AIが、いまのWebをちゃんとのぞいてからしゃべってくれた 、という手応えですね。
使い方③:毎回 live にしたい人へ(設定ファイルに1行)
「毎回 --search を付けるの、忘れそう…」という方へ。恒久的に live にする方法も、1行だけ紹介しておきます。
Codexの個人設定は、~/.codex/config.toml というファイルに書きます(~ はあなたのホームフォルダのことです)。ここに次の1行を足すだけ。
web_search = "live"
これで、次からは付けなくても live で動きます。逆に、どうしてもオフにしたい環境なら web_search = "disabled" にします。
ただ、個人的には 「ふだんはcachedのまま、必要な時だけ --search」 で始めるのをおすすめします。理由は次の章で。設定ファイルの深掘りは今日はここまで。主役はあくまで --search ひとつ、に絞っておきます。
つまずきポイント / よくある質問
最初はみんな、ここでちょっと止まります。だいじょうぶ、順番に見ていきましょう。
Q. 検索が走っている気がしない
--search を付けて起動したか、もう一度確認してみてください。フラグは codex --search のように、codex の直後に付けます。あと、そもそも「最新情報が要る質問」でないと、AIが検索を使わない判断をすることもあります。「昨日/今週リリースされた〜」のように、時期を含めて聞くと動きやすいです。
Q. それでも情報が古い
既定のcachedは索引経由なので、出たばかりの話は反映が追いつかないことがあります。その時こそ live(--search)の出番です。live は「いまのWeb」を取りに行きます。
Q. 会社のルールでネットに出したくない
web_search = "disabled" にすれば、Web検索ツール自体をオフにできます。社内限定の情報だけで完結させたい時は、こちらが安心です。
Q. --search は検索コマンド?
いいえ。ターミナルで単独で打つ検索コマンドではなく、Codexを起動するときのフラグ です。codex --search とセットで使います。
ここは気をつけて:Web結果は「信頼しきらない」
最後に、いちばん大事な注意をひとつ。
公式は、はっきりこう言っています。Web検索の結果は、信頼できない入力(untrusted)として扱うこと。
聞き慣れない言葉かもしれませんが、ここでいう危険のひとつが「プロンプトインジェクション」です。ざっくり言うと、AIが読み込んだWebページやドキュメントのなかにAIへの悪意ある指示が仕込まれていて、AIがそれにうっかり従わされてしまう、という攻撃です。
cachedモードは、OpenAIが管理する索引を経由するぶん、このリスクは低め。でも live は「その場のページ」を直接取りに行くので、リスクは相対的に上がります。だからこそ、live で得た内容は鵜呑みにせず、出典URLを自分の目で確かめる。この一手間だけは、習慣にしておくと安心です。
そして反証も正直に置いておきます。Web検索は、いつも必要なわけではありません。
- 答えが確定している小さなタスク(この関数のバグ直して、など)… cachedのままで十分。
- 社内・非公開の情報だけで完結する作業 … むしろ
disabledが安全。
「最新が要るかどうか」で切り替える。それだけで、速さと安全のバランスがぐっと良くなります。
まとめ
今日の話を、3行だけで。
- ふだんは cached で十分。Web検索は最初から動いています。
-
最新が要る一回だけ
codex --search(live) を付ける。まずは「出典URLも」と添えて1問投げてみる。 - live の結果は信頼しきらない 。出典を自分で確かめる癖をつける。
まずは今日、codex --search で1問だけ聞いてみてください。AIが「いまの世界」を見てからしゃべってくれる感覚、たぶん一度味わうと戻れなくなりますよ。
参考リンク(この記事で実際に読んだ公式ページ)
- Codex CLI 概要: https://developers.openai.com/codex/cli
- Config basics(
web_searchの4モード・--search= live の記載): https://developers.openai.com/codex/local-config - Web search(結果はuntrustedとして扱う旨): https://developers.openai.com/codex/web-search
- インストール / サインイン手順(公式リポジトリREADME): https://github.com/openai/codex
生成AI活用エンジニア&3児のパパ。AI×開発の実践知を毎日発信しています → X(旧Twitter)もぜひのぞいてみてください。