Codex CLI 在 Windows 上完全安装指南:WSL2、原生与国内接入

Codex CLI 在 Windows 上完全安装指南:WSL2、原生与国内接入

TL;DR — 在 Windows 上跑 OpenAI Codex CLI,2026 年的现状是:WSL2 仍是稳定首选,原生 Windows 已能用但官方仍标 experimental;npm 全局装 @openai/codex(要求 Node 22+),国内开发者把 base_url 指向 OpenAI 兼容网关(如 ofox.ai 的 gpt-5.3-codex),并在 ~/.codex/config.toml 里换一个不冲突的 model_provider ID。

WSL2 还是原生 Windows,怎么选

一句话:要稳就上 WSL2,要省事就用原生。

维度WSL2 + Ubuntu原生 Windows
官方支持一直稳0.130.0 起改善,仍标 experimental
安装步骤多一步装 WSL,环境地道npm install 后直接能跑
沙箱Linux Landlock/seccomp 成熟AppContainer 沙箱,仍在打磨
路径风格工程项目放 ~/projects 最顺C:\ 能跑,路径转义偶尔翻车
国内代理proxychains/clash 都装得起来走系统代理,比较干脆

习惯 PowerShell、不怎么写 Linux shell,原生够用;写过 zsh、跑过 Docker、装过 makefile,直接 WSL2,省后面一堆功夫。

方法一:WSL2 安装(推荐路径)

启用 WSL2

PowerShell 以管理员身份运行:

wsl --install -d Ubuntu
wsl --set-default-version 2

重启后从开始菜单打开 Ubuntu,第一次会让你设 Linux 账户。

家庭版 Windows 也能装 WSL2,但 BIOS 里的虚拟化必须打开。wsl --status 看当前内核版本,老的话跑一次 wsl --update

装 Node 22+

不要用 Ubuntu 自带的 apt install nodejs,版本太老。改用 nvm:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash
source ~/.bashrc
nvm install 22
nvm alias default 22

node -v 输出 v22.x 才算过关。Codex 0.130 要求 Node 22.0 以上,低于这个会在启动时报 ESM 加载错误。

安装 Codex CLI

npm i -g @openai/codex
codex --version

打印出 0.130.0 之类的版本号就 OK。

npm 太慢的解法

npm install 卡在 fetching metadata 时,把 registry 换掉:

npm config set registry https://registry.npmmirror.com

切完再装一次。

方法二:原生 Windows 安装

装 Node 22+

到 nodejs.org 下 22 LTS 的 MSI,一路下一步。装完打开 Windows Terminal(不是老 cmd):

node -v
npm -v

装 Codex

npm i -g @openai/codex
codex --version

如果报 EACCESEPERM,把 Windows Terminal 切成管理员模式再装。也可以用 fnm 让全局包落在用户目录,绕开权限问题:

winget install Schniz.fnm
fnm install 22
fnm default 22

Windows 沙箱注意

Codex 0.130 在原生 Windows 上跑 AppContainer 沙箱:默认禁止网络访问、限制工作目录之外的写入。第一次进某个项目它会弹授权,看清路径再确认,不要一路回车。

国内接入:把 Codex 指向 ofox.ai

直连 api.openai.com 在中国大陆很难稳定:登录态、IP 风控、支付身份层层卡,codex 频繁 401/403。常规做法是把 base_url 换成国内可达的 OpenAI 兼容网关。

ofox.ai 当前上架了 gpt-5.3-codex 这个针对编码场景调优的版本,协议兼容 Chat Completions,挂到 Codex CLI 直接能用。

拿 API Key

打开 ofox.ai 注册账号,控制台 → API Keys 创建一个 sk- 开头的 key。

改 config.toml

Codex 的配置文件路径:

  • WSL/Linux:~/.codex/config.toml
  • Windows:C:\Users\<你的用户名>\.codex\config.toml

文件不存在就新建,写入:

model = "openai/gpt-5.3-codex"
model_provider = "ofox"

[model_providers.ofox]
name = "Ofox AI"
base_url = "https://api.ofox.ai/v1"
env_key = "OPENAI_API_KEY"
wire_api = "responses"

几个细节:

  • model_provider 不能写 openai,那是保留 ID(连同 ollamalmstudio),自定义 provider 必须换名。
  • wire_apiresponses。Codex CLI 在 2026-02 已经把 wire_api = "chat" 标记弃用并从主分支移除,0.130.0 里写 chat 会先打印 Support for the "chat" wire API is deprecated and will soon be removed 然后拒绝发请求。ofox.ai 已经原生提供 /v1/responses,按 Responses API 走即可。
  • env_key 这一行决定 Codex 去读哪个环境变量取 key,按名字匹配,下面会设。

设环境变量

WSL/Linux 在 ~/.bashrc 末尾加:

export OPENAI_API_KEY="sk-你的-ofox-key"

source ~/.bashrc 生效。

Windows 在 PowerShell:

[Environment]::SetEnvironmentVariable("OPENAI_API_KEY", "sk-你的-ofox-key", "User")

关掉终端再开新窗口。

跑通验证

cd 你的项目目录
codex

启动后随便丢一句”写一个 Python 函数算斐波那契”,能正常返回代码块就通了。

更细的 provider 切换、profile 多套配置、按场景分流模型,参考之前发过的 Codex CLI 自定义 API 与模型配置进阶

常见报错速查

下面这些坑是 Windows 用户高频踩到的,按报错原文搜对应小节。

npm ERR! code EACCES / 权限拒绝

  • WSL/Linux:别用 sudo 装全局包。改 nvm,让 Node 落到 ~/.nvm/...,权限就不撞车了。
  • Windows:把 Windows Terminal 切到”以管理员身份运行”重装;或者换 fnm。

Error: Cannot find module ... ESM

Node 版本不够。node -v 看一下,<22 就升级。WSL 里 nvm install 22 && nvm use 22,Windows 重装 22 LTS。

codex 启动后 401 Unauthorized

九成是 key 没传到。三件事挨个查:

  1. echo $OPENAI_API_KEY(Windows PowerShell 是 $env:OPENAI_API_KEY)能打印值吗?
  2. config.toml 里 env_key 拼写对吗?字段是下划线,不是连字符。
  3. key 是不是过期或被删了?登 ofox 控制台对一下。

model not found404 The requested model does not exist

config.toml 里 model 名字跟网关侧对不上。ofox.ai 上 codex 模型的规范 ID 是带 openai/ 前缀的 openai/gpt-5.3-codex,全部小写、用连字符;不带前缀的 gpt-5.3-codex 是别名,多数情况下也认。直接:

curl -H "Authorization: Bearer $OPENAI_API_KEY" https://api.ofox.ai/v1/models | grep codex

看下网关当前给的 ID 是什么。

另外检查 wire_api 是否还停留在 chat——0.130.0 已经拒绝接受 chat,改成 responses 即可。

provider id 'openai' is reserved

model_provider 换成 ofox / proxy / relay 这类自定义名字。openai、ollama、lmstudio 是 Codex 内置保留的。

WSL 里访问 Windows 项目卡顿

把代码仓库放在 WSL 自己的 ext4 文件系统下(~/projects/foo),别放在 /mnt/c/...。跨文件系统跑测试会慢一个量级。

npm install 长时间无响应

国内网。先 npm config set registry https://registry.npmmirror.com;还不行就在 WSL 里挂代理:

export https_proxy=http://192.168.x.x:7890
export http_proxy=http://192.168.x.x:7890

IP 用 Windows 那边 ipconfig 看物理网卡的地址。

更全的报错码和上下游排查,可以再翻 AI API 报错大全

几个长期用得上的小习惯

  • 项目目录放 WSL 内部,VS Code 通过 vscode-server 反向连,编辑体验和原生 Linux 一样。
  • 不同项目写不同的 Codex profile,按业务切:写运营脚本走 gpt-5.3-codex,长上下文重构换旗舰版,一行命令切换。
  • Codex 把每次会话写到 ~/.codex/sessions/,定期清一下能省好几个 G。
  • 如果同时在用 Cursor、Windsurf、Claude Code,把它们的 base_url 都指向同一个网关,token 消耗在一个面板里看;详细对比见 2026 AI 编程工具大横评

写在最后

WSL2 + nvm + ofox 网关,是大陆开发者跑 Codex 最不折腾的一条路。原生模式现在能用,但每个 minor 版本都在变;要上生产,先在 WSL 里跑通,再考虑要不要迁。