Skip to content
SuperToken 文档 下载 Codex 整本 PDF

Codex 故障排除与速查

排错先保存原始症状,再按安装、工作区、配置、权限、网络和外部服务逐层缩小范围。不要用扩大权限掩盖配置错误。

核对日期 2026-07-15 · 当前实测 CLI 0.144.3

先运行这组只读检查

bash
codex --version
codex doctor --summary
git status --short --branch
pwd

需要保存脱敏诊断:

bash
codex doctor --json > codex-doctor.json

分享前仍要人工检查路径、用户名、仓库名和环境信息;“redacted”不等于可以直接公开整份文件。

按症状查找

症状先检查不要先做
codex 找不到which codex、安装来源、shell PATH、重开终端同时用 npm 和 Homebrew 反复安装
登录或认证失败codex login、账号类型、系统时间、代理和组织策略把 Token 粘到聊天或截图里
打开了错误项目App 项目路径、CLI pwdgit rev-parse --show-toplevel--add-dir 开放更大范围来“找文件”
配置没有生效CODEX_HOME、用户/项目配置层、--strict-config同时修改所有层
权限弹窗太多当前 sandbox、approval、Rules 和动作原因直接切危险全权限
命令在终端能跑,Codex 里不能shell、PATH、Local Environment、工作目录把个人 shell 配置全部注入任务
网络请求失败sandbox、approval、目标域名、代理、组织策略开放无限网络或输出代理凭据
MCP 显示失败codex mcp list、启动命令、认证、作用域、服务日志重复添加同名服务
Review 不出现当前产品是否为 Codex、项目是否是 Git 仓库初始化 Git 前不看已有文件
Worktree 缺文件tracked 状态、setup、.gitignore.worktreeinclude把所有忽略文件和密钥复制过去
Cloud 与本机结果不同基线、setup、运行时、网络和环境变量名假设 Cloud 是本机镜像

安装与 PATH

bash
which codex
codex --version
npm list -g @openai/codex --depth=0
brew list --cask codex

只保留你实际选择的安装渠道。更新后版本仍旧时,检查 which codex 指向的路径是否来自另一个 Node 版本管理器或旧安装。

目录与 Git 状态

bash
pwd
git rev-parse --show-toplevel
git status --short --branch

如果 pwd 在仓库子目录,而任务需要整个仓库,可以用 -C 明确根目录。只有确实跨仓库共享包时才使用 --add-dir

发现已有修改时:

text
不要修改。先区分当前 diff 中哪些改动在本次会话开始前就存在,哪些是你产生的。不要还原任何无法确认所有者的内容。

配置解析与作用域

bash
codex --strict-config
codex -c 'approval_policy="on-request"' -s read-only

一次性覆盖能帮助判断问题来自配置还是程序本身。按真实优先级从高到低检查:CLI flags 与 -c > 受信任项目中离当前目录最近的 .codex/config.toml > 选中的 profile > 用户 $CODEX_HOME/config.toml > 系统配置 > 内建默认值。

管理员 requirements.toml 与工作区策略是约束,不是普通覆盖层;即使高优先级配置请求了某个值,管理员仍可禁止它。未信任项目不会加载项目 .codex 配置、Hooks 或 Rules。

不要在排错记录中贴完整配置;保留相关键并遮盖 endpoint、路径和凭据。

Approval 与 Sandbox

权限被拒绝时先读失败信息:是文件不在 writable root、网络被禁、命令需要审批,还是组织策略禁止。

只读复现:

bash
codex -s read-only -a untrusted

日常开发基线:

bash
codex -s workspace-write -a on-request

如果某动作仍失败,解释它为什么需要更大范围,并只增加对应目录或规则。不要把 danger-full-access 当诊断开关,因为它会同时改变太多变量并扩大风险。

网络与代理

检查顺序:

  1. 任务是否真的需要网络。
  2. 当前 surface 是 Local、Worktree 还是 Cloud。
  3. sandbox 和 approval 是否允许网络动作。
  4. 组织是否限制目标域名或开发者模式。
  5. 代理是否只在交互 shell 中设置,App/IDE 是否读取到。
  6. 目标服务自身是否需要登录、VPN 或额外权限。

本地 workspace-write 中 spawned commands 默认不能联网。确需命令网络时使用 [sandbox_workspace_write] network_access = true,不要直接改成全权限。Web search 是独立控制面:普通本地任务默认 cached--searchweb_search = "live" 才会取实时结果,而且不会为每次搜索单独请求审批;--yolo 或其他 full-access sandbox 设置则默认 live。Browser、apps/connectors 和 Cloud agent 网络也分别受自己的设置控制。

不要让 Codex 输出代理 URL 中的用户名、密码或 Token。能用允许域名解决时,不开放任意网络。

MCP

bash
codex mcp list
codex mcp --help

逐项确认:

  • 名称与作用域是否正确。
  • stdio 启动命令能否在同一环境独立运行。
  • HTTP endpoint 是否可达,认证是否过期。
  • App/IDE 是否需要重启或新任务才能读取新配置。
  • 工具是否被组织策略、插件状态或当前任务权限禁用。

先用无副作用查询验证连接,再尝试写操作。

IDE 与 App 上下文不同

  1. 确认 App 和 IDE 打开的是同一真实路径,而不是同名 Worktree。
  2. 确认两个 surface 使用预期登录、CODEX_HOME 和受信任项目。
  3. IDE 通过 chatgpt.addToThread / chatgpt.addFileToThread 明确加入上下文;不要假设 App 自动得到 IDE 的选区、未保存内容或活跃任务。
  4. 每次切换入口后重新报告路径、Git HEAD、diff 和完成标准。
  5. 重启扩展或 App 后新建最小测试任务,判断问题来自历史任务还是配置层。

Worktree 与 Handoff

查看 Git worktree:

bash
git worktree list
git status --short --branch

错误 branch is already used by worktree 表示同一分支已在另一个 worktree checkout。使用 App 的 Handoff,或给两个工作区使用不同分支;不要强行删除仍在使用的 worktree 元数据。

依赖缺失时优先修 Local Environment setup。忽略文件确需复制时只列最小 .worktreeinclude,并检查 secret 生命周期。

Cloud

要求任务先输出环境事实:

text
不要修改。报告当前提交、操作系统、运行时版本、依赖状态、可用验证命令、环境变量名称和网络限制。不要输出 secret 值。

对比本机与 Cloud:基线提交、锁文件、setup 输出、运行时、网络、时区和外部服务 endpoint。先解决环境差异,再判断代码是否有问题。

会话开始跑偏

使用短指令恢复控制:

text
停下,不要继续修改。把当前内容分为已验证事实、仍是推测、已产生的 diff 和下一步最小实验。
text
回到原始完成标准。列出哪些修改超出范围;不要还原我原有的未提交改动。
text
压缩会话时只保留:原始需求、已确认根因、修改文件、验证结果、失败结果和未完成步骤。

目标或仓库已经改变时开新任务,比不断压缩旧上下文更可靠。

命令速查

bash
# 健康检查
codex doctor --summary
codex doctor --json

# 交互会话
codex -C /path/to/repo
codex -s read-only -a untrusted
codex resume --last
codex fork --last

# 非交互
codex exec -s read-only "只读分析,不修改"
codex exec --json -s read-only "输出事件流"
codex review --uncommitted
codex review --base main

# 扩展
codex mcp list
codex plugin --help

请求支持前准备

提供:

  • Codex CLI 和 App/IDE 版本。
  • 操作系统、入口和最小复现步骤。
  • 脱敏后的完整错误文本。
  • codex doctor --summary 或经人工检查的 JSON 相关部分。
  • 当前目录类型、Git 状态和是否使用 Worktree/Cloud。
  • 已尝试的最小配置覆盖,以及结果有什么变化。

不要提供:API Key、浏览器 cookies、完整 .env、私人会话、客户仓库源码或未脱敏日志。

SuperToken - 让全球顶级 AI 模型触手可达