Codex 是 OpenAI 出的编程助手,在终端里运行:它能读你的代码、改文件、跑命令和测试,你用中文告诉它要做什么就行。它本身是开源的命令行工具,背后调用的是 OpenAI 的模型。
国内用户卡住的地方通常不在 Codex 本身,而在模型从哪来。这篇文章讲清楚国内怎么把 Codex 用起来,每一步都在本站实际跑过,最后整理了实测中遇到的报错原文和解决办法。
- 安装 Codex:
npm install -g @openai/codex - 在中转站注册、充值,创建一个 API 密钥
- 写好 Codex 的配置文件
config.toml,把密钥放进环境变量(也可以用 CC Switch 一键导入) - 打开终端,运行
codex
国内用 Codex 有哪几种方式
- 用 ChatGPT 账号登录:Codex 默认的方式。OpenAI 的服务不面向中国大陆,需要海外网络和能正常使用的 ChatGPT 账号。
- 用 OpenAI 官方 API 密钥:同样需要海外网络,充值要用海外信用卡。
- 用 API 中转站:Codex 支持在配置文件里自定义模型服务商,把请求发到中转站。中转站在国内直连,用支付宝按量付费。
下面讲的是第三种。配置用的是 Codex 官方支持的写法,不需要改 Codex 的代码,也不会影响你原来的 ChatGPT 登录。
第一步:安装 Codex
Codex 通过 npm 安装,需要先装好 Node.js(Codex 要求 16 或更新的版本)。然后在终端里运行:
npm install -g @openai/codex # 国内下载慢的话,换成 npmmirror 镜像(我们确认过镜像上有最新版) npm install -g @openai/codex --registry=https://registry.npmmirror.com # 装好后看一下版本 codex --version
写这篇文章时最新版是 0.162.1。建议用 0.155 或更新的版本,旧版的模型列表里看不到 GPT-6 系列。
第二步:注册并创建 API 密钥
第三步:配置 Codex
方法一:CC Switch 一键导入(推荐)
如果你装了 CC Switch,在「API 密钥」页面点密钥右侧的「⋯」,选「一键导入 CC Switch」,选好默认模型和推理强度后导入即可。模型列表、推理强度、上下文窗口、自动压缩都会自动配好。详细步骤见一键导入说明。
方法二:手动写配置文件
Codex 的配置文件在 ~/.codex/config.toml(Windows 是 %USERPROFILE%\.codex\config.toml),没有就新建一个,写入:
model_provider = "queqiao"
model = "gpt-6.1-sol"
model_reasoning_effort = "low"
model_context_window = 872000
model_auto_compact_token_limit = 784800
[model_providers.queqiao]
name = "鹊桥 API"
base_url = "https://queqiaoapi.com/v1"
wire_api = "responses"
env_key = "QUEQIAO_API_KEY"
model_catalog_url = "https://queqiaoapi.com/site-assets/codex/models.json"
supports_websockets = false
stream_idle_timeout_ms = 600000
capabilities = { remote_compaction = "unsupported" }
几个关键的地方:env_key 表示密钥从环境变量 QUEQIAO_API_KEY 读,不写在文件里;model_catalog_url 让 Codex 的模型列表只显示本站能用的模型;stream_idle_timeout_ms 放宽到 10 分钟,避免高推理强度长时间思考时被当成断线。每一项的详细说明见使用教程。
然后把密钥存进环境变量:
# Windows(PowerShell 或 CMD),运行后要关掉终端重新打开才生效 setx QUEQIAO_API_KEY "sk-你的密钥" # macOS / Linux(用 bash 的把 ~/.zshrc 换成 ~/.bashrc) echo 'export QUEQIAO_API_KEY="sk-你的密钥"' >> ~/.zshrc && source ~/.zshrc
第四步:跑起来,确认接通了
先用非交互模式问一句,最快确认配置对不对:
codex exec --skip-git-repo-check "用一句话解释 Python 的 GIL 是什么。"
我们实测的回答是:“Python 的 GIL(全局解释器锁)是一把确保同一时刻只有一个线程执行 Python 字节码的锁,因此限制了多线程程序的 CPU 并行能力。”能看到类似的回答,就说明接通了。之后进到项目目录运行 codex,就是平常的交互界面;在里面输入 /model 可以换模型和推理强度。
实测:用 Codex 修一个小 bug 花了多少钱
我们准备了一个有 bug 的小函数:average 求平均值,循环从第 2 个数开始算,漏掉了第 1 个数,空列表还会除以零,配套的测试跑不过。然后让 Codex 自己修:
codex exec --skip-git-repo-check -s workspace-write -c model_reasoning_effort='"medium"' \ "calc.py 里的 average 函数有 bug,找出来修好,然后运行 python test_calc.py 确认测试通过。"
Codex 先读了代码和测试,指出“当前循环漏掉首项,空列表还会除以零”,改好代码后自己运行测试,输出 all tests passed。整个过程的用量(来自本站的使用日志):
| 任务 | 请求 | 输入 token (命中缓存) | 输出 | 费用 |
|---|---|---|---|---|
| 问一句话 (low) | 1 | 17,624 (8,960) | 45 | ¥0.008 |
| 修 bug 并跑测试 (medium) | 7 | 128,316 (102,524) | 779 | ¥0.031 |
两点值得注意:
- 哪怕只问一句话,输入也有一万七千多 token。这是 Codex 每次请求都会带上的系统提示和工具说明,用任何服务商都一样。
- 缓存让多轮任务很便宜。修 bug 的 7 次请求里,80% 的输入命中了缓存,命中部分按输入价的 5%~10% 计费,所以 12.8 万 token 的输入只花了 3 分钱左右。本站会把同一个会话固定在同一条线路上,缓存才能持续命中。
每次请求从发出到返回大约 2~5 秒。费用按本站当前价格计算,具体单价见模型与价格。
Windows 用户:先把沙箱设置好
Codex 执行命令时会放进沙箱,防止它改到项目目录以外的文件。我们第一次在 Windows 上用非交互模式(codex exec)跑上面的任务时,没有设置沙箱,Codex 想执行的每一条命令都被拒绝了(日志里是 blocked by policy):它读不了文件也跑不了测试,来回试了 12 次请求、花了约 7 分钱,最后什么也没改成。
在 config.toml 末尾加上下面两行就好了:
[windows] sandbox = "elevated"
elevated 是 OpenAI 官方推荐的方式,第一次使用需要管理员批准(会弹出 Windows 的确认框)。如果批准不了(比如公司电脑),改成 sandbox = "unelevated",隔离稍弱一些。我们用 unelevated 重跑,同一个任务就顺利完成了。官方说明见 Codex Windows 沙箱文档。
setx 设置环境变量后,要关掉终端重新打开才生效;在 Windows PowerShell 5.1 里 curl 不是真正的 curl,测试接口时要写成 curl.exe。推理强度怎么选
推理强度决定模型回答前“想多久”,本站的模型支持 low、medium、high、xhigh、max 五档。档位越高越慢、输出 token 越多,也就越贵。
- low:上面配置里的默认值。日常改代码、写小功能、解释代码,速度快、花费少。
- medium / high:不好定位的 bug、需要想清楚步骤的改动。
- xhigh / max:复杂的设计和难题,愿意多等一会儿。
我们实测过同一道需要一步步推理的题:low 档几乎不思考,答错了;从 medium 开始就答对了,档位越高推理 token 越多。详细数据见怎么判断你用的大模型是不是满血。在 Codex 里输入 /model 就能随时切换,也可以在命令后面加 -c model_reasoning_effort='"high"' 只对这一次生效。
常见报错和解决办法
下面的报错原文都是我们实测时 Codex 显示的(Codex 遇到网络和服务端错误会先自动重试 5 次,显示 Reconnecting... 1/5,重试都失败才报错)。
没读到密钥。检查环境变量名是不是和配置里的 env_key 一样;Windows 用 setx 设置后要重新打开终端。
密钥不对:复制时少了字符、多了空格,或者这个密钥已经删除了。回到「API 密钥」页面重新复制完整的密钥(以 sk- 开头)。
账户余额不够了,到钱包页充值即可,到账后马上能继续用。
账户里有钱,但这个密钥自己设了额度上限,已经用完了。在「API 密钥」页面编辑这个密钥,调高额度或者设为不限额度。
模型名写错了(这里我们故意写了一个本站没有的 gpt-5)。模型名要和价格页上的一致;按上面的配置写了 model_catalog_url,在 /model 里直接选就不会错。
上游这个模型暂时太忙(这条是本站日志里记录的上游原文)。最近 3 天本站记录到的这类报错几乎都出现在 gpt-5.6-luna 上。Codex 会自动重试;一直不行就用 /model 换成 gpt-6.1-sol 或 gpt-5.6-terra。
回答到一半连接断了。先确认配置里写了 stream_idle_timeout_ms = 600000(高推理强度可能要想好几分钟才开始输出);再检查是不是开着代理软件——本站在国内直连,不需要代理,代理反而容易在长连接上断开。
启动时的警告,不是报错。较旧的 Codex 不认识这一项(我们在 0.159.3 上看到过,0.162.1 没有),可以忽略,或者升级 Codex。
常见问题
会影响我原来的 ChatGPT 登录吗?
不会。密钥放在单独的环境变量里,不会覆盖 Codex 保存的 ChatGPT 登录。想换回官方,把配置开头的 model_provider 和 model 两行删掉,或者在前面加 # 注释掉即可。
上下文有多长?
本站 GPT 模型的上下文最长 87.2 万 token,上面的配置已经按这个写好,用到 90% 时 Codex 会自动压缩较早的对话。单次请求的输入超过 27.2 万 token 时,这次请求按长上下文价格计费。
除了 Codex,还能用在哪?
本站兼容 OpenAI 接口(Chat Completions 和 Responses)和 Anthropic 接口(Messages),除了 GPT 也能用 Claude 模型。Claude Code、Cherry Studio 以及大多数支持自定义接口的工具都能用,配置方法见使用教程;Claude Code 的完整步骤见Claude Code 国内怎么用。