model_catalog_json 目录文件,在 /model 列表里随时切换)。
安装
官网下载(macOS 版本)
https://openai.com/zh-Hans-CN/codex/使用命令行安装
环境变量配置
使用配置文件配置
- 修改
~/.codex/config.toml配置文件,增加如下配置:
- 修改
~/.codex/auth.json配置文件,修改如下配置:
通过 cc-switch 配置
- 运行 CC-Switch,添加供应商。

- 在预设列表中选择「AiHubMix」。

- 在「API Key」栏中填写你的密钥并点击「添加」保存设置。

- 返回首页,在供应商列表中选择「AiHubMix」,点击「启用」即可使用。

使用 Codex
在终端中使用
- 打开终端,定位到你的项目目录,然后运行
codex命令。
- 根据需求,设置权限。

- 根据需求,选择需要使用的模型。

- 输入自然语言,若正常响应,则配置成功。

在 Codex 桌面端使用
- 打开 Codex 桌面端,选择工作目录。
- 在输入框输入任务,若正常响应,则配置成功。

实用命令参考
帮助命令
完整命令选项
在 Codex 中使用自定义模型
Codex 默认只在/model 列表里展示 OpenAI 官方模型。如果你想直接从列表中选择 AIHubMix 上的任意模型(GLM、Claude、Gemini、DeepSeek、Kimi、Qwen……),可以用官方支持的「自定义模型」机制:通过一个本地 JSON 文件(model_catalog_json)声明可选模型,再用 [model_providers.aihubmix] 把请求指向 AIHubMix。
官方说明:Advanced Configuration · OSS mode / local providers
两种接入方式
本页前面「环境变量配置」讲的是基础方式,本节讲的是自定义模型方式,区别如下,按需选择:
整体流程只有 4 步:生成目录文件 → 改
config.toml → 设环境变量 → 重启选模型。
第 1 步:生成模型目录文件
目录文件是一个{ "models": [ ... ] } 结构,数组里每个元素描述一个可在 /model 里选择的模型。下面先用一个固定模型讲清字段,再给批量生成前 30 名的脚本。
1.1 先理解格式:固定一个模型
下面是一份已验证可被 Codex 解析的最小完整目录(只含glm-5.2 一个模型)。直接存成 ~/.codex/model-catalogs/custom-models.json 就能用;想要更多模型,就往 models 数组里继续追加同样结构的条目。
关于
base_instructions:它是该模型的系统提示词。示例里用一句话占位,模型能正常跑;想要最接近原生 Codex 的编码表现,把它换成 codex debug models --bundled 里任一内置模型的完整 base_instructions(下一节的批量脚本就是这么做的)。
官方目录用 snake_case 字段(
display_name、supported_in_api、visibility)。两类错误都会让整份目录被丢弃、/model 里看不到模型:缺必填字段会报 missing field ...;用了 displayName、hidden 这类 camelCase 旧格式或不认识的取值会报 unknown variant ...。以本文这套字段为准即可避开。1.2 批量生成前 30 名
手写多个条目容易漏字段。要把 AIHubMix 模型列表接口 的前 30 个 LLM 一次性写进目录,用下面的脚本——它以一个内置模型为模板克隆,必填字段(含正确的base_instructions)天生齐全,跨 Codex 版本都不缺。需要 curl、python3 和已安装的 codex CLI:
slug、display_name、description、context_window 等),其余必填字段全部从内置模板克隆而来——这正是 1.1 里那套字段,只是 base_instructions 用的是完整官方提示词。
生成的文件较大(每个条目都含完整base_instructions,约 1~2 MB),属正常现象。运行后用codex debug models验证能否被正确解析(见第 5 步)。
脚本里那行image_generation过滤是有意保留的:type=llm的返回中有极少数模型同时带image_generation标签(如gpt-image-2),不适合对话,脚本会自动跳过后再取前 30。
第 2 步:修改 config.toml
编辑 ~/.codex/config.toml,在根级别加上 model_catalog_json,并定义 aihubmix provider:
wire_api = "responses" 是关键,漏写或写成 chat 都连不上。Codex 新版只走 OpenAI 的 Responses API(/v1/responses),AIHubMix 已原生兼容 Responses API,所以直接指向 https://aihubmix.com/v1 即可,无需自建转换代理。config.toml 大致如下(红框为本步的关键项:根级别的 model / model_provider / model_catalog_json,以及 [model_providers.aihubmix] 段):

第 3 步:设置环境变量
把上面env_key 指定的环境变量配好(注意 = 两侧不要有空格):
~/.zshrc / ~/.bashrc 持久化。在 AIHubMix 控制台 获取 Key。
第 4 步:重启并选择模型
重启 Codex App / TUI 让目录文件生效,然后:/model 后会列出目录里声明的全部模型,方向键选中、回车确认:

/model 还会让你选推理档位(effort),按需求选 low / medium / high 即可。
第 5 步:验证是否生效
- 进入 Codex 后输入
/model,确认能看到目录里声明的模型,并切到其中一个(如glm-5.2)。 - 随便提一个问题验证链路打通。注意:不要靠「你是哪个模型」来判断——
base_instructions里写着「You are Codex… based on GPT-5」,所有模型都会照此自称 GPT-5,问了也分辨不出真实模型。要确认实际调用的模型,登录 AIHubMix 控制台「日志」页看那条请求记录的model_id,这才是真相。
Model changed to ...,底部状态栏也会显示当前模型与上下文窗口(下图切到了 glm-5.2,窗口 258K):

自定义模型常见问题
-
/model里看不到自定义模型? 按先后顺序排查:- 先跑
codex debug models。若报missing field ...(最常见,缺必填字段)或unknown variant ...(字段名/取值不对),说明整份目录解析失败被丢弃——用第 1 步「克隆内置模板」脚本重新生成即可。 - 确认
model_catalog_json写在config.toml根级别,不在[model_providers.*]段里; - 确认 JSON 用的是 snake_case 官方字段、
visibility为list; - 如果
codex debug models已经能看到全部模型,但**桌面端(Desktop App)**里只剩一两个、当前模型显示为「自定义」——这是桌面端的已知 bug:它会在本地目录之上再套一层官方 slug 白名单过滤,把非官方模型从选择器里删掉(见 GitHub Issue #19694、#15138)。此时模型其实仍按config.toml里的model = "..."正常调用(去 AIHubMix 日志可证实),只是名字显示不出来。要正确显示就用终端codexCLI / TUI;桌面端只能直接在config.toml里写死model = "你要的模型",等官方修复。
- 先跑
-
目录是「替换」不是「合并」。
model_catalog_json会替换整个模型列表,而不是追加(实测:目录里只放 2 个模型,codex debug models就只剩这 2 个,内置的gpt-5.x全部消失)。如果你两类都想要,就把它们一并写进自定义目录。 -
请求报协议错误 / 连不上。 多半是 provider 的
base_url或wire_api没配对。AIHubMix 必须wire_api = "responses"+base_url = "https://aihubmix.com/v1"。若你接的是只支持 Chat Completions 的第三方,则需要本地转换代理,AIHubMix 用户无需此步。 -
频繁 “Reconnecting” 重连。 部分网络/代理环境下 WebSocket(WSS)不通,可在 provider 段加
supports_websockets = false强制走 HTTP。 -
解析报
missing field ...(如missing field base_instructions)。 条目缺了必填字段。新版 Codex 严格解析,base_instructions、availability_nux、upgrade、supports_reasoning_summaries、support_verbosity、default_verbosity、apply_patch_tool_type、truncation_policy、supports_parallel_tool_calls、experimental_supported_tools等都必须存在。用第 1 步「克隆内置模板」脚本可一次性补齐。 -
解析报
unknown variant。 目录 JSON 里有 Codex 不认识的字段名或取值(常见于displayName/hidden等 camelCase 旧格式)。改用本文的 snake_case 字段集即可。
相关文档
- 模型智能路由:把模型名填
auto,由网关按请求自动选最优模型。 - 模型列表 API:查询 AIHubMix 上全部可用模型与其
model_id。 - 应用标识码 App-Code:接入后多数模型享 10% 优惠。
- AIHubMix CLI:在终端查询余额、管理 API Key、查看可用模型。
参考文章
- 官方文档:Advanced Configuration | Configuration Reference
- 官方内置目录格式参考:codex-rs/models-manager/models.json
- 社区指南:Codex config.toml:6 行接入任意自定义 provider
更新时间:2026-06-25