22
33[ English] ( ./README_EN.md ) | 中文
44
5- Claude Code settings.json中key自动配置工具,方便API_KEY 、AUTH_TOKEN以及多Model之间快速切换
5+ Claude Code settings.json中key自动配置工具,方便多个API_KEY 、AUTH_TOKEN以及多Model之间快速切换
66
77## 功能特性
88
99- 🚀 ** 一键切换** - 轻松在不同 Claude API 配置间切换
10+ - ⚡ ** 延迟测试** - 快速同时测试所有API配置,延迟智能排序显示
11+ - 🎯 ** 自动优选** - 自动测试并切换到延迟最低的最优配置
1012- 🔒 ** 安全备份** - 修改前自动备份 settings.json 文件
1113- 📝 ** 友好提示** - 详细的错误信息和操作指导
12- - 🎯 ** 智能识别** - 自动识别当前使用的配置
14+ - 🧠 ** 智能识别** - 自动识别当前使用的配置和最优路线
1315- 🛡️ ** 数据保护** - 敏感信息脱敏显示
1416- 📄 ** 多格式支持** - 支持 JSON、JSON5、YAML、TOML 配置文件
17+ - 🔧 ** 数组支持** - 支持多个URL、Key、Token、Model等字段的数组配置
1518
1619## 安装
1720
@@ -36,25 +39,31 @@ ccapi -v
3639``` bash
3740例如:
3841# 同时设置两个路径
39- ccapi set --settings /Users/4xian/ .claude/settings.json --api /Users/4xian/Desktop/api.json
42+ ccapi set --settings ~ / .claude/settings.json --api /Users/4xian/Desktop/api.json5
4043
41- # 或分别设置
42- ccapi set --settings /Users/4xian/.claude/settings.json
43- ccapi set --api /Users/4xian/Desktop/api.json
44+ # 分别设置
45+ ccapi set --settings ~ /.claude/settings.json
46+ ccapi set --api /Users/4xian/Desktop/api.json5
47+
48+ # 直接在配置文件中修改路径
49+ 在 ~ /.ccapi-config.json 文件中(与.claude同级),有存储路径的变量,直接修改即可
50+ {
51+ " settingsPath" : " ~/.claude/settings.json" ,
52+ " apiConfigPath" : " /Users/4xian/Desktop/api.json5" ,
53+ }
4454
4555# 查询当前配置文件路径
4656ccapi set
4757```
4858
4959### 3. 自定义API配置文件格式
5060
51- 现在支持多种配置文件格式:** JSON、JSON5、YAML、TOML** 。
52-
53- 创建一个配置文件(如 ` api.json ` 、` api.yaml ` 、` api.jsonc ` 、` api.json5 ` 或 ` api.toml ` ),格式如下:
61+ 支持多种配置文件格式:** JSON、JSON5、YAML、TOML**
62+ 创建一个配置文件(如 ` api.json ` 、` api.yaml ` 、` api.json5 ` 或 ` api.toml ` ),格式如下:
5463
5564** JSON 格式示例:**
5665
57- ``` json
66+ ``` json5
5867{
5968 " openrouter" : {
6069 " url" : " https://api.openrouter.ai" ,
@@ -64,15 +73,12 @@ ccapi set
6473 " timeout" : 600000 ,
6574 " tokens" : 65000
6675 },
76+ // 推荐使用数组形式,可进行多个配置
6777 " multiconfig" : {
6878 " url" : [
6979 " https://api.example1.com" ,
7080 " https://api.example2.com"
7181 ],
72- "key" : [
73- " sk-key1-for-api1" ,
74- " sk-key2-for-api2"
75- ],
7682 " token" : [
7783 " token1-for-auth" ,
7884 " token2-for-auth"
@@ -105,9 +111,6 @@ multiconfig:
105111 url :
106112 - " https://api.example1.com"
107113 - " https://api.example2.com"
108- key :
109- - " sk-key1-for-api1"
110- - " sk-key2-for-api2"
111114 token :
112115 - " token1-for-auth"
113116 - " token2-for-auth"
@@ -152,10 +155,6 @@ url = [
152155 " https://api.example1.com" ,
153156 " https://api.example2.com"
154157]
155- key = [
156- " sk-key1-for-api1" ,
157- " sk-key2-for-api2"
158- ]
159158token = [
160159 " token1-for-auth" ,
161160 " token2-for-auth"
@@ -191,7 +190,7 @@ fast = [
191190 - ** 字符串格式** : 直接指定一个快速模型
192191 - ** 数组格式** : 可指定多个快速模型,支持通过索引切换
193192- ` timeout ` : 请求超时时间(非必需,默认为官方600000ms)
194- - ` tokens ` : 最大输出令牌数(非必需,默认为官方 )
193+ - ` tokens ` : 最大输出令牌数(非必需,默认以官方为准 )
195194- ` http ` : 为网络连接指定 HTTP 代理服务器
196195- ` https ` : 为网络连接指定 HTTPS 代理服务器
197196
@@ -262,9 +261,6 @@ ccapi use multiconfig -t 2 # 只切换到某个Token
262261ccapi use multiconfig -u 1 # 只切换到某个URL
263262ccapi use multiconfig -m 3 # 只切换到某个Model
264263ccapi use multiconfig -f 2 # 只切换到某个Fast Model索引
265-
266- # 组合使用示例
267- ccapi use multiconfig -u 1 -k 1 -m 1 -f 2
268264```
269265
270266** 参数说明:**
@@ -278,6 +274,129 @@ ccapi use multiconfig -u 1 -k 1 -m 1 -f 2
278274- 不指定索引时默认使用数组的第一个元素
279275- 可以任意组合使用这些参数
280276
277+ ### 6. 测试API延迟
278+
279+ #### 测试所有配置(默认并行模式)
280+
281+ ``` bash
282+ # 并行测试(快速,推荐)
283+ ccapi test
284+
285+ # 串行测试(逐一测试)
286+ ccapi test -s
287+ ```
288+
289+ #### 测试指定配置
290+
291+ ``` bash
292+ # 并行测试指定配置
293+ ccapi test openrouter
294+
295+ # 串行测试指定配置
296+ ccapi test -s openrouter
297+ ```
298+
299+ ** 测试模式说明:**
300+
301+ - ** 并行测试(默认)** : 同时测试所有URL,速度快,结果按配置的最佳延迟排序显示
302+ - ** 串行测试(-s选项)** : 逐个测试URL,按配置分组显示
303+
304+ ** 测试说明:**
305+
306+ - ** 测试超时时间** :默认为5秒,可在 ~ /.ccapi-config.json 文件中新增变量控制超时,如:testTimeout: 10000
307+ - ** 测试返回的结果** :默认不显示,由于厂商不同,返回结果仅供参考,返回错误不代表不能在claude code中使用,只需关注延迟时间就行,可在 ~ /.ccapi-config.json 文件中新增变量是否显示结果,如:testResponse: true
308+
309+ ``` json5
310+ {
311+ " settingsPath" : " ~/.claude/settings.json" ,
312+ " apiConfigPath" : " /Users/4xian/Desktop/api.json5" ,
313+ " testTimeout" : 5000 ,
314+ " testResponse" : false
315+ }
316+ ```
317+
318+ - 对于数组格式的url,会测试所有URL地址,数组配置的url内部不会按延迟排序,保持原有的url顺序
319+ - 配置按最佳延迟排序,延迟最低的配置排在前面
320+ - 显示每个配置的最优路线(最快的URL地址)
321+
322+ ** 并行测试结果示例:**
323+
324+ ``` text
325+ 测试结果(按延迟从低到高):
326+
327+ 【xxx】(最优路线: xxx/claude)
328+ 1.[https://xxx/claude] ● 628ms
329+
330+ 【multiconfig】(最优路线: api.example1.com)
331+ 1.[https://api.example1.com] ● 856ms
332+ 2.[https://api.example2.com] ● 892ms
333+
334+ ```
335+
336+ ### 7. 自动选择最优配置
337+
338+ #### 基本自动选择
339+
340+ ``` bash
341+ # 会先进行测试,然后选择最优的配置进行自动切换
342+ ccapi auto
343+ ```
344+
345+ #### 多命令配合执行
346+
347+ ``` bash
348+ # 常用于组合命令,这样每次启动claude前都会选择最优路线
349+ ccapi auto && claude
350+
351+ # 也可以自定义别名,每次使用别名启动
352+ alias cc=ccapi auto && claude
353+ cc
354+ ```
355+
356+ ** 功能说明:**
357+
358+ - ** 使用并行测试** :快速同时测试所有API配置的延迟
359+ - ** 智能选择** :自动选择全局延迟最低的配置并切换
360+ - ** 注意事项** :
361+ - 对于数组格式的配置,自动选择最优URL
362+ - 若KEY/TOKEN为数组,则会对齐最优URL索引进行搭配,比如:最优URL为索引1,KEY/TOKEN也会选择索引1,最优URL为2,KEY/TOKEN也会选择索引2,若不想自动切换KEY/TOKEN,将其始终配为一个即可
363+ - ** 趣味搭配** :
364+ - 由于自动配置的对齐规则,可以在一个配置中进行多厂商配置,比如:
365+
366+ ``` json5
367+ {
368+ " aaa" : {
369+ " url" : [
370+ " https: 第一个厂商.com" ,
371+ " https: 第二个厂商.com" ,
372+ " https: 第三个厂商.com" ,
373+ ],
374+ " token" : [
375+ " 第一个厂商的token" ,
376+ " 第二个厂商的token" ,
377+ " 第三个厂商的token" ,
378+ ],
379+ " model" : [" xxx" ]
380+ },
381+ " bbb" : {
382+ " url" : [
383+ " https: 第一个厂商.com" ,
384+ " https: 第二个厂商.com" ,
385+ " https: 第三个厂商.com" ,
386+ ],
387+ " key" : [
388+ " 第一个厂商的key" ,
389+ " 第二个厂商的key" ,
390+ " 第三个厂商的key" ,
391+ ],
392+ " model" : [" xxx" ]
393+ },
394+ }
395+ ```
396+
397+ - 这样自动选择第一个厂商的同时会自动选择第一个厂商的token,选择第二个厂商的同时会自动选择第二个厂商的token...
398+ - 注意token类的厂商放一起,key类的厂商放一起
399+
281400## 系统要求
282401
283402- Node .js >= 14.0 .0
0 commit comments