Skip to content

Latest commit

 

History

History
90 lines (64 loc) · 2.72 KB

File metadata and controls

90 lines (64 loc) · 2.72 KB

codex-switcher

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-providers

命令说明

  • add:交互式添加 provider,并保存 API key
  • use:切换当前 provider,默认同步 agent provider 配置,并把对应 key 写入 auth.json
  • remove:删除 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 引用、指向它的 agent model_provider,以及 auth.json 中的当前 API key。
  • key 存储文件是按 provider id 作为键的 JSON map。

开发

cargo test
cargo run -- --help

许可证

本项目使用 AGPL-3.0-or-later 许可证。详见 LICENSE 文件。