codex-switcher 是一个用 Rust 编写的小型 CLI,用来切换 Codex CLI 的模型提供方。
它会管理 ~/.codex/config.toml 里的 provider 配置,本地保存 provider 的 API key,并更新 ~/.codex/auth.json 来激活当前选择的 provider。
仓库地址:https://github.com/pynickle/codex-switcher
- 交互式添加 provider
- 通过交互选择或直接指定 ID 切换当前 provider
- 通过交互选择或直接指定 ID 删除 provider
- 列出已配置的 provider,并标出当前项
- 切换时可顺便更新某个 profile 的 provider 配置
- 切换 provider 时同步已有
.codex/agents/*.toml里的model_provider值
从 crates.io 安装:
cargo install codex-switcher从源码安装:
cargo install --path .这会构建 cxs 可执行文件。
- 支持 Rust 2024 edition 的工具链
- Windows 环境,并且设置了
USERPROFILE - 能访问本地的 Codex 配置目录
~/.codex
cxs add
cxs list
cxs use
cxs use --provider my-provider
cxs use --provider my-provider --profile default
cxs use --provider my-provider --no-agent-providers
cxs remove
cxs remove --provider my-provider
cxs remove --provider my-provider --no-agent-providersadd:交互式添加 provider,并保存 API keyuse:切换当前 provider,默认同步 agent provider 配置,并把对应 key 写入auth.jsonremove:删除 provider,同时删除其 API key;如果删除的是当前 provider,会清理相关引用list:输出已配置的 provider,并标记当前项
~/.codex/config.toml:provider 定义和当前 provider~/.codex/cxs-provider-keys.json:本地 provider key 存储~/.codex/auth.json:当前 Codex 认证状态
也可以用下面的参数覆盖默认路径:
cxs --config <path> --keys <path> --auth <path> <command>- provider 条目写在
model_providers下。 - 切换 provider 会更新
model_provider,也可以同步更新指定 profile 的 provider 值。 - 切换 provider 也会更新
.codex/agents/*.toml中已有的model_provider键;传入--no-agent-providers可以跳过。 - 删除 provider 会从
model_providers中移除,并删除 key 存储中对应的 API key。 - 删除当前使用的 provider 时,还会清理顶层
model_provider、指向它的 profile 引用、指向它的 agentmodel_provider,以及auth.json中的当前 API key。 - key 存储文件是按 provider id 作为键的 JSON map。
cargo test
cargo run -- --help本项目使用 AGPL-3.0-or-later 许可证。详见 LICENSE 文件。