最近不少台灣開發者都碰到同一個問題:Claude Code 確實強,但連線品質不太穩定。
常見狀況大概是這些:
如果你只是想要一個能穩定落地的 AI 程式開發工具,其實不用死磕 Claude Code。
Codex CLI 是目前很靠譜的替代方案。
它一樣是終端機裡的 coding agent,能讀專案、改程式碼、跑指令、修 bug、寫測試。再搭配 Crazyrouter 這類統一 API 閘道,還能把模型接入、成本和網路體驗一起解決掉。
這篇文章直接從實戰角度講清楚 4 件事:
目標讀者:在 Windows 上開發的工程師,之前沒裝過 Codex CLI。
Codex CLI 和 Claude Code 的核心用法很像:
開發者真正需要的是:
這個範圍內,Codex CLI 完全夠用。
Claude Code 系的工具很多時候偏 Unix-first。Windows 使用者常常卡在環境、權限、PATH、proxy 這些邊緣問題上。
Codex CLI 官方已經把 Windows 路線講得很清楚:
config.toml 統一設定很多人卡 Claude Code,不只是產品本身的問題:
Codex CLI 可以透過 openai_base_url 指向第三方相容介面,把模型來源、價格和網路體驗一起最佳化。
大家在意的不是「理論上誰更強」,而是:
從這個角度,Codex CLI + Crazyrouter 是一條更現實的路。
Codex CLI 是 OpenAI 開發的開源終端 AI 程式開發 agent,用 Rust 重寫,速度快、體積小。
它能做的事:
和瀏覽器聊天最大的差別:它直接在你的專案上下文裡工作,不是把程式碼複製貼上去問它。
| 方案 | 適合誰 | 推薦度 |
|---|---|---|
| WSL2 + npm | 前端 / Node / Python / 通用開發者 | ⭐⭐⭐(最推薦) |
| Windows 原生 npm | 純 Windows 工作流使用者 | ⭐⭐⭐ |
| 直接下載二進位檔 | 只想先試試看的人 | ⭐⭐ |
Windows 最容易翻車的不是 Codex 本身,而是環境沒打好。
winget install Microsoft.WindowsTerminal
winget install Git.Git
# 驗證
git --version
# 基礎設定
git config --global user.name "Your Name"
git config --global user.email "your@email.com"
git config --global init.defaultBranch main
git config --global core.autocrlf true
Codex CLI 需要 Node.js 22 以上。
winget install OpenJS.NodeJS.LTS
# 驗證
node --version # v22.x.x
npm --version # 10.x.x
管理員 PowerShell:
wsl --install
重新開機後,Ubuntu 會啟動並要求設定使用者名稱和密碼。
wsl
# 安裝 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
# 重開 shell 或 source
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
# 安裝 Node 22
nvm install 22
# 驗證
node --version
npm --version
npm i -g @openai/codex
codex --version
不要把專案放在 /mnt/c/... 下面跑 Codex。
mkdir -p ~/code && cd ~/code
git clone https://github.com/your/repo.git
cd repo
codex
原因:
/mnt/c 跨檔案系統 I/O 比較慢node --version
npm i -g @openai/codex
codex --version
如果找不到 codex 指令,通常是 npm 全域路徑沒進 PATH:
npm config get prefix
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";" + (npm config get prefix), "User")
重開終端機再試。
codex.exe
mkdir "$env:USERPROFILE\bin"
Move-Item "$env:USERPROFILE\Downloads\codex-windows-x64.exe" "$env:USERPROFILE\bin\codex.exe"
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";$env:USERPROFILE\bin", "User")
codex
# 第一次啟動會開瀏覽器引導登入
PowerShell:
# 暫時
$env:OPENAI_API_KEY = "sk-your-api-key"
# 永久
[Environment]::SetEnvironmentVariable("OPENAI_API_KEY", "sk-your-api-key", "User")
WSL/Bash:
export OPENAI_API_KEY="sk-your-api-key"
# 永久
echo 'export OPENAI_API_KEY="sk-your-api-key"' >> ~/.bashrc
source ~/.bashrc
這是這篇文章最關鍵的部分。
只用 OpenAI 官方 API 的話,你還是會遇到:
接上 Crazyrouter 後:
到 crazyrouter.com 註冊,在控制台建立 API Key。
設定檔位置:
%USERPROFILE%\.codex\config.toml
~/.codex/config.toml
openai_base_url = "https://crazyrouter.com/v1"
model = "gpt-4o"
approval_policy = "on-request"
sandbox_mode = "workspace-write"
[windows]
sandbox = "elevated"
環境變數:
PowerShell(永久):
[Environment]::SetEnvironmentVariable("OPENAI_API_KEY", "your-crazyrouter-key", "User")
WSL(永久):
echo 'export OPENAI_API_KEY="your-crazyrouter-key"' >> ~/.bashrc
source ~/.bashrc
PowerShell:
$env:OPENAI_BASE_URL = "https://crazyrouter.com/v1"
$env:OPENAI_API_KEY = "your-crazyrouter-key"
codex
WSL:
OPENAI_BASE_URL="https://crazyrouter.com/v1" OPENAI_API_KEY="your-crazyrouter-key" codex
實用設定範例:
openai_base_url = "https://crazyrouter.com/v1"
model = "gpt-4o"
approval_policy = "on-request"
sandbox_mode = "workspace-write"
model_reasoning_effort = "medium"
web_search = "cached"
cli_auth_credentials_store = "keyring"
[windows]
sandbox = "elevated"
sandbox_private_desktop = true
| 欄位 | 說明 |
|---|---|
openai_base_url |
API 端點 |
model |
預設模型 |
approval_policy |
on-request(每次確認)/ untrusted(不信任專案唯讀)/ never(全自動) |
sandbox_mode |
read-only / workspace-write(預設)/ danger-full-access |
web_search |
cached(預設)/ live / disabled |
.codex/config.toml
~/.codex/config.toml
/etc/codex/config.toml
| 模式 | 檔案寫入 | 網路 | 適用場景 |
|---|---|---|---|
read-only |
❌ | ❌ | 只看程式碼 |
workspace-write(預設) |
✅ 僅工作目錄 | ❌ | 日常開發 |
danger-full-access |
✅ 全部 | ✅ | 完全信任/CI |
| 策略 | 行為 | 適用場景 |
|---|---|---|
on-request(預設) |
執行指令前詢問 | 日常開發 |
untrusted |
不信任專案唯讀 | 開啟陌生 repo |
never(--full-auto) |
全自動 | CI/CD |
# 推薦的日常組合
codex --sandbox workspace-write --ask-for-approval on-request
# 全自動(小心使用)
codex --full-auto
PowerShell:
winget install Python.Python.3.12
python --version
WSL:
sudo apt update && sudo apt install -y python3 python3-pip python3-venv
npm i -g pnpm
pnpm --version
PowerShell:
powershell -c "irm bun.sh/install.ps1 | iex"
WSL:
curl -fsSL https://bun.sh/install | bash
因為 Codex 不只是回答問題,它會真的執行指令:
pnpm install
pytest
bun test
npm run lint
環境沒裝好,Codex 再聰明也跑不動你的專案。
最簡單:在整合終端機裡跑 codex。
WSL 開發:
cd ~/code/your-project
code .
VS Code 會自動以 WSL 模式開啟。
Cursor 本身是 AI IDE,但你一樣可以在它的終端機裡跑 Codex CLI。兩者獨立計費。
Alt+F12 開終端面板,直接跑 codex。
WSL 整合:Settings → Tools → Terminal → Shell path 改成 wsl.exe --distribution Ubuntu。
codex: command not foundnpm 全域路徑沒進 PATH。
npm config get prefix
# 把顯示的路徑加到 PATH
# WSL
nvm install 22 && nvm use 22
# Windows
winget upgrade OpenJS.NodeJS.LTS
# 管理員 PowerShell
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# 重新開機後
wsl --set-default-version 2
/mnt/c/ 下很慢把專案移到 Linux 檔案系統:
cp -r /mnt/c/Users/you/Projects/my-app ~/code/my-app
確認:
openai_base_url 是 https://crazyrouter.com/v1
Codex 靠 .git 辨識專案根目錄。
git init
| 任務 | 推薦模型 | 原因 |
|---|---|---|
| 日常寫 code | gpt-4o |
速度快、品質好 |
| 輕量小任務 | gpt-4o-mini |
超便宜 |
| 大型重構 | claude-sonnet-4-20250514 |
長上下文理解強 |
| 中文文件 | deepseek-chat |
中文好 + 便宜 |
| 批次處理 | gemini-2.0-flash |
快又便宜 |
用 Profiles 快速切換:
openai_base_url = "https://crazyrouter.com/v1"
model = "gpt-4o"
[profiles.cheap]
model = "gpt-4o-mini"
[profiles.smart]
model = "claude-sonnet-4-20250514"
model_reasoning_effort = "high"
[profiles.tw]
model = "deepseek-chat"
codex --profile cheap # 省錢模式
codex --profile smart # 複雜任務
codex --profile tw # 中文專案
winget install Microsoft.WindowsTerminal
winget install Git.Git
winget install OpenJS.NodeJS.LTS
npm i -g @openai/codex
[Environment]::SetEnvironmentVariable("OPENAI_API_KEY", "your-crazyrouter-key", "User")
建立 %USERPROFILE%\.codex\config.toml:
openai_base_url = "https://crazyrouter.com/v1"
model = "gpt-4o"
approval_policy = "on-request"
sandbox_mode = "workspace-write"
[windows]
sandbox = "elevated"
重開終端機:
codex
wsl --install
進 WSL 後:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
# 重開 shell
nvm install 22
npm i -g @openai/codex
echo 'export OPENAI_API_KEY="your-crazyrouter-key"' >> ~/.bashrc
mkdir -p ~/.codex
cat > ~/.codex/config.toml << 'EOF'
openai_base_url = "https://crazyrouter.com/v1"
model = "gpt-4o"
approval_policy = "on-request"
sandbox_mode = "workspace-write"
EOF
source ~/.bashrc
codex
如果你最近被 Claude Code 的連線不穩定搞得很煩,不用繼續把時間浪費在不確定性上。
Codex CLI + Crazyrouter 這套組合:
與其追「理論上最強的工具」,不如選「今天就能穩定用的工具」。對開發者來說,這才是真正有價值的事。
註冊 Crazyrouter 取得 API Key:crazyrouter.com
Codex CLI 官方文件:developers.openai.com/codex/cli
如果這篇有幫到你,請按個讚 👍