Codex CLIをインストールして最初のタスクを実行する方法
Windows 11、macOS、LinuxにCodex CLIをインストールする4つの方法、導入確認、公式ログインとcustom providerの安全な使い分けを解説します。
目次
Codex CLIは、OpenAIがRustで開発したターミナル型のコーディングエージェントです。ローカル環境で動作し、リポジトリ内のコードを扱いながら、隔離された環境でタスクを実行します。インストール方法は、スタンドアロンインストーラー、npm、Homebrew cask、GitHub Releasesのバイナリの4つです。
インストール後は、互いに独立した2つの接続方法から選びます。ChatGPTまたはOpenAI API Keyを使うOpenAI公式ログインと、自分のAPI Keyを使うcustom providerです。どちらも同じcodexコマンドを使うため、別のクライアントをインストールする必要はありません。
インストール前に必要なもの
公式インストールガイドに記載された基本システム要件は次のとおりです。
- macOS: 12(Monterey)以降。
- Linux: Ubuntu 20.04以降、またはDebian 10以降。
- Windows: WSL2を使用するWindows 11。ネイティブWindowsには別のドキュメントがあります。
Node.jsが必要なのは、npmでインストールする場合だけです。スタンドアロンインストーラー、Homebrew cask、GitHub Releasesのアーカイブでは、実行可能ファイルがそのままインストールされます。
ChatGPTによる公式ログインにはChatGPTアカウント、OpenAI公式APIを使う場合はplatform.openai.comのキーが必要です。Custom providerには、自分のBetterTokenアカウント、API Key、現在のModel IDが必要です。Node.jsは、npmによるCodexのインストールまたはproviderの自動設定スクリプトを使う場合に限って必要です。
Codex CLIをインストールする
macOSとLinux — スタンドアロンインストーラー
最も簡単な方法で、Node.jsは不要です。
curl -fsSL https://chatgpt.com/codex/install.sh | sh
インストールが完了したら、コマンドを確認します。
codex --version
バージョン番号が表示されれば、コマンドを利用できます。
Codexをインストールできたら、最新ガイドに従って自分のAPI Keyを接続します。 まず現在のDocsで設定フィールドを確認し、まだ自分のキーがなければBetterTokenアカウントを作成してください。
macOS — Homebrew cask
brew install --cask codex
npm — macOS、Linux、Windows
動作するnpmを含むNode.jsが必要です。最低Node.jsバージョンは、npmjs.com/@openai/codexにあるパッケージのenginesフィールドで確認してください。
npm install -g @openai/codex
インストール後にcodexコマンドが見つからない場合は、npmのグローバルディレクトリがPATHに含まれていません。正しい場所を確認します。
npm config get prefix
表示されたディレクトリとシェルのPATHを比較し、ターミナルを再起動してください。確認せずに/binを追加してはいけません。グローバル実行ファイルの構成は、OSとNode.jsのインストール方法によって異なります。
Linux — GitHub Releasesのバイナリ
github.com/openai/codex/releasesでは、すぐに使えるLinux用アーカイブが公開されています。
codex-x86_64-unknown-linux-musl.tar.gz— x86_64向けcodex-aarch64-unknown-linux-musl.tar.gz— arm64向け
アーカイブを展開し、実行可能ファイルをcodexに名前変更して、書き込み可能なPATH内のディレクトリへ配置します。
Windows
Codex CLIは、Windows上でネイティブに実行することも、WSL2内で実行することもできます。現在のWindowsドキュメントでは、ネイティブ利用の推奨環境はWindows 11です。すべての更新を適用したWindows 10は、best-effortでサポートされます。
ネイティブWindows(PowerShell)。 公式インストーラーを実行します。
powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex"
ネイティブ実行では、CodexはWindows Sandboxを使ってタスクの実行を隔離します。モードは~/.codex/config.tomlで設定します。
[windows]
sandbox = "elevated"
"elevated": 推奨。専用のsandboxユーザーとファイアウォールルールを使用します。"unelevated": 専用sandboxを使わず、現在のユーザーにACL制限を適用します。
WSL2。 Linux向け手順に従い、WSL2内にCodex CLIのLinux版をインストールします。Linuxツールを使う場合、OpenAIはプロジェクトを/mnt/配下ではなくWSLのファイルシステムに保存することを推奨しています。
同じCodex CLIをBetterToken APIへ接続する
BetterTokenがCodex CLIを別のアプリケーションに置き換えるわけではありません。OpenAI公式のcodex実行ファイルをそのまま使い、~/.codex/config.tomlでcustom providerを選択します。Codexのリクエストは、Base URL `https://www.bettertoken.ai/v1%60%E3%82%92%E9%80%9A%E3%81%98%E3%81%A6OpenAI?utm_source=blog&utm_medium=organic_content&utm_campaign=SEO-044&utm_content=ustanovit-codex-cli-pervyy-zapusk Responsesを使用します。
移行は、次の3段階で進めます。
- 自分のBetterTokenアカウントと専用API Keyを作成します。共有キーは使わないでください。
- 最新のBetterToken Codexガイドを開き、現在のモデル一覧からModel IDとproviderフィールドをコピーして、実行中のCodexを完全に終了します。Model ID、グループ名、認証フィールドが固定だと想定しないでください。
- 競合する古いOpenAI環境変数を削除し、現在のDocsどおりにprovider設定を適用します。新しいターミナルでCodexを完全に再起動し、小さな読み取り専用タスクを実行した後、BetterToken Dashboardでリクエスト、モデル、ステータス、input/output/cache tokenの使用量を確認します。
macOSとLinuxでは、競合する変数を削除します。
unset OPENAI_API_KEY
unset OPENAI_BASE_URL
Windows PowerShellでは、現在のセッションと今後のユーザーセッションから削除します。
Remove-Item Env:OPENAI_API_KEY -ErrorAction SilentlyContinue
Remove-Item Env:OPENAI_BASE_URL -ErrorAction SilentlyContinue
[Environment]::SetEnvironmentVariable("OPENAI_API_KEY", $null, "User")
[Environment]::SetEnvironmentVariable("OPENAI_BASE_URL", $null, "User")
BetterToken providerを自動設定する
このスクリプトが設定するのはBetterToken providerだけで、Codex CLI自体はインストールしません。Node.jsが必要です。API Keyやモデルを引数で渡さない場合は対話型ターミナルで入力を求められるため、secretをコマンドラインに書かないでください。
macOSとLinux:
curl -fsSL https://www.bettertoken.ai/install-codex-provider.sh?utm_source=blog&utm_medium=organic_content&utm_campaign=SEO-044&utm_content=ustanovit-codex-cli-pervyy-zapusk | bash
Windows PowerShell:
iwr https://www.bettertoken.ai/install-codex-provider.ps1?utm_source=blog&utm_medium=organic_content&utm_campaign=SEO-044&utm_content=ustanovit-codex-cli-pervyy-zapusk -OutFile "$env:TEMP\install-codex-provider.ps1"; powershell -ExecutionPolicy Bypass -File "$env:TEMP\install-codex-provider.ps1"
認証フィールドとcredentialの保存方法は、Codexのsurfaceやクライアントバージョンによって異なります。そのため、この記事では特定のauth booleanを固定せず、OpenAI公式ログインとcustom providerを1つの設定例に混在させません。
対象のsurfaceを最新のBetterToken Codexガイドで選び、現在のModel IDとproviderフィールドをコピーして、変更後にCodexを完全に再起動してください。Secretは記事本文やコマンドラインではなく、現在のDocsで指定された方法だけで渡します。
OpenAI公式認証
以下のコマンドは、OpenAI公式ルートだけに適用されます。BetterToken custom providerを使う場合、codex login statusではBetterToken APIを検証できません。テストタスクを実行し、Dashboardの記録を確認してください。
ChatGPTでサインインする
次のコマンドを実行します。
codex login
ブラウザが開いたら、自分のChatGPTアカウントでサインインを完了します。Codexはセッションをローカルに保存するため、次回以降は通常、再ログインする必要がありません。
認証前に引数なしでcodexを実行した場合も、インターフェースからサインインを求められます。サインインを開始する基本の方法はcodex loginです。
API Keyでサインインする
キーをコマンド引数として渡したり、echoで表示したりしないでください。値がshell historyに残ります。
現在の環境またはsecret managerでOPENAI_API_KEYを設定します。値を記事、コマンド、出力へ書かないでください。変数を設定したら、stdinから渡します。
printenv OPENAI_API_KEY | codex login --with-api-key
キーは画面に表示されず、コマンド履歴にも入りません。
認証状態を確認する
サインイン後、状態を確認します。
codex login status
現在の認証方法、または未ログインであることが表示されます。
未認証と表示された場合は、該当する方法でサインインをやり直してください。
サインアウトして保存済みcredentialを削除するには、次を実行します。
codex logout
~/.codex/auth.jsonにはaccess tokenが含まれます。パスワードと同じように扱ってください。手動では削除せず、必ずcodex logoutで消去します。
認証ドキュメント: developers.openai.com/codex/auth。Loginサブコマンドとフラグのリファレンス: developers.openai.com/codex/cli/reference。
テスト用リポジトリで最初のタスクを実行する
作業中のコードへ影響を与えないよう、最初はテスト用リポジトリを使います。公開リポジトリを1つcloneしてください。ここではCodex自体を例にします。
git clone https://github.com/openai/codex codex-test
cd codex-test
読み取り専用タスクを実行します。
codex --sandbox read-only "Explain the entry point of this project"
--sandbox read-onlyフラグは、モデルが生成するコマンドを読み取りに制限します。Codexがファイルを変更せず、構造を意味のある形で説明できれば、初回実行は完了です。
同じ制限のままTUIを続けるには、次を実行します。
codex --sandbox read-only
インターフェースにWhat files are in this project and what does each do?と入力します。
OpenAI公式ルートを使っている場合は、認証が有効なままか確認します。
codex login status
BetterToken providerを使っている場合は、通常の応答が接続確認になります。さらにBetterToken Dashboardを開き、リクエスト、モデル、ステータス、input/output/cache tokenの使用量が履歴に表示されることを確認してください。
トラブルシューティング
npmインストール後にcodex: command not foundと表示される
npm config get prefixを実行し、結果をPATHと比較して、ターミナルを再起動します。実行ファイルの正確な場所はOSとNode.jsのインストール方法によって異なるため、確認せずに/binを追加しないでください。
ChatGPTサインイン時にブラウザが開かない
GUIのないリモートサーバーでは、まずOpenAI公式のdevice-code flow(beta)を試します。
codex login --device-auth
事前にChatGPTのsecurity settingsまたはworkspace permissionsで有効にする必要があります。利用できない場合は、API Keyでサインインします。
printenv OPENAI_API_KEY | codex login --with-api-key
Callback、device code、代替方法については、公式認証ガイドを参照してください。
BetterToken接続後にCodexが応答しない
5項目を確認します。base_urlがhttps://www.bettertoken.ai/v1%60%E3%81%A7%E3%81%82%E3%82%8B%E3%81%93%E3%81%A8%E3%80%81%60wire_api%60%E3%81%8C%60responses%60%E3%81%AE%E3%81%BE%E3%81%BE%E3%81%A7%E3%81%82%E3%82%8B%E3%81%93%E3%81%A8%E3%80%81Model?utm_source=blog&utm_medium=organic_content&utm_campaign=SEO-044&utm_content=ustanovit-codex-cli-pervyy-zapusk IDとproviderフィールドを現在のBetterToken Docsから取得したこと、model_providerが選択した[model_providers.*]テーブルに一致すること、古いOPENAI_API_KEYまたはOPENAI_BASE_URLが設定を上書きしていないことです。config.toml`を編集したら、新しいターミナルでCodexを完全に再起動してください。
codex login statusにNot logged inと表示される
- ChatGPTログイン:
codex loginを再実行し、ブラウザでサインインを完了します。 - API Keyログイン: 作業環境に
OPENAI_API_KEYが設定されていることを確認し、printenv OPENAI_API_KEY | codex login --with-api-keyを再実行します。 ~/.codex/auth.jsonを手動で削除せず、codex logoutを使ってください。
Codex CLIドキュメント: developers.openai.com/codex/cli。同じCodex CLIをBetterToken APIへ接続する方法: docs.bettertoken.ai/en/ai-tools/codex。