新Codex CLIの使い方

GPT-5の公開(2025年8月7日)に合わせ、Codex CLIがChatGPTのPlusやProサブスクリプションに追加料金なしで利用可能になりました。これによりAPI課金を使わずに導入できるようになり、新規ユーザーが増えています。

GitHub - openai/codex: Lightweight coding agent that runs in your terminal
Lightweight coding agent that runs in your terminal - openai/codex

Codex CLIの最初のバージョンは2025年4月に公開されましが、リサーチプレビュー段階のプロジェクトなので頻繁に変更があります。リリース1ヶ月後にはTypeScriptからRustにスクラッチで書き直され。しばらく2つのバージョンの開発が並行していました。現在はRust版がデフォルトになっています。

以下のような方におすすめです

  • リサーチプレビューに参加したい:このツールで開発がどの程度できそうか評価してフィードバックする
  • エージェント開発に関心がある:ソースコードがすべて公開されているので自分のプロジェクトの参考になります

以下のような方の期待には添えないでしょう

  • Claude Codeより良いエージェントを使いたい
  • なるべく安くバイブコーディングをしたい

サブスクリプションの制限

Codex CLIの利用上限は「5時間ごとのリセット」と言われていますが、具体的なトークン量やリクエスト回数はまだ調整中です。CodexチームのプロダクトリードAlexander Embiricosによると目安としてPlusユーザーはパートタイムのProユーザーはフルタイムの仕事がカバーできるぐらいを目指しているようです。

インストール

現在、Codex をインストールする最も簡単な方法はnpm を介して行うことです。macOSではHomeBrewにも公開されています。

npm install -g @openai/codex
# または
brew install codex

❯ codex --version
codex-cli 0.20.0

また、GitHub Releases からプラットフォーム対応したバイナリを直接ダウンロードすることも可能です。WindowsでもWSL2なしで利用できることは確認できました(サンドボックスなど制約上、動作しない機能はあります)。

Releases · openai/codex
Lightweight coding agent that runs in your terminal - openai/codex

起動・終了

ターミナルでcodexコマンドを実行すると対話型のセッションがはじまります。終了は「Ctrlキー+C」か/quit /q と送信します。Claude Codeの感覚で/exitと打つと普通に返事が返ってきます。

ログイン

codex loginもしくは最初に対話セッションをはじめると「Sign in with ChatGPT」が表示され、エンターを押すとブラウザで認証画面が自動で開きます。

>_ Welcome to Codex, OpenAI's command-line coding agent

> Sign in with ChatGPT to use Codex as part of your paid plan
  or connect an API key for usage-based billing

> 1. Sign in with ChatGPT
     Usage included with Plus, Pro, and Team plans
  2. Provide your own API key
     Pay for what you use

  Press Enter to continue

SSHやWSL2環境の場合はここでURLが表示されるのでコピペして手動でページを開きます。また著者が確認したところpython3コマンドがシステムにないと内部サーバーが機能しなかったです。python.exeではなくpython3.exeがハードコードされているのがポイントです。そのため以下のようにシンボリックリンクを貼って解決しました。

New-Item -ItemType SymbolicLink -Path "C:\Users\my-user\AppData\Local\Programs\Python\Python39\python3.exe" -Target "C:\Users\my-user\AppData\Local\Programs\Python\Python39\python.exe"

日本語で話してもらう

 ~/.codex/AGENTS.mdへプロンプトを追記しましょう。これは会話のたびに内部で送信される追加のプロンプトになります。

echo 'Please provide all answers in Japanese' >> ~/.codex/AGENTS.md

❯ codex exec hello
[2025-08-10T04:27:24] OpenAI Codex v0.20.0 (research preview)
--------
workdir: /...
model: gpt-5
provider: openai
approval: never
sandbox: read-only
reasoning effort: medium
reasoning summaries: auto
--------
[2025-08-10T04:27:24] User instructions:
hello
[2025-08-10T04:27:27] codex

こんにちは!今日は何をお手伝いできますか?
[2025-08-10T04:27:27] tokens used: 6014

codex execは非インタラクティブに1ターンのコマンドとして呼び出せます。Claude Codeでいうclaude -p になります。

基本的な操作方法

基本的な操作方法については、ここで1から説明しなくとも、森田さんによる良い記事がありました。最初にこちらをお読みください。

Claude CodeユーザーがCodex CLIを使ってみて、併用がいいと思った話

対応表

Claude Codeユーザー向けにチャットコマンドとコマンドライン引数の対応表をつくりました。

基本機能

Claude Code Codex CLI
Claude Code Action openai/codex-action
slash command 未実装
サブエージェント 未実装
IDEプラグイン なし
Task Tool plan tool
Plainモード なし
ターミナル連携 なし
MCP config.toml
Hooks Notify
WebSearch なし

チャットコマンド

Claude Code Codex CLI
/clear /new
/cost なし
/status /status
/add-dir —cd DIR (一部)
/mcp config.toml
/compact /compact
/model —model
/resume 開発中

コマンドライン引数

Claude Code Codex CLI
-p exec
--output-format —json (一部)
--dangerously-skip-permissions --dangerously-bypass-approvals-and-sandbox
--allowedTools なし
--permission-mode --ask-for-approval
-c, -r 開発中
—model —model
--settings -c で設定ごと

以降は少し発展的なTIPSを取り扱います。

/diff

/diff はgit diffをインラインで見るだけのコマンドです。変更提案をプレビューしてそれを許可するのか判断する、というフローはまだできません。

MCP

Codex CLIではMCPサーバーをconfig.toml内に記述します。Braveを追加してみましょう。

~/.codex/config.toml
[mcp_servers.brave-search]
command = "docker"
args = ["run", "-i", "--rm", "-e", "BRAVE_API_KEY", "mcp/brave-search"]
env = { "BRAVE_API_KEY" = "XXX" }

BRAVE_API_KEYは残念ながらハードコード必須です。

user
Codex CLIの最新アップデートを検索してください

codex
最新情報を確認するため、Web検索で公式リリースや変更履歴を探します。

tool running...
brave-search.brave_web_search({"query":"Codex CLI latest update GitHub releases changelog","count":10,"offset":0})

tool failed, duration: 1.43s
brave-search.brave_web_search({"query":"Codex CLI latest update GitHub releases changelog","count":10,"offset":0})

Title: GitHub - openai/codex: Lightweight coding agent that runs in your terminalDescription: <strong>Codex</strong> <strong>CLI</strong> is a coding agent from OpenAI that runs locally on your computer. If you are looking for the cl...

使ってくれました。一方、Serena MCPはテストしたところ内部エラーが大量にでていました。

認証の優先順

codex loginをすると~/.codex/auth.jsonにアクセストークンが保存されます。またAPIキーを設定した場合もここに記録されます。

❯ cat ~/.codex/auth.json
{
  "OPENAI_API_KEY": null,
  "tokens": {
    "id_token": "...",
    "refresh_token": "...",
    "account_id": ".."
  },
  "last_refresh": "2025-08-10T04:08:08.486459Z"
}

シェル上でOPENAI_API_KEYを上書きしてcodexを実行しても、auth.jsonが存在すると優先されます。フロー図にすると以下になります。

OPENAI_API_KEYという環境変数はいろいろなプロジェクトで使われがちなので意図しない課金が発生しないよう注意が必要です。

# 以下で応答が返ってくるならChatGPTのトークンが使われている
unset OPENAI_API_KEY
rg OPENAI_API_KEY ~/.codex/auth.json
  2:  "OPENAI_API_KEY": null,
codex exec hi

# 必ずAPIキーを使いたいならログアウトしておく
codex logout
OPENAI_API_KEY=... codex exec ...

モデルの切り替えについて

ChatGPTのトークンで利用した時にはgpt-5のモデル以外を指定するとエラーが発生します。

❯ codex exec -m gpt-5-mini hello

[2025-08-10T05:38:49] User instructions:
hello
[2025-08-10T05:38:50] stream error: unexpected status 400 Bad Request: {"detail":"Unsupported model"}; retrying 1/5 in 189ms…

これはAPIキーに置き換えることでしか解決しません。

codex logout
export OPENAI_API_KEY=sk-proj-...
codex exec -m gpt-5-mini hello

[2025-08-10T05:48:58] OpenAI Codex v0.20.0 (research preview)
--------
workdir: ...
model: gpt-5-mini
provider: openai
approval: never
sandbox: read-only
reasoning effort: medium
reasoning summaries: auto
--------
[2025-08-10T05:48:58] User instructions:
hello
[2025-08-10T05:49:05] codex

こんにちは!何をお手伝いしましょうか?リポジトリの調査、コード修正、テスト実行、設計相談など、やりたいことを教えてください。
[2025-08-10T05:49:05] tokens used: 542

thinkingを非表示にする

codexデフォルトのgpt-5は返答の前に内部で思考した内容を出力します。これがthinkingとして表示されます。ここはモデルのネイティブ言語の英語のままになります。

ライトユーザーの中にはこれを抑制したい方もいるかもしれません。その場合、この思考プロセスそのものをオフにすることは可能です(デフォルトはmediumです)。

# ~/.codex/config.toml
model_reasoning_effort = "none"

noneの場合、応答速度はアップします。日常的な会話用途(CLIで?)ならこれでもよいかもしれませんが、コーディングにおいてはこの機能を"high"にして強めることで精度が上がることが知られています。そのぶん時間とトークン消費も嵩みます。 Claude Codeでいう”ultrathink”などのディレクティブで内部thinnking budgetを操作しているのを想像すると理解しやすいかと思います。

一応、Codex CLI内の設定には以下の2つの項目があります。これを設定することでmodel_reasoning_effortは有効にしたまま表示だけ制御できそうですが──

# ~/.codex/config.toml
model_reasoning_effort = "high"
hide_agent_reasoning = true
show_raw_agent_reasoning = false

しかし、実際に試してみたところこの設定後もthinkingが出力されていました。思考が漏れ出てやがる・・!

設定項目の上書き

すべてのconfig.tomの設定値はコマンドで-c key=valueをつけることで実行時に上書きできます。前述のmodel_reasoning_effortも以下のように指定できます。

codex exec -c model_reasoning_effort=none hello

Notify

Codex CLI の「Notify」機能はターンを完了するなどの特定のイベントが発生した際に、ユーザーに通知を送信できるようにするためのものです。Claude CodeでいうHooksです。

macOSで完了のメッセージを抽出してデスクトップに通知するスクリプトが以下になります。

# ~/.codex/config.toml
notify = ["bash", "/Users/my-user/.codex/notify_macos.sh"]
❯ cat ~/.codex/notify_macos.sh
#!/bin/bash
# ~/.codex/notify_macos.sh

# JSONから最後のエージェント発言を抽出
LAST_MESSAGE=$(echo "$1" | jq -r '.["last-assistant-message"] // "Codex task completed"')

# osascriptで通知表示
osascript -e "display notification \"$LAST_MESSAGE\" with title \"Codex\""

システムプロンプトを全て上書き

Codex CLIのシステムプロンプトはcodex-rs/core/prompt.mdにありますが、実行時にexperimental_instructions_fileで別のファイルに差し替えることができます。これはおそらくシステムプロンプトのA/Bテストなど開発用途で、Claude Codeの--append-system-prompt のようなカスタマイズ機能ではありません。

以下のようにしてClaude Codeになりきってもらいます。

wget https://gist.githubusercontent.com/oneryalcin/0efa1730b680f57e4eb97a40666cd54f/raw/df6eb6069cd2bf3fea055693807000fca62732c1/claude_code_system_prompt.md
codex exec -c experimental_instructions_file=claude_code_system_prompt.md 'who are you'

[2025-08-10T06:35:33] OpenAI Codex v0.20.0 (research preview)
--------
workdir: ...
model: gpt-5
provider: openai
approval: never
sandbox: read-only
reasoning effort: none
reasoning summaries: auto
--------
[2025-08-10T06:35:33] User instructions:
who are you
[2025-08-10T06:35:38] codex

私はAnthropicが提供する「Claude Code」、CLI経由で使えるAIコーディングアシスタントです。Rustワークスペースの開発・テスト・ドキュメント作成・コードレビュー提案などを日本語で支援します。現在の環境ではネットワークは制限され、ファイル操作は読み取り専用です。何をお手伝いしましょうか?
[2025-08-10T06:35:39] tokens used: 1300

会話の復元(開発中)

experimental_resumeでログファイルを指定することセッションの続きから開始できます。

 codex -c experimental_resume=/Users/my-user/.codex/sessions/2025/08/09/rollout-2025-08-09T21-43-23-ce6652c0-2b05-43e5-9161-981c8751d908.jsonl

旧TypeScriptバージョンではhistory一覧から選択という機能だったので、いずれそうなるのかと思います。

ログを見る

codex自体のログは以下にあります

tail -F ~/.codex/log/codex-tui.log

API利用時は以下のページでリクエスト内容を確認できます

https://platform.openai.com/logs

更新履歴

  • Sun Aug 10: 対応表の修正(imakadoさん)
  • /diff, MPCを追加

Subscribe to laiso

Sign up now to get access to the library of members-only issues.
Jamie Larson
Subscribe