1. 从模型列表里找不到新版本说起如果你最近把 Codex CLI 或者 ChatGPT 桌面端升到了最新版打开模型选择器却发现列表里压根没有传说中的 GPT 6别急着怀疑自己装了个假包。这个现象在最近一段时间里被反复提起社区里每天都有人问为什么我升级完还是看不到新模型。我前后在三台机器上折腾过这个问题Windows、macOS、Linux 各踩了一遍最后发现绝大多数情况根本不是软件坏了而是账号侧的能力开关、CLI 的模型白名单、以及本地缓存这三者没有对齐。先把结论摆在前面Codex 这类工具显示的可用模型并不是简单跟着客户端版本走的。客户端只负责我能请求哪些模型名真正决定你能不能调用的是账号权限和后端灰度。所以你会看到一个很反直觉的现象——同一天、同一个版本号A 的列表里有新模型B 的列表里没有。这跟网速、跟镜像源、跟你是不是会员关系都没有想象中那么大。这篇内容适合三类人看第一类是刚装完 Codex CLI、连登录都没跑通的新手第二类是升级后模型列表缩水或者不更新的老用户第三类是想搞清楚 Codex 模型加载机制、方便自己排查问题的折腾党。我会把排查链路完整走一遍包括怎么确认版本、怎么验证账号能力、怎么清缓存、怎么处理 npm 安装环节的各种报错以及那些官方文档里不会写的坑。需要提前说明的是下面涉及的所有操作都是围绕本地开发环境的正常配置目的是让工具正常识别账号已有的能力不涉及任何绕过权限或非正常手段。如果你发现某个模型确实不在你的账号能力范围内那正确的做法是等灰度或者走正规渠道确认而不是去改配置文件硬凑。2. Codex 的模型列表到底是怎么来的2.1 客户端版本 ≠ 模型可用性很多人第一反应是我版本不够新于是反复npm install -g升级。但 Codex CLI 的模型列表其实分两层一层是客户端内置的候选模型名另一层是账号后端返回的可用模型。客户端升级只更新第一层也就是它知道有哪些模型可以请求第二层才是决定列表里显示什么的关键。打个比方客户端像一本菜单账号权限像餐厅当天实际备了哪些菜。你换了本更新的菜单不代表后厨就多了那道菜。所以升级完看不到新模型先别怀疑安装包先确认账号这一侧。2.2 账号能力是怎么被识别的Codex 在启动时会做一次鉴权拿到 token 之后向后端请求当前账号的能力清单。这个清单里包含了可用的模型、速率限制、以及一些实验性功能的开关。如果你在登录环节出了问题——比如 token 过期、登录态没写进本地配置——那客户端拿不到清单就会退化成一个默认的、比较旧的模型列表。这就是为什么热词里频繁出现codex auth token is unavailable和unable to load sign-in requirements。这两个报错本质上是同一类问题登录态没有正确建立或保存。列表不更新只是它的一个表象。2.3 本地缓存会记住旧列表第三个容易被忽略的点是本地缓存。Codex 会把上一次拿到的模型清单缓存在本地下次启动如果网络请求失败它会直接用缓存。问题在于如果你的账号刚刚被灰度到新模型但本地缓存还是旧的而这次启动又恰好没成功刷新那你看到的就还是旧列表。我遇到过最典型的一次账号明明已经能用新模型了但 CLI 里死活不显示最后发现是缓存文件没更新。删掉缓存重启列表立刻就对了。所以排查顺序应该是先确认登录态再确认网络请求最后清缓存而不是一上来就重装。3. 一步步确认你的 Codex 到底装对没有3.1 先看版本号和安装路径排查任何问题之前先确认你跑的是哪个 Codex。Windows 上经常出现装了多个版本、PATH 指向旧版本的情况。执行codex --version which codex # macOS / Linux where codex # Windows如果where codex返回了多条路径说明你机器上有多个安装PATH 里排在前面的那个才是实际生效的。这时候要么卸载多余的要么调整 PATH 顺序。我见过有人全局装了一个、npx 又缓存了一个结果每次跑的都是 npx 缓存里的旧版本怎么升级都没用。3.2 npm 安装环节的经典报错热词里npm : 无法加载文件 ... npm.ps1因为在此系统上禁止运行脚本出现的频率极高。这不是 npm 坏了是 Windows PowerShell 的执行策略默认禁止运行脚本。解决办法有两个# 方案一只对当前用户放开 Set-ExecutionPolicy -Scope CurrentUser RemoteSigned # 方案二临时绕过只对当前会话生效 Set-ExecutionPolicy -Scope Process Bypass方案一更省事改一次以后都不用手动处理。改完用Get-ExecutionPolicy -List确认一下 CurrentUser 那一行不是 Undefined 或 Restricted。另一个高频问题是npm : 无法将npm项识别为 cmdlet这通常是 Node.js 装完之后 PATH 没配好。Windows 上要确认C:\Program Files\nodejs\在系统环境变量 Path 里改完记得重开终端老终端不会自动刷新环境变量。3.3 国内网络下的 npm 源配置安装慢、卡住、超时八成是源的问题。换成国内镜像能明显改善npm config set registry https://registry.npmmirror.com npm config get registry # 确认生效装 Codex 的时候如果还卡可以加上超时和重试参数npm install -g openai/codex --fetch-timeout120000 --fetch-retries5注意换源只影响下载速度不影响模型列表。别指望换个源就能刷出新模型那是两码事。3.4 安装完的第一件事是登录装完不登录或者登录失败模型列表一定是旧的。Codex 的登录流程会打开浏览器完成鉴权然后把 token 写回本地。如果浏览器没弹出来或者弹出来了但回调失败登录态就建立不起来。常见现象是终端里一直转圈或者报unable to load sign-in requirements。这时候先检查默认浏览器能不能正常打开外部链接再检查本地有没有防火墙拦截回调端口。实在不行用带日志的方式启动看它卡在哪一步codex --verbose日志里会明确告诉你是在请求鉴权、等待回调、还是写配置。定位到具体环节问题就好办了。4. 模型列表不更新的完整排查链路4.1 第一步确认登录态是否有效先跑一个最简单的命令看账号信息能不能正常拉出来。如果这一步就报 token 相关错误那后面都不用看了先把登录修好。codex auth status返回正常的话会显示当前登录的账号和 token 有效期。如果显示未登录或者 token 过期重新走一遍登录流程。这里有个坑有些环境下登录成功了但配置文件写到了另一个用户目录导致你以为登录了实际 CLI 读的是空配置。确认一下配置文件的路径和当前用户是否一致。4.2 第二步手动触发一次模型清单刷新登录态没问题就强制刷新一次模型列表。Codex 一般会在启动时请求但你可以通过重新登录或者清缓存来强制它重新拉。# 先看缓存目录在哪 codex config path # 清掉模型缓存具体文件名以实际为准 rm -rf ~/.codex/cacheWindows 上对应的是%USERPROFILE%\.codex\cache。删完重启 Codex它会重新向后端请求清单。如果这次列表更新了说明之前就是缓存问题如果还是旧的那大概率是账号侧还没灰度到。4.3 第三步区分客户端不支持和账号没权限这两个原因表现一样但处理方式完全不同。区分方法很简单看报错信息。如果客户端根本不认识这个模型名报的是model is not supported如果是账号没权限报的是权限或额度相关。热词里the gpt-5.6-sol model is not supported when using codex with a chatgpt acc就是典型的客户端/账号不匹配。这种情况下硬改配置里的模型名是没用的因为后端会直接拒绝。正确的做法是确认你的账号类型支持哪些模型然后在支持范围内选择。4.4 第四步检查是不是多版本冲突前面提过多版本共存是隐形杀手。再确认一次实际生效的版本codex --version npm list -g --depth0 | grep codex如果全局版本和你以为的不一致先统一。卸载用npm uninstall -g openai/codex然后重新装。装完再确认一次路径确保 PATH 里只有一份。4.5 排查顺序总结把上面的步骤整理成一张表方便对照现象最可能原因处理方式列表里完全没有新模型账号未灰度等待或确认账号能力升级后列表反而变少缓存未刷新清缓存重启报 token unavailable登录态失效重新登录报 model not supported客户端/账号不匹配确认支持范围命令找不到PATH 未配置检查环境变量安装卡住源太慢换国内镜像按这个顺序走一遍九成以上的看不到新模型都能定位到原因。5. 那些官方文档不会告诉你的坑5.1 缓存目录不止一个很多人只知道清~/.codex/cache但实际上 Codex 在不同平台、不同安装方式下缓存位置可能不一样。全局安装和 npx 运行的缓存目录就不同。最稳妥的办法是用codex config path让它自己告诉你别凭记忆猜。5.2 登录态和模型清单是分开缓存的这是个很隐蔽的点。有时候你重新登录了登录态更新了但模型清单还是旧的因为两者存在不同的文件里。所以重新登录不一定能刷新模型列表得配合清缓存一起做。5.3 代理配置会影响鉴权但不影响下载如果你本地配了网络代理npm 下载走代理没问题但 Codex 的鉴权回调可能因为代理规则被拦。表现就是安装很顺利登录死活不成功。这时候检查一下代理的绕过规则把本地回调和鉴权域名加进白名单。5.4 版本号里的最新可能是假的npm 上的latest标签有时候不是真正的最新版尤其是灰度发布期间。想装特定版本直接指定版本号npm install -g openai/codexx.y.z用npm view openai/codex versions看所有可用版本别盲目信latest。5.5 别乱改配置文件里的模型名我见过有人为了解锁新模型手动往配置里写模型名。结果要么启动直接报错要么请求被后端拒绝还可能把配置文件搞坏导致整个 CLI 起不来。模型名不是随便填的客户端不认识的名字填了也没用。真要用新模型等账号灰度到了自然会出现。6. 让 Codex 稳定跑起来的几个实操建议6.1 固定版本别追最新生产环境或者日常重度使用建议固定一个稳定版本别每次latest一更新就跟着升。升级带来的新模型不一定马上对你开放反而可能引入新的兼容问题。等社区反馈稳定了再升省心很多。6.2 把排查命令做成脚本每次出问题都手动敲一遍太累可以把版本检查、登录状态、缓存路径这几步写成一个脚本一键输出当前环境状态。出问题时先跑脚本比盲目重装高效得多。#!/bin/bash echo version codex --version echo path which codex echo auth codex auth status echo config codex config path6.3 记录每次变更升级前记一下当前版本号升级后如果出问题方便回滚。npm 支持装指定版本回滚成本很低。养成这个习惯能省掉大量升级完就坏的排查时间。6.4 关注报错原文别只看中文翻译社区里很多问题描述是二手翻译过的容易失真。遇到报错先把英文原文完整看一遍关键词往往就在里面。比如auth token is unavailable和model is not supported是完全不同的两类问题翻译成中文可能都变成用不了但处理方式天差地别。6.5 账号能力以官方渠道为准最后再强调一次模型能不能用最终以账号实际能力为准。客户端列表只是展示不是授权。如果确认账号支持但列表不显示那就是缓存或登录态问题按第 4 节的链路排查如果账号本身不支持那就耐心等灰度别折腾配置文件。我在几台机器上反复验证下来最有效的组合就是确认版本唯一 确认登录有效 清缓存重启。这三步能解决绝大部分升级后看不到新模型的问题。剩下的少数情况基本都指向账号灰度属于等就完事的那一类。真正需要动手改配置的场景其实非常少。
