自動設定と手動設定のどちらからでも進められる、確認ポイント付きの導入メモです。
Codexの導入では、「コマンドが起動する」「APIから回答が返る」「デスクトップ版でも使える」を分けて確認すると、設定をやり直す範囲を絞れます。本稿は初めてターミナルを使う人向けに、入力する場所と操作順をまとめています。
1. 再現条件とAPIキーを準備します
Windowsでの確認環境は次のとおりです。必須の最低バージョンを示す表ではありません。
| 項目 | 2026年10月14日の確認環境 |
|---|---|
| OS | Windows |
| Node.js / npm | 24.21.0 / 11.19.0 |
| Git | 2.53.0 |
| Codex CLI | 0.162.1 |
| モデルID | gpt-5.6-sol |
既存環境で、自動設定と手動設定の両方から短い質問への回答を確認しました。新規PCへの依存関係の全インストール、macOSでの実行、デスクトップ版からの独立した通信確認までは含みません。
接続例にはCrazyrouterを使います。Codex連携ページから登録画面へ進み、必要事項とメール認証を完了してログインします。
実際の登録画面です。画像内の表示言語は取得時の中国語のままです。
管理画面でAPIキーを作成します。サービスの案内では「Token Management」→「Create Token」という名称です。有効期限、利用可能額、モデル制限を確認してコピーしてください。ログイン用パスワードとは別物です。登録やスクリプト実行だけで無料の利用枠が付くとは限りません。
第三者のAPIを使う理由は、モデルごとの料金比較や利用量の一元管理です。ただし、安さだけでなくResponses APIへの対応やサポートも確認します。公式APIに直接接続する選択肢もあり、ChatGPTのサブスクリプションとは課金の仕組みが異なります。
2. 自動設定を使う場合:OSごとに実行します
この節と次の手動設定は、どちらか一方を選びます。 自動設定が完了したら第4節へ進めます。スクリプトはCLIを対象としており、デスクトップ版は別途インストールします。
画面の短縮コマンドはswitch用です。初回は下記のfullを使います。
Windows
Windowsキーを押して「PowerShell」と検索し、「開く」を選びます。コードをCtrl+Cでコピーし、PowerShellへCtrl+Vで貼り付け、1行ごとにEnterを押します。PS ...>という表示はコピーしません。
以下のコマンドは固定バージョンの公開スクリプトを取得し、実行前に古いAPIアドレスを置き換えます。生成される設定とOPENAI_BASE_URLをhttps://api.crazyrouter.com/v1に統一しますが、元のリポジトリ自体は変更しません。古い画像内のコマンドではなく、以下の修正版をコピーしてください。
$env:CRAZYROUTER_CODEX_MODE='full'
(Invoke-WebRequest -UseBasicParsing -ErrorAction Stop 'https://raw.githubusercontent.com/xujfcn/crazyrouter-codex-cli/b68d1db167950df4ab597b853ca0aec1b16295b8/install-crazyrouter-codex.ps1').Content.Replace('https://cn.crazyrouter.com/v1', 'https://api.crazyrouter.com/v1') | Invoke-Expression
fullはGit、Node.js、CLIの不足を補い、接続先を設定します。CLIが導入済みなら、1行目の'full'を'switch'に変更します。2行目は公開スクリプトのダウンロードと実行です。連携ページからソースを確認でき、fullではインストーラーや権限の画面が開く場合があります。ソフトウェアの規約を受諾するオプションも使われています。
キー入力の案内が出たらキーだけを貼り付けてEnterを押します。非表示入力でも正常です。続くモデル選択では、利用権限がある場合に既定のgpt-5.6-solを確定します。完了後はターミナル全体を閉じて開き直します。
macOS
Command+Spaceで「ターミナル」を検索し、Returnで開きます。以下はzsh用です。別のシェルを使っている場合は先にzshを実行してください。貼り付けはCommand+V、実行はReturnです。
touch ~/.zshrc
curl -fsSL https://raw.githubusercontent.com/xujfcn/crazyrouter-codex-cli/b68d1db167950df4ab597b853ca0aec1b16295b8/install-crazyrouter-codex.sh | sed 's#https://cn\.crazyrouter\.com/v1#https://api.crazyrouter.com/v1#g' | bash -s -- --full
1行目は既存内容を消さずに設定ファイルを用意します。CLI導入済みの場合は--fullを--switchへ変更します。案内に従ってキー、モデルの順に入力します。インストーラーが求めるシステムパスワードにはMacのログイン用パスワードを使います。
Gitがない場合はxcode-select --installで開発ツールを導入し、git --versionで確認してから再実行します。終了後は次を実行します。
source ~/.zshrc
codex --version
3. 手動設定を使う場合:インストールと認証を分けます
CLIをインストールします
WindowsではNode.js公式サイトからLTS版を取得し、PCのCPUに合うインストーラーを起動します。PATHの設定を有効にしたままインストールし、PowerShellを開き直して順に実行します。
node --version
npm.cmd --version
npm.cmd install -g @openai/codex
codex.cmd --version
途中で失敗した場合は先へ進まず、その行のエラーを確認します。Gitが必要ならGit for Windowsの公式サイトから導入します。
macOSでは公式の独立したCLIインストーラーを使えます。
curl -fsSL https://chatgpt.com/codex/install.sh | sh
PATHの案内が出たら反映し、ターミナルを開き直してcodex --versionを確認します。
設定ファイルを編集します
Windowsでは次を1行ずつ実行します。既存ファイルは日時付きでバックアップされます。
$codexConfigDir = Join-Path $env:USERPROFILE '.codex'
New-Item -ItemType Directory -Path $codexConfigDir -Force | Out-Null
$codexConfigPath = Join-Path $env:USERPROFILE '.codex\config.toml'
if (Test-Path -LiteralPath $codexConfigPath) { Copy-Item -LiteralPath $codexConfigPath -Destination ($codexConfigPath + '.backup-' + (Get-Date -Format 'yyyyMMdd-HHmmss')) }
if (-not (Test-Path -LiteralPath $codexConfigPath)) { New-Item -ItemType File -Path $codexConfigPath | Out-Null }
notepad.exe $codexConfigPath
macOSでは次を実行します。
mkdir -p ~/.codex
if [ -f ~/.codex/config.toml ]; then cp ~/.codex/config.toml ~/.codex/config.toml.backup-$(date +%Y%m%d-%H%M%S); fi
nano ~/.codex/config.toml
開いたエディターに次の内容を入れます。これはターミナルで実行するコマンドではありません。
設定は改行を保ったままファイルへ貼り付けてください。各設定と角括弧のセクション見出しは別の行に置きます。1行にまとめたり言語ラベルまでコピーしたりしないでください。
model = "gpt-5.6-sol"
model_provider = "crazyrouter"
[model_providers.crazyrouter]
name = "Crazyrouter"
base_url = "https://api.crazyrouter.com/v1"
env_key = "OPENAI_API_KEY"
wire_api = "responses"
既存設定がある場合は対応する項目だけを更新します。先頭の2項目は最初の角括弧より前に置き、同じプロバイダー節を重複させません。メモ帳はCtrl+S、nanoはControl+O→Return→Control+Xで保存・終了します。ファイル名をconfig.toml.txtにしないでください。
env_keyはキー本体ではなく、キーを保存した環境変数の名前です。
自動・手動ともにhttps://api.crazyrouter.com/v1を使います。/responsesは追加しません。
APIキーを保存します
Windowsで次を実行し、表示された入力欄にキーを貼り付けてEnterを押します。
$codexApiKey = Read-Host 'Paste your API Key, then press Enter' -AsSecureString
通常のプロンプトに戻ってから実行します。
[Environment]::SetEnvironmentVariable('OPENAI_API_KEY', ([System.Net.NetworkCredential]::new('', $codexApiKey)).Password, 'User')
Remove-Variable codexApiKey
他のツールも使う可能性があるユーザー環境変数を更新します。保存後はPowerShellまたはWindows Terminal全体を終了し、開き直します。
macOSはnano ~/.zshrcを開き、次の行を追加します。同名の設定があれば置き換えます。
export OPENAI_API_KEY='YOUR_API_KEY'
YOUR_API_KEYを自分のキーに置き換え、引用符は残します。保存後にsource ~/.zshrcを実行します。キーは平文で保存されるため、このファイルを画像やGitで共有しないでください。
4. 回答を受け取れるか確認します
Windowsでのキー読み込み確認です。
if ([string]::IsNullOrWhiteSpace($env:OPENAI_API_KEY)) { 'KEY_MISSING' } else { 'KEY_FOUND' }
macOSはこちらです。
if [ -n "${OPENAI_API_KEY:-}" ]; then echo KEY_FOUND; else echo KEY_MISSING; fi
KEY_FOUNDは値の存在だけを示します。次に練習用フォルダーを作って起動します。Windows:
$codexPracticeDir = Join-Path $env:USERPROFILE 'Projects\codex-first-test'
New-Item -ItemType Directory -Path $codexPracticeDir -Force | Out-Null
Set-Location -LiteralPath $codexPracticeDir
codex
macOS:
mkdir -p ~/Projects/codex-first-test
cd ~/Projects/codex-first-test
codex
フォルダーの信頼を確認する画面が出たら対象を確認します。Codexの入力欄で、次の質問を送ります。
READMEファイルの用途を3文で説明してください。ファイルの読み取りや変更はしないでください。
期待する結果は、エラーではなく説明文が返ることです。確認環境ではこの質問の中国語版に回答が返りました。ローカライズした質問を新たに実測したという意味ではありません。
5. デスクトップ版を追加します
公式セットアップページからOSに合うアプリを取得します。Windowsは案内されたインストーラーやStoreの手順を使います。キー保存前から起動していたアプリは、完全に終了して再起動してください。
CLIのセットアップ後も、アプリ自体のインストールは必要です。
現在の公式ページではアプリ全体が「ChatGPT desktop app」と案内されています。起動後にChatGPTの製品メニューから「Codex」を選びます。APIキーでも利用できますが、使える機能はログイン方式によって異なる場合があります。
Windowsのフォルダー選択で%USERPROFILE%\Projects\codex-first-testを開き、新しい会話で同じ短い質問を試します。
MacはAppleメニューの「このMacについて」でチップを確認します。公式ページの対応OS条件を読み、Apple silicon用またはIntel用を選びます。ダウンロードした.dmgはアプリケーションへドラッグし、.pkgなら案内に従ってインストールします。
自分のMacのチップに対応するパッケージを選びます。
Dockからの起動では.zshrcが自動で読み込まれません。Command+Qでアプリを終了し、ターミナルでキーの存在を確認したうえで実行します。
source ~/.zshrc
launchctl setenv OPENAI_API_KEY "$OPENAI_API_KEY"
アプリを起動し、フォルダー選択のCommand+Shift+Gから~/Projects/codex-first-testを開きます。この環境変数の受け渡しはログインセッション内の設定なので、ログアウトや再起動後は再実行します。CLIとアプリは同じローカルユーザー、標準設定場所を使う前提です。WSLは別環境として扱います。
6. つまずいた箇所だけを修正します
| 症状 | 確認する箇所 |
|---|---|
| PowerShellの実行ポリシーで起動できない |
codexの代わりにcodex.cmdを試します |
| npm導入後もMacでコマンドがない | 下記のPATHを一時追加します |
| 401 | キーの値、有効期限、接続先を確認します |
| 403 | 実際のエラー文とモデル権限、アカウント条件を照合します |
| CLIだけ成功する | アプリの再起動とキーの受け渡しを確認します |
| ファイルを保存できない | 作業フォルダーと権限を確認します |
export PATH="$PATH:$(npm config get prefix)/bin"
これで解決した場合だけ、nano ~/.zshrcで同じ行を保存します。API側のエラーは発生時刻を控え、利用ログと照合すると調べやすくなります。
ファイル操作は回答の受信とは別に確認します。CLIは/permissions、アプリは入力欄の下の権限設定を開きます。「Ask for approval」は作業範囲内の変更を許可し、範囲外では確認を求めるモードです。環境の上位ポリシーによって制限される場合があります。
操作位置を示す資料画像であり、ファイル保存の成功画面ではありません。
練習では、learning-checklist.mdに「CLI設定」「回答の受信」「ファイル編集」の3項目を未チェックのMarkdownタスクとして保存するよう依頼します。ExplorerまたはFinderで実ファイルを開き、次に最初の2項目だけをチェック済みにするよう依頼して差分を確認します。以前の確認環境では書き込みが読み取り専用ポリシーで拒否されたため、この操作の成功までは主張しません。
再現メモには「どこまで成功したか」を残すと便利です。バージョン表示、キーの読み込み、API回答、アプリの回答、ファイル変更を分ければ、接続エラーのたびに最初からインストールし直す必要がなくなります。





