直接答案
一次只验证一层,不要同时重装、删配置和换模型;保留原始错误与当前状态才能快速定位。
这篇内容解决什么问题
解决 Codex CLI command not found、401、配置错误、连接与权限问题
先保存证据,再按层排查
记录完整错误、触发命令、Codex 版本、操作系统、工作目录和发生时间。不要只截最后一行,也不要在重装后才尝试回忆原始状态。
推荐顺序是二进制与 PATH、配置解析、认证、provider 与模型、网络、权限、扩展。每次只改变一个变量,并保存改变前后的结果。
date -u
uname -a
command -v codex
codex --version
codex doctor --summary
git status --short --branchcommand not found 与版本不一致
command not found 通常是安装目录未进入 PATH,或终端仍使用旧环境。版本不一致常见于 npm、Homebrew 和脚本安装并存。
先找出所有命中的 codex,再使用原安装渠道升级或卸载旧副本。不要盲目用 sudo 覆盖系统目录。
command -v codex
type -a codex
printf "%s\n" "$PATH"
npm prefix -g
brew list --cask codex 2>/dev/null || true配置解析失败或设置不生效
TOML 重复键、错误层级、未知字段和错误的 CODEX_HOME 都可能让配置失效。先备份原文件,再运行严格配置检查和 doctor。
若怀疑用户配置影响当前命令,可以用 --ignore-user-config 做对照;它不会加载用户 config.toml,但认证仍使用 CODEX_HOME。对照成功不代表应该删除原文件,只说明问题位于用户配置层。
CODEX_DIR="${CODEX_HOME:-$HOME/.codex}"
printf "CODEX_HOME=%s\n" "$CODEX_DIR"
cp "$CODEX_DIR/config.toml" "$CODEX_DIR/config.toml.bak.$(date -u +%Y%m%dT%H%M%SZ)"
codex exec --strict-config --ephemeral -s read-only -a never "只报告当前模型和沙箱模式,不运行命令。"
codex exec --ignore-user-config --ephemeral -s read-only -a never "只检查仓库入口。"
codex doctor --summary区分认证、模型、协议与网络错误
401 或 403 优先检查凭据与服务端权限;未知模型说明请求通常已经到达服务但模型名不被接受;404 可能是 base URL 路径错误;超时、DNS 和 TLS 错误属于网络层。
CodeNodex 用户先运行 keys 或 setup 验证 Key 与平台,再检查 Codex doctor。不要通过关闭 TLS 校验、打印 Authorization 头或把真实 Key 粘进工单来排查。
codex login status
codex doctor --summary
codenodex keys
codenodex setup --client codex
codex -s read-only "报告当前 provider 和模型名称,不要输出 Key、token 或请求头。"排查沙箱、审批与 MCP
命令能够读取但无法写入,通常应检查沙箱模式和工作目录;需要邻接目录时使用 --add-dir。网络工具不可用不一定是 provider 错误,可能是沙箱、代理或组织策略。
MCP 问题先确认配置列表和单个服务器,再检查本地进程或远程 URL。临时移除故障 MCP 可以验证它是否影响启动,但远程凭据还需单独撤销。
codex -C "$PWD" -s read-only "只列出仓库顶层目录。"
codex -C "$PWD" -s workspace-write -a on-request "在任务范围内运行现有测试,不修改配置。"
codex mcp list --json
codex doctor --summary生成可复现且脱敏的问题报告
doctor --json 提供机器可读的脱敏报告,但上传前仍要人工检查。问题报告应包含最小复现、期望与实际行为、版本、配置中不含秘密的相关字段,以及是否能在忽略用户配置时复现。
官方 Codex 问题提交到官方仓库;CodeNodex Key、网关或模型映射问题提交给 CodeNodex 支持。先确认责任边界,避免在公开 issue 暴露第三方凭据。
- 不要附加 auth.json、真实 Key、token 或完整请求头。
- 不要删除原配置后声称问题不可复现。
- 提供最小命令和原始退出状态。
- 说明官方端点还是兼容 provider。
codex doctor --json > /tmp/codex-doctor.json
codex --version > /tmp/codex-version.txt
git status --short --branch > /tmp/repo-status.txt
# 上传前逐个检查并删除任何敏感内容
${EDITOR:-vi} /tmp/codex-doctor.json官方来源与核验范围
本文以公开官方文档为事实依据;命令和配置可能随客户端版本变化,执行前请同时核对对应来源。
查看技术核验方法