Codex CLIがPlusプランを契約しているユーザーであれば月額課金で使えるようになりました。
Claude Codeがデファクトスタンダードになっている現状にOpenAIが挑戦している格好でしょうか。
そんなCodexを使ってみたいと思っている方向けの日本語資料があまり揃っていなかったので、自分用メモをまとめてみました。
OpenAI CodeX CLIは、OpenAIが公開したオープンソースの開発支援CLIツールです。
Claude CodeのようにCLI上でAIに指示し、コードの生成・編集やコマンド実行などを行ってくれます。
目次
- 初期セットアップ手順(インストールと認証)
- プロジェクトにコンテキストを与える方法(ClaudeのCLAUDE.md相当)
- よく使うショートカットコマンド
- グローバル設定の方法(設定ファイル・環境変数)
- プロジェクトごとの設定方法
- [Claude Codeとの比較](#Claude Codeとの比較)
初期セットアップ手順
Codex CLIを使い始めるには、Node.js環境(v22以降)の用意と、OpenAI APIもしくはChatGPTアカウントの認証が必要です。以下の手順でセットアップしましょう。
1. Codex CLIのインストール
npmまたはHomebrewでグローバルインストールします。
npm install -g @openai/codex
codex --version
成功すれば、コマンドcodex
が使用可能になります。
2. OpenAIへの認証
Codex CLIはOpenAIのAPIまたはChatGPTアカウントを通じてモデルにアクセスします。認証方法は2通りあります。
(A) OpenAI APIキーを使用
OpenAIのユーザページからAPIキーを発行し、環境変数に設定します。
export OPENAI_API_KEY="sk-..."
この方法では利用量に応じて課金されます。複数プロジェクトで使う場合は、シェルの設定ファイル(例: ~/.bashrc
や~/.zshrc
)に上記のexport行を追記すると便利です。
(B) ChatGPTプランでログイン(Plusプラン以上)
ChatGPT Plus/Pro/Teamアカウントを持っている場合、codex login
コマンドでブラウザ認証を行い、既存のChatGPT契約内で利用できます。初回codex実行時に対話的にサインインを選択することも可能です。
Plusプランなら追加料金なしでGPT-5を使えます。
3. Codex CLIの起動
任意のプロジェクトフォルダでcodex
コマンドを実行します。初回起動時はモデルやSandbox設定に関する案内が表示されます。Git管理されたフォルダで起動すると、デフォルトでは後述の「提案モード(読み書き)」で開始します。
初回起動時、ターミナル上にCodex CLIのスプラッシュ画面が表示されます。プロンプト欄に自然文で指示を入力すれば、対話がスタートします。
例えば以下のように入力してみましょう。
Codexは現在のプロジェクト内のファイルを解析し、Codex自体にコンテキストを渡すための説明書を生成してくれます(このあたりはClaude Codeと同じですね)。
全部英語で生成されるので、必要に応じて日本語で書き換えてもらいましょう。
以上でセットアップ完了です。インストールから対話開始まで数分程度で準備できます。今後は都度codex
コマンドを実行するだけで開発エージェントと対話しながら開発できます。
プロジェクトにコンテキストを与える方法(ClaudeのCLAUDE.mdに相当)
Claude Codeではプロジェクト固有の情報を伝える手段としてCLAUDE.md
ファイルが用意されていました。同様に、Codex CLIでもプロジェクトやユーザー固有の**コンテキスト(事前知識やルール)**を与えることができます。ただしファイル名や仕組みが若干異なります。
AGENTS.mdファイルによるコンテキストの追加
Codex CLIでは、AGENTS.mdという名前のMarkdownファイルにプロジェクトの情報や指示を書いておくと、対話のたびに自動でその内容をプロンプトに取り込みます。Claude Codeをご利用中の方にはお馴染みのCLAUDE.mdに相当するファイルで、開発者からAIへの「メモ」や「ガイドライン」を共有する仕組みです。
基本的に内容はそこまで変わらないので、最初はCLAUDE.mdをそのままコピーして名前を変えるだけの運用でも十分に使えるかと思います。
AGENTS.mdが置ける場所と適用スコープ
- グローバルに適用したい場合:
~/.codex/AGENTS.md
- グローバル(全プロジェクト共通)で適用したい指示。ユーザー個人の全セッションに毎回読み込まれます。
- プロジェクト内に絞りたい場合: リポジトリのルートにある
AGENTS.md
- プロジェクト全体に関するノート。チームで共有したい開発ルールやコーディング規約はこちらに記述し、リポジトリに含めて管理します。
- 一部の領域にのみ絞りたい場合: (作業サブディレクトリ)内の
AGENTS.md
- 特定のモジュール/サブフォルダ固有の指示。現在編集している部分にだけ適用したい詳細な注意事項があれば、該当フォルダに設置します。私は
Codexは上記のように複数のAGENTS.mdを階層的に検出し、グローバル → リポジトリルート → カレントディレクトリの順にマージして利用します。
下位フォルダの指示ほど優先され、重複や競合があればより局所的なAGENTS.mdが上書きする仕組みです。ClaudeのCLAUDE.mdとほぼ同等の概念ですが、Codexではファイル名が異なる点に注意してください。
ⓘ 補足: 一部の古いドキュメントではCodexのコンテキストファイル名がCODEX.md
やinstructions.md
と記載されていましたが、現在の最新版ではAGENTS.mdに統一されています。古い名称のファイルがある場合でも、新版CLIはAGENTS.mdを優先的に読み込みます。
Claude CodeのCLAUDE.mdとの違い
ClaudeではCLAUDE.mdファイル名でルートや親ディレクトリに配置するルールでした。Codexでは上記の通りAGENTS.mdという名称かつ複数階層対応である点が異なります。またClaude Codeでは#キーを押して対話から直接CLAUDE.mdに追記できる機能がありましたが、Codex CLIでは現状そのような直接編集機能はありません。必要に応じてエディタでAGENTS.mdを開き、マニュアルで更新してください(将来的に類似機能が追加される可能性はあります)。
ヒント: AGENTS.mdに書いた内容が反映されているか確認するには、AIへのプロンプトで「どんなプロジェクトか知っている?」などと聞いてみるとよいでしょう。期待する知識を述べられれば成功です。不具合がある場合はファイル名の綴り(AGENTS.mdが正しい)や配置場所、CLI設定で--no-project-doc
オプションを使っていないか等を確認してください。
よく使うショートカットコマンド
Codex CLIはチャットベースのインターフェースですが、対話を制御したり情報を得るためのスラッシュコマンドが用意されています。Claude Codeにあった便利コマンド(例: /explain
, /edit
など)に相当するものもあるので、主要なものを押さえておきましょう。
インタラクティブモードのスラッシュコマンド一覧
/init
– 先述の通り、現在のプロジェクトに対するAGENTS.mdテンプレートを生成します。まだコンテキストファイルが無い場合に試すと良いでしょう。
/status
– 現在のセッション設定やトークン使用状況を表示します。例えばどのモデルを使っているか、Sandbox権限はどうなっているか、コンテキストとして何トークン消費しているか等の情報が得られます。長時間対話してコンテキストウィンドウが逼迫してきた際や、設定を確認したい時に便利です。
※ 私の実行例。まあまあ使っていますね。
/mode
– 動作モードを切り替えます。Codex CLIには後述する**「提案モード」「自動編集モード」「全自動モード」**の3形態があり、/mode
コマンドで対話中にこれらをトグル変更できます。状況に応じてインタラクティブ度合いを変えたいときに使用します。
/new
– 新しいチャットスレッドを開始します。現在の対話履歴や一時メモリをリセットし、同じディレクトリで会話を仕切り直したい場合に利用します。プロジェクトは同じままに、話題を変えてゼロから指示を出し直したいときに便利です。
/compact
– コンテキストの要約(圧縮)を行います。対話履歴が長くなりモデルのコンテキスト上限に近づいた際、現在までの会話を要約して改めて会話を続けるためのコマンドです。Codex CLIは提案文や履歴を逐次保持しますが、長くなるとトークン制限に抵触するため、このコマンドで過去を短い要約に置き換えてコンテキストウィンドウを節約できます。Anthropic Claudeでも似た自動要約機能がありましたが、Codex CLIではユーザーの明示操作(/compact
)で行う点が異なります。
/help
– ヘルプを表示します(/
を押すと補完候補一覧が出るため、一般的な使い方としては/
入力開始で利用可能コマンドを確認できます)。
(その他) – この他にも、Codex CLIの開発過程で要望が出ているコマンドとして**/explain
(提案されたコマンドや変更内容の説明を表示)や/edit
**(直前のプロンプトを編集し再送信)などがあります。現時点(2025年8月)では明示的なコマンドは実装されていないものの、提案されたシェルコマンドに対して「Explain Command」というメニューが用意されるなど、対話UI上でコマンドの説明を要求することは可能になる見込みです。アップデート情報を追って適宜活用してください。
操作キー
Codex CLIは対話形式ですが、エディタ的なキーバインドもいくつか存在します。
-
改行 (Ctrl + J):
- Claude Codeと違い、改行にエンターキーを使わないことに注意してください。
- エンターキーは送信として機能します。
-
強制終了 (Ctrl + C):
- 対話の途中で処理を中断したい場合は
Ctrl + C
を使います。現在の提案や実行をキャンセルし、新たな入力待ちになります。。
- 対話の途中で処理を中断したい場合は
グローバル設定の方法(設定ファイル・環境変数)
Codex CLIの挙動は設定ファイルや環境変数によってカスタマイズできます。ここでは、ユーザー全体(全プロジェクト共通)に適用されるグローバル設定について説明します。
設定ファイル ~/.codex/config.toml
インストール直後はまだ設定ファイルは存在しませんが、Codex CLI起動時に**~/.codex/
ディレクトリを自動生成し、デフォルト設定を読み込もうとします。このディレクトリ以下にconfig.toml
**というファイルを作成すると、そこに記載したオプションでデフォルト設定を上書きできます。
設定ファイルはTOML形式です(旧バージョンではJSONやYAMLもサポートされていましたが、現在はTOML推奨です)。一部のユーザーは簡易に~/.codexrc
ファイルを置く方法を紹介していますが、内部的にはそれもTOMLとして解釈されるため、本記事ではconfig.toml
への統一的な記述を説明します。
設定ファイルで指定できる主な項目
モード(承認方針)のデフォルト
ask_for_approval
でAIがファイル編集やコマンド実行時に承認を求めるタイミングを設定できます。既定値はon-request
(必要に応じ毎回確認)ですが、より厳しく常に確認したい場合always
、逆に**全自動にしたい場合はnever
**を設定します。例えば常に手動確認する設定:
ask_for_approval = "always"
⚠️ 注意: 本当に全自動化する場合はnever
を指定できますが、重大な変更も黙って実行されるため注意。
プロバイダ設定
実はCodex CLIはOpenAI以外のモデルプロバイダも利用できます。model_provider
にopenai
(既定)以外を指定し、[model_providers.NAME]
セクションで各種エンドポイントとAPIキー環境変数を設定します。例えば、OpenRouter経由で他社モデルも使う場合:
[model_providers.openrouter]
name = "OpenRouter"
base_url = "https://openrouter.ai/api/v1"
env_key = "OPENROUTER_API_KEY"
wire_api = "responses"
こうしておけば、codex --provider openrouter --model anthropic/claude-sonnet-4
のように実行してClaudeを呼び出すことも可能です(APIキーは環境変数OPENROUTER_API_KEYに設定)。Geminiを使う設定や、Ollama等のローカルLLMサーバーを使う設定も同様に記述できます。
この方法を利用して、Geminiの無料API枠だけでAgentic Codingを実現する方法の記事が話題になっていましたね。
プロファイル
複数の設定セットを頻繁に切り替える場合、[profiles.X]
セクションでプリセットを定義できます。例えば:
[profiles.gemini]
model_provider = "gemini"
model = "gemini-2.5-pro"
これで codex --profile gemini
のようにコマンドライン一発で設定を呼び出せます。
プロジェクトごとの設定方法
プロジェクト単位でCodex CLIの設定を変えたいケースもあるでしょう。Claude Codeでは.claude/settings.json
をプロジェクト内に置く方法が提供されていましたが、Codex CLIには現時点でプロジェクト専用の設定ファイルを自動読み込みする機能はなさそうです(あったら教えてください)。
とはいえ、いくつか代替手段があります。
プロファイルの活用
前述したprofiles
機能を使い、プロジェクトごとにプロファイル名を決めておきます。例えばWeb系プロジェクト用にwebproj
プロファイル(o3ベース、auto-edit許可)、機械学習プロジェクト用にmlproj
プロファイル(o3ベース、read-onlyモード)などを定義しておき、プロジェクトディレクトリごとにエイリアスやREADMEで使用プロファイルを共有するとよいでしょう。各開発者は該当ディレクトリでcodex --profile webproj
のように起動するだけで、統一設定でCLIを使えます。
Makefile等との連携
CIでcodex exec
(後述)を使う際や、統一の起動手順を設けたい場合、MakefileやnpmスクリプトにCodex起動を組み込むのも一案です。例えばmake codex
ターゲットでcodex --profile teamsetting
を実行するようにしておけば、チーム全員が同じ設定セットを使えます。
Claude Codeとの比較
まだ1日しか使っていないのですが、Claude Codeと比較した所感をまとめます。
- 精度
- バックエンド・フロントエンド(デザイン含む)共に、Claude Codeの方がより精度の高いものを作ってくれるイメージです。ただし、Codexも十分に高い品質のものを作ってくれます。
- あくまで個人の感想です。
- 利用制限
- 私はCodexがPlusプランで、Claude CodeはMax 5xプランですが、Codexはしばらくコーディングしていても利用上限に達さなかったのに対して、Claude Codeは2時間くらいで制限に達してしまいました。
- 利用上限の高さはCodex CLIを使う一つの理由になるのかなと思いました。
- 他社モデルやローカルLLMの利用
- Codex CLIはOpenAI以外のプロバイダーも利用できる点は大きな特徴です。
- 現在世界最高レベルに賢いとされるGrok-4 Heavyや、コンテキストウィンドウが広いGemini、ローカルで動くgpt-ossなど、人それぞれの選好に応じてモデルを選べるのは一つの特徴ですね(とはいえ、GeminiもGrokも専用CLIツールを出しているのですが)。
以上、Codex CLIの解説と活用ガイドでした。
私はClaude Codeが上限に達してしまうときや、複雑性がそこまで高くなくある程度LLMに開発を任せたいプロジェクトなどでCodexを使っており、とても気に入りました。
CLAUDE.mdファイルをそのままコピーして名前を変えるだけで使えるところも、並行利用しやすい理由です。
また、Claude Codeは1つのIDEで複数のセッションを開始すると、IDEとのコネクションが切れてしまうのですが、そんなときにもCodexを利用しています。
Claude Codeはとても優秀ですが、使い分け次第でさらに生産性を上げられると感じました。
ぜひみなさんも使ってみてください!
参考文献
Views: 0