慕雪的小助手正在绞尽脑汁···
慕雪小助手的总结
DeepSeek & LongCat

慕雪前排提醒:本文依旧是AI生成的,有少量人工修改。

上一篇文章中,我介绍了如何配置Claude Code使用美团LongCat等第三方大模型。但是每次切换模型都需要手动修改配置文件,实在是太麻烦了。

于是,我写了一个小工具来解决这个问题:claude-code-model-switch(简称ccms)。

1. 为什么要做这个工具

用过Claude Code的朋友都知道,它支持接入各种第三方大模型,比如美团LongCat、DeepSeek、智谱GLM等等。但是每次切换模型都需要:

  1. 打开~/.claude/settings.json配置文件
  2. 修改一堆环境变量
  3. 保存文件
  4. 重新启动Claude Code

这个过程重复多了真的很烦人,而且容易出错。比如忘了改某个变量,或者把配置搞乱了。

所以我就想,能不能像nvm管理node版本那样,用一个命令行工具来管理Claude Code的模型配置呢?

说干就干,直接claude --dangerously-skip-permissions启动!开始写一个。

2. 工具功能

ccms工具提供了以下几个核心功能:

2.1. 快速切换模型

1
2
3
4
5
# 切换到deepseek-chat模型
ccms deepseek-chat

# 或者使用switch子命令
ccms switch deepseek-chat

image.png

2.2. 查看可用模型

1
2
# 列出所有配置好的模型
ccms list

2.3. 恢复官方模型

1
2
# 清除所有模型配置,恢复使用官方Claude模型
ccms unset

2.4. 查看配置文件路径

1
2
# 查看模型配置文件和Claude设置文件的路径
ccms config-path

3. 安装和使用

3.1. 安装

1
npm install -g claude-code-model-switch

3.2. 配置模型

安装完成后,需要先配置你想要使用的模型。编辑配置文件~/.claude-code-model-switch/settings.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
{
"models": {
"deepseek-chat": {
"ANTHROPIC_AUTH_TOKEN": "sk-your-token-here",
"ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic",
"ANTHROPIC_MODEL": "deepseek-chat",
"ANTHROPIC_SMALL_FAST_MODEL": "deepseek-chat",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek-chat",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek-chat",
"CLAUDE_CODE_MAX_OUTPUT_TOKENS": "8192",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
},
"longcat-flash": {
"ANTHROPIC_AUTH_TOKEN": "your-longcat-token",
"ANTHROPIC_BASE_URL": "https://api.longcat.chat/anthropic",
"ANTHROPIC_MODEL": "LongCat-Flash-Chat",
"ANTHROPIC_SMALL_FAST_MODEL": "LongCat-Flash-Chat",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "LongCat-Flash-Chat",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "LongCat-Flash-Chat",
"CLAUDE_CODE_MAX_OUTPUT_TOKENS": "8192",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
},
"glm-4.6": {
"ANTHROPIC_AUTH_TOKEN": "your-glm-token",
"ANTHROPIC_BASE_URL": "https://open.bigmodel.cn/api/anthropic",
"ANTHROPIC_MODEL": "GLM-4.6",
"ANTHROPIC_SMALL_FAST_MODEL": "GLM-4.6",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "GLM-4.6",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "GLM-4.6",
"CLAUDE_CODE_MAX_OUTPUT_TOKENS": "32000",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
}
}
}

3.3. 使用示例

配置好模型后,就可以愉快地切换了:

1
2
3
4
5
6
7
8
9
10
11
# 切换到DeepSeek模型
ccms deepseek-chat

# 切换到美团LongCat模型
ccms longcat-flash

# 切换到智谱GLM模型
ccms glm-4.6

# 恢复使用官方Claude模型
ccms unset

4. 技术实现

这个工具的实现其实挺简单的,主要就是:

4.1. 文件操作

  • 读取和解析~/.claude/settings.json配置文件
  • 读取和解析~/.claude-code-model-switch/settings.json模型配置
  • 安全地修改Claude配置文件中的环境变量

4.2. 命令行界面

使用commander库来构建命令行界面,支持:

  • 参数解析
  • 子命令
  • 帮助信息
  • 版本信息

4.3. 安全设计

工具设计时特别注意了安全性:

  • 只修改模型相关变量:不会触及配置文件中的其他设置
  • 默认值处理:自动处理缺失的配置项
  • 错误处理:友好的错误提示和帮助信息

5. 发布到npm

项目已经发布到npm商店,可以直接安装使用:

1
npm install -g claude-code-model-switch

相关链接:

顺带记录一下如何发布npm的包,发布包之前需要有一个https://www.npmjs.com/的账户。

1
2
3
4
5
6
7
8
9
10
# 登录账户(需要先注册npm账户)
npm login
# 查一下有没有重名包
npm search claude-code-model-switch
# 发布
npm publish

# 需要重新发布(更新)
npm version patch # 升级版本号
npm publish

注意,如果你设置了npm的registry镜像站,需要先npm config delete registry,否则npm login可能不会登录到源站去,而是登录到镜像站里面去了,不符合我们发布包的需要。除非你打算在某个镜像站里面发包。

6. 总结

用了这个工具之后,切换模型真的方便多了。如果你也经常在多个大模型之间切换,不妨试试这个工具。

工具还在不断完善中,欢迎大家使用和反馈问题。如果你有新的需求或者发现了bug,可以在GitHub上提issue。


这里顺带解答一下一些朋友可能有的疑惑:这个项目的能力是不是可以用claude-code-router替代?

并不!二者算是不同方向的能力

  • claude-code-router本质上是聚合了很多个模型服务商,再对cc统一暴露一个本地url进行服务提供。
  • 当你需要修改claude-code-router使用的模型的时候,你需要修改claude-code-router配置文件,没办法用ccr命令搞定。
  • 本项目的模型切换是直接基于cc自带的环境变量设置实现的,没有ccr那么复杂的逻辑。能切换到的模型服务商也必须是原生提供了anthropic api的服务商,没有提供anthropic的服务商,只能用ccr转发接入。

所以,你可以在本项目的配置文件中把ccr也配置上,这样你也能切换到ccr去!