iT邦幫忙

0

# 第一次安裝 Codex 就上手:Windows 新手下載與設定教學

  • 分享至 

  • xImage
  •  

第一次安裝 Codex 就上手:Windows 新手下載與設定教學

我把 Codex 的入門流程整理成這份教學:下載 Node.js、安裝 Codex CLI、設定 CrazyRouter,再建立一個能在瀏覽器按按鈕的網頁。下面從第一次下載開始,依序說明每個步驟。

1. 下載並安裝 Node.js

我開啟 Node.js 官方下載頁,選擇 LTS → Windows → Windows Installer(.msi)。在 Windows「設定 → 系統 → 關於」查看系統類型,選擇 x64 或 ARM64。

下載後在下載資料夾雙擊 MSI 檔。依序按 Next、接受授權條款,保留預設元件並確認包含 npm 和 Add to PATH,按 Install,完成後按 Finish。

我關閉舊終端機,從開始功能表開啟新的 PowerShell。只複製程式碼,不包含 PS 提示符,每行貼上後按 Enter。如果已經裝好 Node.js,就從下面兩行開始確認:

node --version
npm.cmd --version

Node.js LTS

2. 安裝 Codex CLI

npm.cmd install -g @openai/codex@latest
codex.cmd --version

我等安裝完成、提示符重新出現,再確認版本。版本號比截圖更新是正常的。

Codex CLI

3. 設定我的 CrazyRouter 連線

我使用自己的 CrazyRouter 帳號,並在控制台確認可以呼叫這裡設定的 gpt-5.6-sol。

CrazyRouter Codex 接入頁

我在自己的 CrazyRouter 控制台建立 API Key,用它來設定 Codex 的連線。

$codexKeySecure = Read-Host '請貼上 CrazyRouter API Key,然後按 Enter' -AsSecureString
$codexKeyPointer = [Runtime.InteropServices.Marshal]::SecureStringToBSTR($codexKeySecure)
try {
    $codexKeyPlain = [Runtime.InteropServices.Marshal]::PtrToStringBSTR($codexKeyPointer)
    if ([string]::IsNullOrWhiteSpace($codexKeyPlain)) { throw '沒有輸入 Key' }
    [Environment]::SetEnvironmentVariable('OPENAI_API_KEY', $codexKeyPlain.Trim(), 'User')
    [Environment]::SetEnvironmentVariable('OPENAI_BASE_URL', 'https://cn.crazyrouter.com/v1', 'User')
    $env:OPENAI_API_KEY = $codexKeyPlain.Trim()
    $env:OPENAI_BASE_URL = 'https://cn.crazyrouter.com/v1'
} finally {
    [Runtime.InteropServices.Marshal]::ZeroFreeBSTR($codexKeyPointer)
    $codexKeyPlain = $null
}

輸入時畫面可能沒有回顯,貼一次後直接按 Enter。下面只檢查有沒有值,不會印出 Key:

[bool]$env:OPENAI_API_KEY

4. 編輯 Codex 設定檔

先建立設定目錄並備份既有檔案:

$codexConfigDir = if ($env:CODEX_HOME) { $env:CODEX_HOME } else { Join-Path $env:USERPROFILE '.codex' }
New-Item -ItemType Directory -Path $codexConfigDir -Force | Out-Null
$codexConfigFile = Join-Path $codexConfigDir 'config.toml'
if (Test-Path -LiteralPath $codexConfigFile) { Copy-Item -LiteralPath $codexConfigFile -Destination ($codexConfigFile + '.bak.' + (Get-Date -Format 'yyyyMMdd-HHmmss')) }
notepad.exe $codexConfigFile

加入以下設定;env_key 是環境變數名字,不是實際 Key:

model = "gpt-5.6-sol"
model_provider = "crazyrouter"

[model_providers.crazyrouter]
name = "Crazyrouter"
base_url = "https://cn.crazyrouter.com/v1"
env_key = "OPENAI_API_KEY"
wire_api = "responses"

按 Ctrl + S 儲存,確認是 config.toml 而不是 config.toml.txt。若原檔已有同名欄位,修改原欄位,不要重複貼上同名 TOML。

config.toml 設定

圖三:env_key 只是變數名稱;公開畫面不可出現完整密鑰。

5. 用兩個小測試確認連線與寫檔

重新開啟 PowerShell,建立專用資料夾並啟動:

New-Item -ItemType Directory -Path "$env:USERPROFILE\CodexProjects\hello-codex" -Force
Set-Location "$env:USERPROFILE\CodexProjects\hello-codex"
Get-Location
codex.cmd --sandbox workspace-write --ask-for-approval on-request

若詢問是否信任目錄,先核對路徑是 hello-codex,再選信任並按 Enter。複核時第一次因未信任新目錄被只讀沙箱阻止寫入;完成信任與受限 Windows 沙箱設定後才成功。

先送最小連線任務:

請只回覆 CODEX_CONNECTION_OK。
不要讀取檔案、不要修改檔案、不要執行命令。

Codex 連線驗收

接著在同一個 Codex 視窗貼上:

請在目前練習目錄實際建立 index.html,不要只在聊天中輸出程式碼。
頁面標題是「我的第一個 Codex 網頁」,顯示「你好,Codex」。
加入「點擊打招呼」按鈕,按下後顯示「按鈕可以正常工作」。
CSS 和 JavaScript 都放在同一個 HTML 檔案,不使用外部圖片、字型、框架、CDN 或套件。
只建立或修改 index.html。若權限不允許寫檔,請明確說明,不要聲稱已建立。

輸入 /quit 回到 PowerShell,確認成果:

Test-Path .\index.html
Start-Process .\index.html

我在瀏覽器開啟 index.html,頁面顯示「你好,Codex」,點擊按鈕後顯示「按钮可以正常工作」。那次會話的收尾曾出現缺少原始上下文的英文提示,但已儲存的網頁仍能開啟並操作。

瀏覽器按鈕驗收

6. 錯誤先分層,不要亂重裝

現象 優先檢查 不要先做
node 找不到 Node.js、PATH、新終端機 改模型或 Key
.ps1 被阻擋 改用 .cmd 關掉全部腳本防護
401 Key 來源、有效期、Base URL 使用登入密碼
403 帳戶與模型權限、完整錯誤訊息 只憑狀態碼猜原因
404 / model not found Base URL、模型 ID 重裝 Node.js
能回答但不能寫檔 目錄信任、sandbox、目前路徑 開放所有權限
Test-Path 是 False Get-Location、檔名和副檔名 只相信聊天中的完成句

圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言