Amux

Codex CLI & Codex APP

最近更新:2026年8月26日

Codex CLI 与桌面端通过 OpenAI 协议接入 Amux,共用一份 config.toml。

Codex 使用 OpenAI 协议,Amux 对 Chat Completions 与 Responses 两种端点均提供原生兼容。CLI 与桌面端共用同一份配置~/.codex/config.toml 以及同一组环境变量),配置一次即可同时生效。

推荐:用 CC Switch 配

CC Switch 支持 Codex,添加一个供应商(Base URL 填 https://gateway.amux.ai/v1)即可,CLI 与桌面端一起生效。切换之后重开终端 / 重启桌面端——它们是在启动时读的配置。

下面是手动配置的写法。

一、安装

npm install -g @openai/codex
# 或
pnpm install -g @openai/codex

桌面端从官方页面下载安装即可,装完不需要额外的配置入口——它读的是下面这份文件。

二、创建 Amux 密钥

在控制台的密钥页创建密钥。创建后仍可在该页面再次查看,无需重新生成。

三、配置

密钥走环境变量

export AMUX_API_KEY=你的 Amux 密钥

建议写入 ~/.zshrc~/.bashrc不要将密钥直接写入 config.toml,因为该文件常会被备份或与项目配置一起保存。

编辑 ~/.codex/config.toml

~/.codex/config.toml

model_provider = "amux"
model = "openai/gpt-5.6"

[model_providers.amux]
name = "Amux"
base_url = "https://gateway.amux.ai/v1"
env_key = "AMUX_API_KEY"
wire_api = "responses"
字段说明
model_provider指向下面那个块的名字,两处要一致
base_url/v1 要带上——OpenAI 系客户端在它后面直接拼 /chat/completions/responses,少一段就是 404
env_key环境变量名,而不是密钥本身。若误填为密钥值,客户端会将其当作变量名读取,并最终表现为鉴权失败
wire_apiresponseschat。两个端点都已原生实现;默认建议使用 responses,这也是 Codex 的默认路径

四、启动

source ~/.zshrc   # 或 ~/.bashrc
cd my-project
codex

桌面端直接启动即可,会自动读取同一份配置。

选模型

config.toml 里的 model,或者启动后在界面里切。

模型名用规范 ID,不限于 OpenAI 的模型

model = "anthropic/claude-opus-5"

前提是那个模型的上游能承接你选的 wire_api——模型详情页会列出它实际可用的协议。

锁定供应商 / 指定路由策略

同一个模型往往有好几家在提供。要锁定某一家,在模型名后加冒号(openai/gpt-5.6:openai);不锁的话可以用 @ 后缀指定这一次按什么排(:@price 价格优先、:@latency 延迟优先)。完整说明见 API 参考

常见问题

鉴权失败 / 密钥无效

先确认 env_key 填的是变量名而不是密钥本身。然后:

echo $AMUX_API_KEY

有值的话,再看控制台里这把密钥是否还启用、工作区余额是否充足。

连不上

curl https://gateway.amux.ai/v1/models -H "Authorization: Bearer $AMUX_API_KEY"

如果能够返回模型列表,通常说明网络与密钥配置正常,此时应优先检查 config.toml 是否被正确读取。

配置没生效

  • CLI:source ~/.zshrc 之后重开终端
  • 桌面端:完全退出再打开,它是启动时读的配置
  • 确认文件真的在 ~/.codex/config.toml,不是项目目录下

模型不可用

模型 ID 要带厂商前缀。另外不是每个模型都支持每种协议——你在 wire_api 里选了 responses,就得挑上游支持 Responses 的模型;chat 同理。模型详情页有标注,调一个不支持的组合会明确报错。

换成 chat 之后正常了

说明你选择的模型上游仅支持 Chat Completions。将 wire_api 保持为 chat 即可;两个端点均已原生实现,不存在“降级”一说。