搞定Codex App无法显示自定义模型(如Grok)的简单修复方案
最近折腾新模型的时候,发现了个挺有意思的小坑,想着估计有不少兄弟也会遇到,就顺手写个排查记录,给大伙省点抓狂的时间。
事情是这样的:随着Grok等新模型的各种内测和发布,我也搞了个账号,准备在常用的 Codex App 里接一下。毕竟平时写代码、调试还是用Codex顺手。于是,我照着老路子,反代接口,修改 config.toml,甚至贴心地配置了 model_catalog_json 文件来定义模型列表。
但是,当一切准备就绪,打开 Codex App 准备切换模型时,傻眼了——模型列表里只有干巴巴的 GPT 系列,我辛辛苦苦配置的 Grok-4.5 和其他自定义模型根本不显示!
问题复现:CLI 正常,App 挂了
Codex App 界面仅显示 GPT 系列模型,自定义的 Grok-4.5 未能加载
当时我心里第一反应是:配置文件写错了?
为了排查,我切到命令行,打开 Codex CLI,输入 /model 指令。结果 CLI 乖乖地列出了我配置的所有模型(包括 Grok-4.5、GPT-5.5 等)。这就很离谱了,同样的配置文件,CLI 能读,App 读不到?
Codex CLI 成功读取配置并列出包括 Grok-4.5 在内的所有模型
我当时检查了配置文件路径,确认 config.toml 里正确指向了 JSON 模型目录文件:
model_provider = "custom"
model_catalog_json = "cc-switch-model-catalog.json"
# ... 其他配置
JSON 文件里的结构也没问题,各个模型的 slug、display_name 和 visibility 都设置为了 list。按理说应该直接显示才对。
让人哭笑不得的解决方案
就在我准备深入翻日志、甚至要去提 Issue 的时候,路过的大佬给了一个极其简单的建议:
“切换一个新会话,应该就显示自定义了。”
我抱着“死马当活马医”的心态,在 Codex App 里新建了一个 Session(新会话)。结果下一秒,刷新列表——Grok-4.5 就安安静静地躺在那里了,一切恢复正常。
为什么会这样?
虽然是个操作上的乌龙,但背后的逻辑其实挺清晰的。
很多 AI 客户端(包括 Codex),为了保证启动速度和响应流畅度,会在会话初始化的时候加载一次模型列表。如果你是在 App 已经运行、或者已经处于某个“旧会话”的状态下修改了配置文件或模型目录,App 内部的缓存机制并不会实时感知到这些变化。
相比之下,CLI 工具每次调用命令时,往往会重新读取配置或者进行轻量级的校验,所以它能立刻反映最新的配置状态。这就造成了“CLI 能用,App 不行”的假象,让你误以为是 JSON 格式写错了或者权限有问题。
避坑指南:修改配置后的正确姿势
如果你也在玩 Codex 的自定义模型(比如接入 Claude、Grok 或者本地 Ollama 模型),遇到列表不更新的情况,别急着改配置,按这个顺序排查:
- 检查 JSON 语法:确认
model_catalog_json文件格式合法,特别是逗号和括号。 - 确认路径:
config.toml里的路径是绝对路径还是相对路径,确保文件能被找到。 - 重启或新建会话(关键):改完配置,一定要在 App 里 Start New Session(新建会话),或者彻底重启 App。这一步是强制刷新模型列表缓存的关键。
希望这个小小的经验能帮到大家,别像我一样在 JSON 文件里盯着那个逗号看半小时。玩得开心!

评论已关闭