☰
HoRain云--Codex 命令大全:exec/apply/resume 实战手册与 TaoToken 接入
2026/10/5 21:30:35 网站建设 项目流程

1. Codex CLI 命令体系与真实项目里的批量执行场景

Codex CLI 是 OpenAI 官方推出的命令行编程助手,能直接在终端里读写项目文件、跑测试、改代码。它最核心的三个子命令是exec、apply、resume:exec负责非交互式一次性执行任务,apply把生成的差异落到本地文件,resume用来恢复之前的会话继续跑。适合谁?适合需要在 CI/CD 里批量跑代码修复、或者任务跑到一半中断了想接着跑的开发者。

很多人第一次用 Codex 只会在交互界面里聊天,一旦遇到「批量处理 20 个文件」「跑了一半断网了」这种场景就抓瞎。我试过在一个 30 多个模块的仓库里用codex exec批量修 lint 错误,中途因为终端关掉导致会话丢失,后来靠resume才把上下文接回来。这套组合拳的价值就在这里:把 Codex 从「聊天玩具」变成「可编排的工程工具」。

本文聚焦三件事:第一,exec/apply/resume在真实项目里的组合用法和可复制命令清单;第二,auth.json与 Base URL 的配置写法,把 endpoint 指向 TaoToken 后如何验证连通性;第三,常见报错(401、local proxy failed、reading choices、OAuth 失败)的排查动作。全程给命令、给配置、给结果,你跟着敲就能跑通。

先明确一个概念:Codex CLI 的「会话」是有状态的。交互模式下你聊的每一轮都会存进本地会话文件,exec默认也会创建一个会话,resume就是把这些会话重新加载。理解这一点,后面所有命令都好懂了。

2. TaoToken 前置准备:auth.json 与 Base URL 配置实操

Codex CLI 默认走 OpenAI 官方 endpoint,但你可以通过配置文件把请求转发到兼容 OpenAI 协议的服务上。TaoToken 提供的就是这种兼容接口,官网在 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 根地址是 https://taotoken.net/api 。下面把配置步骤拆开讲。

第一步,拿到 API Key。登录后进入控制台,在 API Keys 页面创建一个新 Key,复制保存。这个 Key 就是后面auth.json里的OPENAI_API_KEY值。注意别把 Key 提交到 Git 仓库,建议放环境变量或本地配置文件。

第二步,找到 Codex 的配置目录。不同系统路径不一样:

系统配置目录
macOS / Linux~/.codex/
Windows%USERPROFILE%\.codex\

目录里通常有auth.json和config.toml两个文件。auth.json存凭证,config.toml存模型和 provider 配置。

第三步,写auth.json。内容是一个 JSON 对象,字段名必须和 Codex 读取的一致:

{ "OPENAI_API_KEY": "sk-你的TaoToken密钥", "OPENAI_BASE_URL": "https://taotoken.net/api" }

注意OPENAI_BASE_URL结尾不要带/v1,Codex 会自己拼接路径。如果你之前配过官方地址,这里直接替换即可。

第四步,写config.toml,指定模型和 provider。Codex 支持自定义 provider,把 base_url 指到 TaoToken:

model = "gpt-5" model_provider = "taotoken" [model_providers.taotoken] name = "TaoToken" base_url = "https://taotoken.net/api" env_key = "OPENAI_API_KEY" wire_api = "chat"

这里wire_api = "chat"表示走 Chat Completions 协议,env_key告诉 Codex 从哪个环境变量读 Key。如果你把 Key 直接写在auth.json里,env_key可以保留,Codex 会优先读 auth.json。

第五步,验证配置是否生效。运行:

codex --version codex --help

然后进交互界面敲/status,看当前 provider 和 base_url 是不是 TaoToken。如果显示的还是官方地址,说明config.toml没被读到,检查文件路径和 TOML 语法。

这一步做完,Codex 的所有请求都会走 TaoToken。接下来exec、apply、resume就能正常用了。如果你更习惯用 Coding Plan 做长期编码任务,可以在控制台里看套餐说明,这里不展开。

3. exec / apply / resume 可复制配置与命令清单

这一节是全文的核心,把三个子命令的完整用法和组合场景列清楚。所有命令都可以直接复制到终端跑。

3.1 exec 非交互式执行

exec是最适合脚本化的命令,跑完就退出,不进入交互界面。

# 基本用法:执行单次任务 codex exec "更新所有依赖并运行测试" # 全自动模式,不需要人工确认每一步 codex exec --full-auto "修复所有 lint 错误" # 静默模式,减少输出,适合 CI 日志 codex exec -q "生成 API 文档" # 指定工作目录 codex exec --cwd /path/to/project "重构 utils 目录" # 指定模型 codex exec -m gpt-5 "给所有函数补上类型注解"

在 GitHub Actions 里的写法:

- name: Auto-fix lint run: | npm install -g @openai/codex codex exec --full-auto "fix all eslint errors" env: OPENAI_API_KEY: ${{ secrets.TAOTOKEN_KEY }} OPENAI_BASE_URL: https://taotoken.net/api

注意 CI 环境里没有交互终端,必须用--full-auto或-q,否则 Codex 会卡在等待确认。

3.2 apply 应用差异

apply把 Codex 生成的最新差异落到本地文件。它有个别名codex a。

# 应用最新差异 codex apply # 别名 codex a

典型场景:你在交互界面里让 Codex 改了几个文件,它生成了 diff 但还没写入。这时用codex apply一次性落盘。如果 diff 有冲突,Codex 会提示你手动处理。

3.3 resume 恢复会话

resume用来接续之前的会话,断点续跑的关键。

# 从会话选择器里挑一个恢复 codex resume # 直接恢复最近一次会话 codex resume --last # 从指定文件恢复 codex resume --file session.json

配合/export和/load使用更灵活:在交互界面里/export session.json导出会话,之后codex resume --file session.json就能在任何机器上接着跑。

3.4 组合用法:批量执行 + 断点续跑

真实项目里最常见的组合是这样:

# 第一步:批量跑任务,导出会话 codex exec --full-auto "修复所有 TypeScript 类型错误" codex exec "运行测试并生成报告" # 第二步:如果中途中断,恢复最近会话 codex resume --last # 第三步:确认改动后应用差异 codex apply

如果你要跑一个长任务,建议先/export存一份会话,再resume --file恢复,这样即使换机器也不丢上下文。

3.5 交互界面内置斜杠命令速查

命令说明
/help查看所有可用命令
/model切换模型,如/model gpt-5
/approvals切换审批模式
/clear清空当前对话上下文
/exit或/quit退出
/export session.json导出会话
/load session.json加载会话
/history查看对话历史
/undo撤销上一次文件修改
/diff查看待确认的变更差异
/status查看配置状态和账号信息

这些斜杠命令和子命令配合用,效率会高很多。比如先/diff看改动,确认没问题再codex apply。

4. 连通性验证与成功结果确认

配置写完不能直接信,得验证请求真的走到了 TaoToken。这一节给完整的验证步骤和预期结果。

4.1 最小验证:跑一条 exec

codex exec -q "输出当前目录的文件列表"

预期结果:终端打印出文件列表,没有报错。如果看到401 Unauthorized,说明 Key 不对;如果看到local proxy failed,说明 base_url 或网络有问题。

4.2 检查 /status

进交互界面:

codex

然后敲:

/status

预期输出里应该包含:

Provider: taotoken Base URL: https://taotoken.net/api Model: gpt-5

如果 Provider 显示的是openai而不是taotoken,说明config.toml里的model_provider没生效,检查拼写。

4.3 用 curl 直接验证 endpoint

绕过 Codex,直接测 API 是否通:

curl -s https://taotoken.net/api/chat/completions \ -H "Authorization: Bearer sk-你的密钥" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-5", "messages": [{"role": "user", "content": "ping"}], "max_tokens": 10 }'

预期返回一个 JSON,里面有choices数组。如果返回{"error": ...},看 error 里的 message 定位问题。

4.4 验证 resume 能接回上下文

# 先跑一个任务 codex exec "记住数字 42" # 恢复会话 codex resume --last

在恢复的会话里问「我刚才让你记住什么」,如果回答 42,说明会话恢复成功。

4.5 成功结果的判断标准

三个信号说明配置完全正确:第一,codex exec能正常返回内容不报错;第二,/status显示 provider 是 taotoken;第三,resume --last能接回之前的上下文。三个都满足,就可以放心在项目里用了。

5. 常见报错排查:401 / local proxy failed / reading choices / OAuth

这一节对照真实报错,给排查动作。每个报错都按「现象 → 原因 → 动作」写。

5.1 401 Unauthorized

现象:codex exec返回401 Unauthorized或invalid api key。

原因:Key 不对、Key 过期、或者auth.json没被读到。

排查动作:

# 检查 auth.json 是否存在 cat ~/.codex/auth.json # 检查环境变量是否覆盖了配置 echo $OPENAI_API_KEY

如果环境变量里有旧的官方 Key,会覆盖auth.json。清掉环境变量再试:

unset OPENAI_API_KEY codex exec -q "test"

5.2 local proxy failed

现象:报错local proxy failed或connection refused。

原因:base_url 写错、网络不通、或者本地有代理拦截。

排查动作:

# 直接 curl 测 endpoint curl -v https://taotoken.net/api/chat/completions

如果 curl 也不通,检查config.toml里的base_url是不是https://taotoken.net/api,结尾别多写/v1。如果 curl 通但 Codex 不通,检查是否有环境变量HTTP_PROXY指向了失效的本地代理,清掉:

unset HTTP_PROXY HTTPS_PROXY

5.3 reading choices 报错

现象:error reading choices或unexpected response format。

原因:返回的 JSON 结构不符合预期,通常是wire_api配错了。

排查动作:检查config.toml里的wire_api。如果服务走 Chat Completions 协议,写chat;如果走 Responses 协议,写responses。TaoToken 的/api根路径兼容 Chat Completions,所以:

wire_api = "chat"

改完重启 Codex 再试。

5.4 OAuth 失败

现象:OAuth token exchange failed或login required。

原因:Codex 尝试走 OAuth 登录流程,但你用的是 API Key 模式。

排查动作:确保auth.json里有OPENAI_API_KEY字段,并且config.toml里指定了env_key。如果 Codex 仍然弹登录,运行:

codex logout

然后重新用 API Key 模式启动。不要走codex login的 OAuth 流程,那是给官方账号用的。

5.5 报错速查表

报错最可能原因第一动作
401 UnauthorizedKey 错或环境变量覆盖cat ~/.codex/auth.json
local proxy failedbase_url 错或代理拦截curl -v https://taotoken.net/api
reading choiceswire_api 配错改成chat
OAuth failed走了登录流程codex logout后用 Key

5.6 排查通用思路

遇到任何报错,先做三件事:第一,codex --version确认版本;第二,/status看当前配置;第三,curl直接测 endpoint。这三步能定位 80% 的问题。剩下的看报错关键词,对照上面的表。

6. 把 Codex 接入 TaoToken 后的长期用法与 CTA

配置跑通只是开始,真正提升效率的是把exec/apply/resume嵌进日常工作流。给你几个我实测下来好用的模式。

模式一:CI 里自动修 lint。在 GitHub Actions 里加一个 job,用codex exec --full-auto跑 eslint 修复,失败就resume --last重试。这样每次 PR 都能自动清理格式问题。

模式二:本地批量重构。把要改的文件列表喂给codex exec,配合--cwd指定目录,一次跑完。改完用codex apply落盘,/diff确认。

模式三:长任务断点续跑。跑大任务前先/export session.json,中断后codex resume --file session.json接回来。换机器也能继续。

如果你需要长期跑编码任务或 Agent 流程,可以看 Coding Plan 的套餐,地址是 https://taotoken.net/api 对应的控制台里能找到。验证模型效果的话,直接用模型对话页面测几条 prompt 就行。接入文档在 https://taotoken.net/api 的 doc 路径下,API Keys 在 console 里管理。

最后提醒一句:auth.json和config.toml别提交到 Git,用.gitignore排除~/.codex/或者把 Key 放环境变量。跑exec前先codex --version确认版本,不同版本的参数名可能微调。遇到报错先curl测 endpoint,再对照第 5 节的表排查。这套流程跑顺了,Codex 就能真正变成你项目里的自动化助手。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询