Apidog

オールインワン協働API開発プラットフォーム

API設計

APIドキュメント

APIデバッグ

APIモック

API自動テスト

OpenAI Codex CLI: ターミナル内のオープンソースコーディングエージェント

中村 拓也

中村 拓也

Updated on 4月 17, 2025

コマンドラインインターフェイス(CLI)は、多くの開発者にとって疑いの余地のない領域であり、効率性、力、そして開発ライフサイクルへの深い統合の場です。今、その環境をあなたのコードを理解し、ファイルを編集し、コマンドを実行し、解決策を反復することができる知的エージェントで拡張することを想像してみてください。これが、ターミナルにいる開発者のために特別に設計された、OpenAI Codex CLIの約束です。npm(@openai/codex)を介して利用可能な軽量コーディングエージェントです。

これは単なるチャットボットではありません。Codex CLIは、ChatGPTレベルの推論と、あなたのローカルリポジトリ内でタスクを直接実行する実用的な能力を組み合わせることを目指しています。ファイルと対話し、シェルコマンドを実行し(安全に!)、バージョン管理とシームレスに統合し、リポジトリの背景を理解するチャット駆動型開発の真のパートナーとなります。

💡
美しいAPIドキュメントを生成する優れたAPIテストツールをお探しですか?

開発チームが最大限の生産性で一緒に作業するための統合されたオールインワンプラットフォームが必要ですか?

Apidogはあなたの要求に応え、Postmanをはるかに手頃な価格で置き換えます!
ボタン

OpenAI Codex CLIの使い方:

Codex CLIの使い始めは簡単で、「ゼロセットアップ」哲学を反映しており(APIキーの提供を除く)、直感的に設計されています。

Codex CLIを実行するには、あなたのシステムは以下の要件を満たす必要があります:

  • オペレーティングシステム: macOS 12以上、Ubuntu 20.04以上/Debian 10以上、またはWSL2経由のWindows 11。
  • Node.js: バージョン22以上(LTS推奨)。
  • Git(オプション、推奨): フル機能のためには、バージョン2.23以上が必要です。特にバージョン管理の統合とPRヘルパー機能に必要です。
  • RAM: 最低4 GB、推奨8 GB。
GitHub - openai/codex: Lightweight coding agent that runs in your terminal
Lightweight coding agent that runs in your terminal - openai/codex

インストール: Node.jsツールとして、インストールはnpm(またはyarn)を介して行います。codexコマンドをターミナルのどこでも利用できるように、グローバルにインストールします:

npm install -g @openai/codex

(標準的なアドバイスを覚えておいてください:sudo npm install -gの使用は避け、必要に応じてnpmの権限を適切に設定してください)。

APIキーの設定: Codex CLIは機能するためにあなたのOpenAI APIキーを必要とします。これを環境変数として設定する必要があります:

export OPENAI_API_KEY="your-api-key-here"

重要なことに、このexportコマンドは通常現在のターミナルセッションのためにのみ変数を設定します。これを恒久的にするには、この行をシェルの設定ファイル(~/.zshrc~/.bashrc、または~/.bash_profileなど)に追加する必要があります。

Codexの実行: Codexにはいくつかの方法で対話できます:

対話モード: codexとタイプするだけで対話セッション(REPL - 読み取り-評価-印刷ループ)が開始され、コマンドや指示を発行できます。

直接プロンプト: コマンドラインから直接初期プロンプトを提供します:

codex "このコードベースを説明してください"

自動実行: プロンプトを承認モード(この後詳しく説明します)と組み合わせて、より自動化されたタスクを実行します:

codex --approval-mode full-auto "最も豪華なTodoリストアプリを作成する"

一度起動すると、Codexは作業を始めます。ファイルをスキャフォールディングし、サンドボックス内でコードを実行し、必要な依存関係を特定してインストールし、結果を提示します。次に、提案された変更(ファイルの差分、コマンドの出力)を確認し、それらを作業ディレクトリにコミットすることを承認します。

OpenAI Codex CLIを選ぶ理由は?

Codex CLIは、既存のワークフローに深く埋め込まれたAI支援を求める開発者のための特定のニッチを切り開いています。そのデザイン哲学から直接派生した主なセールスポイントには、以下が含まれます:

  • ターミナルネイティブ: CLIを好む開発者のために作られています。Web UIや別のアプリケーションへの文脈の切り替えを避けます。
  • 推論 + 実行: 単にコードを提案したり、概念を説明したりするだけではなく、強力なAI推論(ChatGPTのような)を活用し、コードを実行するファイルを操作する、および解決策を反復する能力を重要視します。
  • リポジトリを意識している: 特定のコードベース内で動作していることを理解し、その文脈を活用します。
  • ゼロセットアップ(ほぼ): OpenAIのAPIキーを持ち、パッケージをインストールするだけで準備が整います。
  • 安全な自動化: 設定可能な自動化レベルを提供し、「フルオート」モードを含みますが、ネットワークの無効化とディレクトリのサンドボックスを通じてセキュリティを実装します。
  • マルチモーダル入力: 機能を実装するためにスクリーンショットや図を入力として受け入れる能力を明示的に発表しています。✨
  • オープンソース: プロジェクト全体がオープンソースであり、透明性、コミュニティの貢献、そして信頼を促進します。

OpenAI Codex CLIの三つのモードについて:

AIツールにファイルを編集し、シェルコマンドを実行する権限を付与することは、堅牢なセキュリティモデルが必要です。Codex CLI は、--approval-mode フラグ(コマンドラインまたはオンボーディング中の対話プロンプトで設定可能)を介して、透明性とユーザー制御でこれに対処します:

提案モード(デフォルト):

  • 許可なしに可能: リポジトリ内の任意のファイルを読み取ることができます。
  • 承認が必要: すべてのファイル書き込み/パッチおよびすべてのシェル/Bashコマンド。
  • ユースケース: 最も安全なモードで、機密操作やツールの学習、または最大限の制御を望む場合に最適です。

自動編集モード:

  • 許可なしに可能: ファイルを読み取り、パッチを適用/ファイルに変更を書き込むことができます。
  • 承認が必要: すべてのシェル/Bashコマンド。
  • ユースケース: コードの変更の自動化をバランスさせつつ、システムを変更する可能性のあるコマンドに対して手動制御を維持します。リファクタリングやコード生成を迅速化します。

フルオートモード:

  • 許可なしに可能: ファイルを読み書きし、シェルコマンドを実行することができます。
  • 承認が必要: なし(サンドボックス内)。
  • ユースケース: 信頼できるタスクのための最大限の自動化。

組み込みの安全策:

  • サンドボックス化: フルオートモードでは、コマンドが防御のために重大な制限を持って実行されます:
  • ネットワーク無効化: 予期しない外部通信を防ぎます(例:curl呼び出しはデフォルトで失敗します)。
  • ディレクトリ制限: 操作は現在の作業ディレクトリ($PWD)と指定された一時/キャッシュ領域($TMPDIR~/.codexなど)に制限されます。
  • Gitの認識: Codex CLIはターゲットディレクトリがGitによって追跡されているかどうかを確認します。追跡されていないディレクトリでauto-editまたはfull-autoモードを開始しようとすると、警告/確認プロンプトが表示され、常に変更を確認および元に戻すためのバージョン管理のセーフティネットが保持されます。
  • 将来の強化: ドキュメントでは、追加の安全策が自信を持って実装された後に、ネットワークが有効な状態で自動実行のために特定のコマンドをホワイトリスト化する計画が記載されています。

プラットフォーム固有のサンドボックス化:

基本的なハードニングメカニズムは、ホストオペレーティングシステムに適応し、使用の透明性を目指します:

  • macOS (12以上): ネイティブなAppleシートベルト技術(sandbox-exec)を使用します。プロセスは特定の書き込み可能な例外($PWD$TMPDIR~/.codex)を持つ読み取り専用の監獄に配置されます。外部ネットワークアクセスはブロックされます。
  • Linux: サンドボックス化にはDockerの使用を推奨します。Codexはミニマルなコンテナイメージ内で自分自身を立ち上げ、リポジトリを読み書きします。カスタムiptables/ipsetファイアウォールスクリプトにより、OpenAI APIとの必要な通信以外のすべてのネットワーク出口が拒否されます。これにより、ホストマシン上でルート権限を必要とせずに決定論的で再現可能な実行が提供されます(詳細はrun_in_container.shを参照)。
  • Windows: Windows Subsystem for Linux 2 (WSL2)を介してサポートされており、WSL環境内でLinuxのサンドボックス化アプローチを利用する可能性があります。

OpenAI Codex CLIの設定

基本的なインタラクションを超えて、Codex CLIはその動作を調整し、より複雑なワークフローに統合する方法を提供します。

CLIリファレンス:

  • codex: 対話モード。
  • codex "...": 初期プロンプトを持つ対話モード。
  • codex -q "..."またはcodex --quiet "...": スクリプトに適した対話的でない「静かなモード」。-jsonフラグが追加されている場合はJSONを出力します。
  • 主要フラグ:
  • -model / m: 使用するOpenAIモデルを指定します(例:gpt-4o4-mini)。
  • -approval-mode / a: 自動化レベルを設定します(suggestauto-editfull-auto)。
  • -quiet / q: 対話的でないモードを有効にします。

メモリとプロジェクトのコンテキスト:

Codex CLIは、Markdownファイルからプロジェクト固有の指示とコンテキストを組み込むことができ、特定の優先順位でレイヤリングします:

  1. ~/.codex/instructions.md: すべてのプロジェクトに適用される個人的で全体的なガイダンス。
  2. codex.md(リポジトリのルートに): プロジェクトの共有ノート、規則、または全体のリポジトリに対する高水準のコンテキスト。
  3. codex.md(現在の作業ディレクトリに): サブパッケージまたはディレクトリに対する特定の指示。

これにより、チームはプロジェクトの標準を埋め込んだり、Codexが使用するためにコードベース内にヒントを直接提供したりできます。この機能は、--no-project-docフラグを使用するか、環境変数CODEX_DISABLE_PROJECT_DOC=1を設定することで無効にできます。

非対話的 / CIモード:

自動化のために設計されたCodex CLIは、継続的インテグレーション(CI)パイプラインでヘッドレスで実行できます。--quiet(または-q)フラグを使用するか、CODEX_QUIET_MODE=1の環境変数を設定することで、対話的UI要素が抑制されます。

例としてのGitHub Actionステップ:

- name: Codexを使用した変更ログの更新
  run: |
    npm install -g @openai/codex
    export OPENAI_API_KEY="${{ secrets.OPENAI_KEY }}"
    codex -a auto-edit --quiet "最近のコミットに基づいて次のリリースのためにCHANGELOGを更新する"

設定ファイル:

Codexは~/.codex/ディレクトリ内で設定を探します:

~/.codex/config.yaml: デフォルト(好ましいモデルやフルオートモードでのエラー時の動作など)を定義します。

model: o4-mini # 呼び出し時のデフォルトモデル
fullAutoErrorMode: ask-user # エラー時の動作:ask-userまたはignore-and-continue

~/.codex/instructions.md: 前述のように、グローバルなカスタム指示のために(例: "常に絵文字で返答してください", "明示的に指示しない限りgitコマンドを使用しないでください")。

実用的なアプリケーション:成功のためのレシピ

READMEには、Codex CLIが適しているタスクの種類を示すいくつかの具体的な例(「レシピ」)が提供されています:

  1. コードのリファクタリング: codex "ダッシュボードコンポーネントをReact Hooksにリファクタリングする" - Codexはクラスコンポーネントを分析し、書き換えを試み、テスト(npm test)を実行し、承認のための差分を示します。
  2. マイグレーションの生成: codex "ユーザーテーブルを追加するためのSQLマイグレーションを生成する" - 使用しているORM(例:Prisma、Sequelize)を推測し、必要なマイグレーションファイルを作成し、それらをサンドボックス化されたデータベース環境で実行します。
  3. ユニットテストの作成: codex "utils/date.tsのユニットテストを書く" - Codexはテストケースを生成し、それらを実行し(おそらくnpm testまたはjestなどのシェルコマンドを通じて)、通過するまでコードまたはテストを修正します。
  4. 一括ファイル操作: codex "一括リネーム *.jpeg → *.jpg with git mv" - 必要なgit mvコマンドを作成して実行し、コード内の参照/インポートも更新します。
  5. コード/正規表現の説明: codex "この正規表現が何をするのか説明してください: ^(?=.*[A-Z]).{8,}$" - LLMの説明力を活用して、人間が読める形式で的確な説明を提供します。
  6. 高レベルなリポジトリ分析: codex "このリポジトリを慎重にレビューし、影響の大きいスコープの狭いPRを3つ提案してください" - 戦略的なコードレビューおよび提案生成の可能性を示しています。
  7. セキュリティ監査: codex "脆弱性を探し、セキュリティレビュー報告書を作成してください" - AIの知識ベースを使用して潜在的なセキュリティ上の欠陥を特定し、それらを説明します。

結論

オープンソースでCLIを重視した開発者のために構築されているCodex CLIは、信頼できるコーディングエージェントとして不可欠な存在を目指しています。生産性を向上させ、開発者がコマンドラインから複雑な課題に集中できるようになっています。アクティブな開発が続く中で、開発者が日常のワークフローでAIとどのように相互作用するかを大きく変える可能性を秘めています。

💡
美しいAPIドキュメントを生成する優れたAPIテストツールをお探しですか?

開発チームが最大限の生産性で一緒に作業するための統合されたオールインワンプラットフォームが必要ですか?

Apidogはあなたの要求に応え、Postmanをはるかに手頃な価格で置き換えます!
ボタン