Codex CLI について

公開:
機械学習 #codex

AI エージェントツールとして進歩が著しい、CLI 型コードエージェントについて調査してみました。 今回は各種ツールの中で、普段使用している ChatGPT のサブスクリプションがそのまま使用できる codex について深堀りをしてみます。

コードエージェントについて

コードエージェントとは、LLM を利用してソフトウェア開発の一連の作業を自動化することができるツールです。 CLI ベースや GUI ベースのものがあり、最近では様々な環境で統合的にサービス提供されています。 その中でも特に自由度が高い(と個人的には思っている)CLI 型のコードエージェントについて調査してみました。 CLI 型コードエージェントは

  • Codex CLI[1]
    • オープンソースの CLI 型コードエージェントで、拡張性が高いのが特徴
    • OpenAI モデルとの相性も良い
  • Claude Code
    • プラン生成やバグ修正が非常に自然で、対話品質が高い
  • Gemini CLI
    • Gemini 2 系モデルをローカル環境から利用できる CLI
    • Google エコシステムとの統合がスムーズ

など、LLM を提供している各社からツールが出されていて、それぞれツールの特性があります。

環境構築手順

早速 codex cli をインストールしてみたいと思います。インストール手順は

に従うと簡単です。

npm i -g @openai/codex

インストールが終了すると、codex コマンドを実行できるようになります。初回起動時は ChatGPT へのログインが必要ですので 指示に従って web ブラウザからログインします[2]

さてここまででセットアップが終了しました。

codex

使い方

codex はそのまま自然文で指示が出せますが、より柔軟な開発環境の提供のために様々な機能が実装されています。

コマンド

codex ではスラッシュ「/」から始まるコマンドで各種処理を呼び出すことができます。

コマンド用途使用タイミング
/modelモデルの切り替えを行うタスクを実行する前に、汎用モデル(gpt-4.1-mini など)と、より深い推論を行うモデルを切り替えたいときに使います。
/approvals事前の確認なしで実行してよい操作範囲を設定するセッションの途中で承認ポリシーを緩めたり厳しくしたりしたいときに使います(例:Auto から Read Only へ切り替える場合などです)。
/review作業ツリーの内容を Codex にレビューさせるCodex による変更が一通り終わったあとや、ローカルの変更点を第三者の視点で確認したいときに使います。
/new同じ CLI セッション内で新しい会話を開始するCLI を終了せずにチャットの文脈だけをリセットしたいときに使います。同じリポジトリを保ったまま、新しいプロンプトからやり直したい場合に便利です。
/init現在のディレクトリに AGENTS.md のひな型を生成する作業中のリポジトリやサブディレクトリに対する恒常的な指示やルールを文書として残したいときに使います。
/compact現在表示されている会話を要約し、トークン使用量を抑える長いやり取りのあとに、コンテキストウィンドウを圧迫せず重要なポイントだけを残したいときに使います。
/undoCodex の直近のターンで行われた変更を取り消す意図しない編集やコマンド実行をすぐに元に戻したいときに使います。
/diff未追跡ファイルも含めて git diff を表示するコミットやテスト実行の前に、Codex が加えた変更内容を確認したいときに使います。
/mention会話にファイルを添付する次に Codex に見てほしいファイルやフォルダを明示的に指定したいときに使います。
/status現在のセッション設定やトークン使用状況を表示するアクティブなモデル、承認ポリシー、書き込み可能なディレクトリ、残りコンテキスト容量などを確認したいときに使います。
/mcp設定済みの Model Context Protocol(MCP)ツールの一覧を表示するそのセッションで Codex が呼び出せる外部ツールの一覧を確認したいときに使います。
/logoutCodex からサインアウトする共有マシンなどで利用していて、ローカルに保存された認証情報をクリアしたいときに使います。
/quitCLI を終了します。現在のセッションをすぐに終了したいときに使います。
/exitCLI を終了します(/quit と同じ動作をします)。別表記の終了コマンドとして使います。どちらのコマンドもセッションを終了します。
/feedbackログを Codex のメンテナに送信します。不具合を報告したいときや、サポートに診断情報を共有したいときに使います。

AGENTS.md

Codex への作業指示として AGENTS.md という設定ファイルを使用することができます

  • ~/.codex/AGENTS.md
  • ./AGENTS.md

記述内容

AGENTS.md には例えば以下のような内容を記載します。システムプロンプトや ChatGPT のカスタム指示のような使い方です。

## Working agreements

- JavaScript ファイルを変更したら必ず `npm test` を実行します。
- 依存パッケージの追加には `pnpm` を優先します。
- 本番依存の追加は、事前に確認を行ってからにします。

設定の変更

プロジェクトで別名で設定されているファイルを読み込みたい場合は、~/.codex/config.toml を使って設定を上書きすることもできます。

project_doc_fallback_filenames = ["TEAM_GUIDE.md", ".agents.md"]
project_doc_max_bytes = 65536

これにより、各ディレクトリで Codex は次の順序でファイルを探し、既存のガイドファイルを指示ファイルとして再利用できるようになります。

  1. AGENTS.override.md
  2. AGENTS.md
  3. TEAM_GUIDE.md
  4. .agents.md

MCP

MCP サーバーとも連携することができます。Model Context Protocol(MCP)は、 LLM クライアントを外部ツールや追加コンテキストに接続するためのプロトコルです。

  • ライブラリや社内システムのドキュメントを Codex から直接参照する
  • ブラウザや Figma、Sentry、GitHub などの開発ツールを Codex から操作したい

などを実現することができます。


脚注

  1. https://developers.openai.com/codex/cli ↩︎
  2. メールでのログインか、Google でのログインか、で自分がどちらを設定していたのか忘れていて少し詰まりました ↩︎