Codex与Claude Code配置不生效:作用域、覆盖与加载排查
先证明客户端读了哪份配置,再找覆盖来源和生效时机。
本文目录 · 跳到操作
先记录实际启动环境
“保存了却没变”常见原因是改错作用域、另一层覆盖、进程保留旧环境、字段无效或管理工具再次写回。先保留原配置备份,再记录客户端版本、工作目录、启动命令与是否由CC Switch管理。
PowerShell只读检查:
Get-Location
Get-Command codex,claude -All -ErrorAction SilentlyContinue
codex --version
claude --version
Get-ChildItem Env: | Where-Object Name -Match '^(CODEX|OPENAI|ANTHROPIC)_' | Select-Object -ExpandProperty Name
最后一行只列变量名,不输出密钥。只运行你已安装的客户端命令;不存在一个命令不代表另一客户端损坏。
Codex:查用户、项目与启动覆盖
当前官方配置优先级从高到低是:CLI参数或--config;可信项目中从根到当前目录的.codex/config.toml(更近优先);选中的profile文件;用户~/.codex/config.toml;云端管理默认;系统配置;内置默认。组织强制约束与默认值是不同机制,不能靠本地文件绕开。
教学覆盖样本:
| 来源 | 字段值 | 判断 |
|---|---|---|
| 用户config.toml | model_provider="provider_a" | 用户默认 |
| 可信项目.codex/config.toml | model_provider="provider_b" | 该项目覆盖用户默认 |
| 启动时-c指定同一字段 | provider_c | 此次启动覆盖文件值 |
| a/b/c只是教学标识,未定义的Provider不能实际连接。不要直接把它们复制进配置。实际操作先在对应文件搜索同一字段,记录来源;若项目不可信,项目层可能不会加载。再运行当前CLI的/status查看会话状态,必要命令先用codex --help确认。 |
配置路径随CODEX_HOME等设置可能改变;不要把示例~目录当实际进程必然使用的位置。修改最低层文件后没有变化,应先找到更高层同名值,而非连续改所有文件。
Claude Code:查settings来源,再查具体字段
常见文件为用户~/.claude/settings.json、项目.claude/settings.json、项目本地.claude/settings.local.json。普通设置键的顺序是管理策略、启动--settings、项目本地、项目共享、用户。
在会话里运行/status查看Setting sources;它确认读了哪些来源,不显示每个键的最终来源。运行claude doctor检查被拒绝的配置项或格式错误。
claude doctor
环境变量不是该栈中的统一一层,必须按字段核对。例如ANTHROPIC_MODEL与model的关系,不能套到全部变量或权限列表;权限列表也有合并规则。
教学例:用户文件spinnerTipsEnabled=false,项目共享文件true时,按该普通键优先级会采用项目值;项目本地再次false则本地值更高。管理策略若强制该键,个人文件不能覆盖。只在练习目录验证,不覆盖团队策略。
修改何时生效,谁可能再次写回
Claude Code当前支持多数设置热重载,但model等部分键有会话内专门切换方式或启动时读取条件。先按该字段文档验证,不把重启当所有问题的答案。Codex更改供应商后按所用客户端和管理工具说明重新启动。
如果CC Switch负责写配置,改完文件又被恢复,先回到管理工具修改源记录或退出它的管理流程。直连与本地路由决定谁接收请求,不能仅用模型自我介绍判断。
用同一小任务证明修的是哪一层
记录“哪一文件的哪个字段、原值、修改值、实际启动方式”,每轮只改变一项。在无敏感材料目录请求只读README,并对照当前模式与服务请求记录。SDK成功只能证明SDK路径,不能替代Codex或Claude Code客户端验证。
2026-10-11核对:Codex配置优先级、Claude Code设置与生效时机。请求仍报401/404/429时转到 错误分流,保留脱敏证据再判断认证、路径、权限或额度。
