model-switch
v1.6.5
Published
CLI 工具,用于在不同 LLM 提供商之间切换 Codex/Claude Code 的模型配置
Maintainers
Readme
model-switch
在不同 LLM 提供商之间快速切换 Claude Code / Codex CLI 的模型配置。
为什么不用 cc-switch?
- 喜欢用命令行
- 我只是想切模型,别动我其他配置项, 不需要繁琐臃肿的操作
- cc-switch非常难用且繁琐:
- 每次更改模型配置时需要反复勾选"写入通用配置",有时候忘记勾选,就会导致本地配置文件被覆盖,多了或漏了很多配置项,而且还不能立即发现此问题,只有用到某个skill或plugin的时候才发现配置文件错了
- 在claude中自动安装了skills,plugin后,必须回到cc-switch的通用配置编辑页面手动"提取通用配置",否则你新增的配置项无法被cc-switch感知到,在切换模型时配置文件又被强制覆盖成旧版本了,恶心; 而且提取通用配置还经常提取不到
- 当cc-switch停留在编辑配置页面时,你无法手动更改claude配置文件,一回到cc-switch的页面就又强制覆盖回旧的配置
安装
npm 全局安装(推荐)
npm install -g model-switch安装完成后即可直接使用 ms 命令。需要 Node.js >= 16。
从源码构建
bun install
bun run build # 构建 JS 到 dist/ms.js
bun run compile # 编译为独立二进制到 bin/ms(无需 Node.js 运行时)用法
ms <provider> <command> [options]provider 可选 claude 或 codex。
Claude Code
| 命令 | 说明 |
| ------------------------------ | -------------------------------------------- |
| ms claude list | 列出所有已保存的配置,标记当前激活项 |
| ms claude add | 交互式新增模型配置 |
| ms claude remove | 交互式移除已保存的配置(Tab 预览详情) |
| ms claude update [name] | 逐项修改已有配置值(无参数时交互选择) |
| ms claude use [name] | 激活指定配置(无参数时交互选择) |
| ms claude current | 显示当前激活的配置名称及详情 |
Codex CLI
| 命令 | 说明 |
| ----------------------------- | ----------------------------------------------------------------- |
| ms codex list | 列出所有已保存的配置,标记当前激活项 |
| ms codex add | 交互式新增模型配置 |
| ms codex remove | 交互式移除已保存的配置(Tab 预览详情) |
| ms codex update [name] | 逐项修改已有配置值(无参数时交互选择) |
| ms codex use [name] | 激活指定配置;使用 gpt 切换官方订阅(无参数时交互选择) |
| ms codex current | 显示当前激活的配置名称及详情 |
交互操作
update、use、remove命令均支持省略配置名称,进入交互式选择列表- 在选择列表中按 Tab 可预览该配置的完整详情
current命令会自动匹配当前生效的配置,支持按指纹(URL + Token/Key)模糊识别list内容超过一屏时可用j/k或方向键逐行移动,d/u滚动半屏,空格/f、b翻页,g/G跳到首尾;/、?搜索,n/N查找下一个/上一个匹配,q或 Esc 退出
示例
# === Claude Code ===
# 新增一个配置
ms claude add
# 按提示输入:配置名称 → Base URL → Auth Token → Model → ...
# 列出所有配置
ms claude list
# 激活配置(两种方式)
ms claude use my-config # 直接指定
ms claude use # 交互式选择,Tab 预览详情
# 查看当前激活
ms claude current
# 修改配置(两种方式)
ms claude update my-config # 直接指定
ms claude update # 交互式选择
# 删除配置
ms claude remove # 交互式选择,Tab 预览详情
# === Codex CLI ===
# 新增一个 Codex 配置
ms codex add
# 按提示输入:配置名称 → Base URL → API Key → Model → ...
# 列出所有 Codex 配置
ms codex list
# 激活 Codex 配置
ms codex use my-codex-config
# 查看当前激活
ms codex current配置存储
Claude Code
- 模型配置保存在
~/.model-switch/configs/claude/settings.json - 激活配置时写入
~/.claude/settings.json,仅修改ANTHROPIC_*字段,保留其他设置不变 - 配置包含 7 个字段:
| 字段 | 必填 |
| -------------------------------- | ---- |
| ANTHROPIC_BASE_URL | 是 |
| ANTHROPIC_AUTH_TOKEN | 否 |
| ANTHROPIC_MODEL | 否 |
| ANTHROPIC_REASONING_MODEL | 否 |
| ANTHROPIC_DEFAULT_OPUS_MODEL | 否 |
| ANTHROPIC_DEFAULT_SONNET_MODEL | 否 |
| ANTHROPIC_DEFAULT_HAIKU_MODEL | 否 |
Codex CLI
- 模型配置保存在
~/.model-switch/configs/codex/settings.json - 激活配置时写入
~/.codex/config.toml(模型/provider/URL/API Key 通过experimental_bearer_token),不再写入~/.codex/auth.json - 写入时保留
config.toml中的其他字段不变 - Model Catalog 源数据随配置保存在
settings.json;仅在use(或更新活动配置后确认同步)时物化到~/.model-switch/configs/codex/model-catalogs/ config.toml的顶层model_catalog_json使用~路径。物化文件可由源数据重建,删除或切换配置时会安全清理不再使用的托管文件ms codex use gpt是内置目标:预览并确认后清理config.toml中由本工具管理的顶层键(model、model_provider、review_model、model_reasoning_effort、model_verbosity、model_context_window、model_catalog_json),保留 Provider Section、Saved Config、Model Catalog 和auth.json不变;完成后请执行codex logingpt(不区分大小写)是 Codex Saved Config 保留名称,不能用于add、copy或重命名- Catalog 通过
$EDITOR编辑,接受任意合法 JSON(包括数组、字符串、数字、布尔值和null),保存前统一为两空格缩进 - 配置包含 9 个字段:
| 字段 | 说明 | 必填 |
| ------------------------ | -------------- | ---- |
| BASE_URL | API Base URL | 是 |
| API_KEY | API Key | 否 |
| CODEX_MODEL | 模型名称 | 否 |
| CODEX_MODEL_PROVIDER | 模型提供商标识 | 否 |
| CODEX_REVIEW_MODEL | Review 模型 | 否 |
| CODEX_REASONING_EFFORT | 推理强度 | 否 |
| CODEX_VERBOSITY | 输出详细程度 | 否 |
| CODEX_CONTEXT_WINDOW | 上下文窗口大小 | 否 |
| CODEX_MODEL_CATALOG_JSON | Model Catalog JSON 源数据 | 否 |
开发
# 直接运行
bun run src/index.ts claude --help
bun run src/index.ts codex --help
# 类型检查
npx tsc --noEmit
# 构建 JavaScript
bun run build
# 编译为独立二进制(无需 Node.js 运行时)
bun run compileShell 补全
安装
ms completion --install
# 或使用短形式
ms completion -i自动检测当前 shell 并安装补全脚本到 ~/.bashrc / ~/.zshrc。安装后请运行 source ~/.bashrc(或重启终端)使配置生效。
手动使用
# 输出补全脚本
ms completion bash # bash
ms completion zsh # zsh
ms completion fish # fish
# 立即启用(当前会话)
source <(ms completion $SHELL)补全内容
- 顶级命令:
claude,codex,completion claude/codex子命令:list,add,remove,update,use,current
卸载
bash / zsh:删除以下两行:
# model-switch 补全
eval "$(ms completion zsh)"fish:
rm ~/.config/fish/completions/ms.fish