multi-ccp 0.1.5 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -12
- package/LICENSE +21 -21
- package/README.md +306 -306
- package/README.zh-CN.md +306 -306
- package/dist/cli/program.js +38 -2
- package/dist/cli/program.js.map +1 -1
- package/dist/core/ccr.d.ts +25 -0
- package/dist/core/ccr.js +97 -3
- package/dist/core/ccr.js.map +1 -1
- package/dist/core/presets.d.ts +8 -0
- package/dist/core/presets.js +18 -5
- package/dist/core/presets.js.map +1 -1
- package/dist/web/assets/app.js +16 -7
- package/dist/web/assets/index.html +112 -111
- package/dist/web/assets/styles.css +1 -1
- package/dist/web/server.js +36 -11
- package/dist/web/server.js.map +1 -1
- package/package.json +46 -46
package/README.zh-CN.md
CHANGED
|
@@ -1,306 +1,306 @@
|
|
|
1
|
-
# multi-ccp
|
|
2
|
-
|
|
3
|
-
[![NPM Version][npm-version]][npm-url]
|
|
4
|
-
[![NPM Downloads][npm-downloads]][npm-url]
|
|
5
|
-
[![License][license]][license-url]
|
|
6
|
-
|
|
7
|
-
[English](README.md) | 简体中文
|
|
8
|
-
|
|
9
|
-
`multi-ccp` 是一个 Claude Code profile 和历史会话管理工具。它会安装 `ccp` 命令,帮助你运行多个 Claude Code 会话窗口,并让每个窗口拥有独立隔离的配置目录、模型 provider、登录状态和历史记录。
|
|
10
|
-
|
|
11
|
-
当你希望为工作、个人项目、不同 API provider、不同模型路由分别使用独立 Claude Code 会话时,可以使用 `multi-ccp`,无需手动切换环境变量或反复编辑配置文件。
|
|
12
|
-
|
|
13
|
-

|
|
14
|
-
|
|
15
|
-
## 功能特性
|
|
16
|
-
|
|
17
|
-
- 使用独立 profile 运行多个 Claude Code 会话窗口。
|
|
18
|
-
- 每个 profile 的 Claude Code 配置、登录状态、环境变量和项目历史记录互相隔离。
|
|
19
|
-
- 创建兼容 Anthropic API 的 profile,自定义 `ANTHROPIC_BASE_URL`、token 和模型配置。
|
|
20
|
-
- 创建 Claude 登录 profile,使用 Claude Code 正常账号登录流程,不保存账号密码。
|
|
21
|
-
- 创建 [Claude Code Router](https://github.com/musistudio/claude-code-router) preset profile,支持多个模型 provider 和 route。
|
|
22
|
-
- 通过同一个 CLI 管理 [Claude Code Router](https://github.com/musistudio/claude-code-router)。
|
|
23
|
-
- 在不同 profile 之间,或在 `main` 与 profile 之间同步 Claude Code 历史会话。
|
|
24
|
-
- 快速查看、打开和编辑 profile 配置。
|
|
25
|
-
|
|
26
|
-
## 安装
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
npm install -g multi-ccp
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
验证安装:
|
|
33
|
-
|
|
34
|
-
```bash
|
|
35
|
-
ccp --version
|
|
36
|
-
ccp help
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
## 快速开始
|
|
40
|
-
|
|
41
|
-
想走最短路径?可以先问 AI 如何使用 `multi-ccp`。复制这句提示词:
|
|
42
|
-
|
|
43
|
-
```text
|
|
44
|
-
How do I use multi-ccp to manage multiple Claude Code profiles?
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
如果你想查看完整命令说明,可以继续阅读下面的示例。
|
|
48
|
-
|
|
49
|
-
打开本地 Web UI,用可视化方式查看 profile 和创建配置:
|
|
50
|
-
|
|
51
|
-
```bash
|
|
52
|
-
ccp ui
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
Web UI 是 CLI 的本地辅助界面,可用于查看 profile、基于预设创建 profile、编辑 profile 配置,以及打开 CCR 管理入口。
|
|
56
|
-
|
|
57
|
-

|
|
58
|
-
|
|
59
|
-
交互式创建一个 profile:
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
-
ccp add
|
|
63
|
-
ccp start <profile-name>
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
`ccp add` 会让你选择内置预设模板或自定义配置,例如 DeepSeek、AI CodeMirror、Mimo、CCR GPT、Manual CCR、Claude Login 或 Custom API。
|
|
67
|
-
|
|
68
|
-
如果你想直接使用某个内置预设,也可以指定 `--preset`:
|
|
69
|
-
|
|
70
|
-
```bash
|
|
71
|
-
ccp add --preset deepseek
|
|
72
|
-
ccp add --preset deepseek my-ds
|
|
73
|
-
ccp start my-ds
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
为另一个 provider、账号或项目上下文创建独立 profile:
|
|
77
|
-
|
|
78
|
-
```bash
|
|
79
|
-
ccp add
|
|
80
|
-
ccp start <profile-name>
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
列出和查看 profile:
|
|
84
|
-
|
|
85
|
-
```bash
|
|
86
|
-
ccp list
|
|
87
|
-
ccp status work
|
|
88
|
-
ccp path work
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
## Profile 类型
|
|
92
|
-
|
|
93
|
-
### API Profiles
|
|
94
|
-
|
|
95
|
-
API profile 用于兼容 Anthropic API 的 provider。它会将 API 环境变量写入该 profile 的 `settings.json`。
|
|
96
|
-
|
|
97
|
-
```bash
|
|
98
|
-
ccp add
|
|
99
|
-
ccp start <profile-name>
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
选择 API 预设时,命令会提示你输入 profile 名称和 token。选择 Custom API 时,命令会提示你输入:
|
|
103
|
-
|
|
104
|
-
- `ANTHROPIC_BASE_URL`
|
|
105
|
-
- `ANTHROPIC_AUTH_TOKEN`
|
|
106
|
-
- 模型名称(可选;留空则使用 Claude Code 默认模型)
|
|
107
|
-
|
|
108
|
-
#### 自定义 provider 模型
|
|
109
|
-
|
|
110
|
-
为了简化 provider 配置,`ccp add` 会把你输入的模型名称默认写入所有 Claude Code 默认模型槽位。如果留空,`multi-ccp` 不会写入任何模型环境变量,由 Claude Code 使用默认模型。以填写了模型的 DeepSeek profile 为例,初始配置可能类似:
|
|
111
|
-
|
|
112
|
-
```json
|
|
113
|
-
{
|
|
114
|
-
"env": {
|
|
115
|
-
"ANTHROPIC_AUTH_TOKEN": "sk-",
|
|
116
|
-
"ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic",
|
|
117
|
-
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-v4-pro",
|
|
118
|
-
"ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek-v4-pro",
|
|
119
|
-
"ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek-v4-pro",
|
|
120
|
-
"ANTHROPIC_MODEL": "deepseek-v4-pro"
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
如果你的 provider 为快速任务、子代理或长上下文任务提供了不同模型,可以手动编辑 profile:
|
|
126
|
-
|
|
127
|
-
```bash
|
|
128
|
-
ccp edit deepseek
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
例如,把轻量模型分配给快速任务,把支持 1M 上下文的模型分配给主模型槽位:
|
|
132
|
-
|
|
133
|
-
```json
|
|
134
|
-
{
|
|
135
|
-
"env": {
|
|
136
|
-
"ANTHROPIC_AUTH_TOKEN": "sk-",
|
|
137
|
-
"ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic",
|
|
138
|
-
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-v4-flash",
|
|
139
|
-
"ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek-v4-pro[1M]",
|
|
140
|
-
"ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek-v4-pro[1M]",
|
|
141
|
-
"CLAUDE_CODE_SUBAGENT_MODEL": "deepseek-v4-flash",
|
|
142
|
-
"ANTHROPIC_MODEL": "deepseek-v4-pro[1M]"
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
具体模型名称和 endpoint 请参考 [DeepSeek API 文档](https://api-docs.deepseek.com/)。
|
|
148
|
-
|
|
149
|
-
### Login Profiles
|
|
150
|
-
|
|
151
|
-
Login profile 用于 Claude Code 的账号登录模式。它不会设置 `ANTHROPIC_BASE_URL` 或 `ANTHROPIC_AUTH_TOKEN`。
|
|
152
|
-
|
|
153
|
-
```bash
|
|
154
|
-
ccp add
|
|
155
|
-
ccp start <profile-name>
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
当 Claude Code 要求你登录时,登录状态会保存在这个 profile 的配置目录下。另一个 profile 可以使用不同账号或不同登录状态:
|
|
159
|
-
|
|
160
|
-
```bash
|
|
161
|
-
ccp add-login personal
|
|
162
|
-
ccp start personal
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
`ccp add-login <profile>` 仍可作为直接创建登录 profile 的兼容入口。
|
|
166
|
-
|
|
167
|
-
### Claude Code Router Profiles
|
|
168
|
-
|
|
169
|
-
CCR profile 绑定到 [Claude Code Router](https://github.com/musistudio/claude-code-router) preset。Claude Code Router 是一个独立的开源项目,可以将 Claude Code 请求路由到不同模型 provider。`multi-ccp` 会集成它的 config 和 preset system,让每个 profile 可以使用自己的 provider route。
|
|
170
|
-
|
|
171
|
-
```bash
|
|
172
|
-
ccp ccr status
|
|
173
|
-
ccp ccr model
|
|
174
|
-
ccp add
|
|
175
|
-
ccp start <profile-name>
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
CCR profile 会把 route 写入 `.ccp.json`,并让 Claude Code 指向类似这样的 preset endpoint:
|
|
179
|
-
|
|
180
|
-
```text
|
|
181
|
-
http://127.0.0.1:3456/preset/gpt-route
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
## 历史会话同步
|
|
185
|
-
|
|
186
|
-
`sync-session` 会同步当前项目的 Claude Code 历史会话。你可以交互式选择要同步的会话,也可以一次同步全部会话。
|
|
187
|
-
|
|
188
|
-
从 `main` 同步到某个 profile:
|
|
189
|
-
|
|
190
|
-
```bash
|
|
191
|
-
ccp sync-session work
|
|
192
|
-
ccp sync-session work --all
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
在两个命名 profile 之间同步:
|
|
196
|
-
|
|
197
|
-
```bash
|
|
198
|
-
ccp sync-session work to personal
|
|
199
|
-
ccp sync-session work to personal --all
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
从 profile 同步回 `main`:
|
|
203
|
-
|
|
204
|
-
```bash
|
|
205
|
-
ccp sync-session work to main
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
同步命令会在 `.ccp-sync` 中记录 hash,复制 session assets,并在目标文件存在冲突时提示是否覆盖。
|
|
209
|
-
|
|
210
|
-
## 命令
|
|
211
|
-
|
|
212
|
-
```bash
|
|
213
|
-
ccp help
|
|
214
|
-
ccp list
|
|
215
|
-
ccp ui
|
|
216
|
-
ccp add [profile]
|
|
217
|
-
ccp add --preset <preset> [profile]
|
|
218
|
-
ccp add-login <profile>
|
|
219
|
-
ccp add-ccr <profile>
|
|
220
|
-
ccp remove <profile>
|
|
221
|
-
ccp status <profile|main>
|
|
222
|
-
ccp start <profile> [claude args...]
|
|
223
|
-
ccp path <profile|main>
|
|
224
|
-
ccp edit <profile>
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
[Claude Code Router](https://github.com/musistudio/claude-code-router) 相关命令:
|
|
228
|
-
|
|
229
|
-
```bash
|
|
230
|
-
ccp ccr status
|
|
231
|
-
ccp ccr install
|
|
232
|
-
ccp ccr start
|
|
233
|
-
ccp ccr stop
|
|
234
|
-
ccp ccr restart
|
|
235
|
-
ccp ccr ui
|
|
236
|
-
ccp ccr model
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
历史会话同步命令:
|
|
240
|
-
|
|
241
|
-
```bash
|
|
242
|
-
ccp sync-session <target-profile> [--all]
|
|
243
|
-
ccp sync-session <source-profile|main> to <target-profile|main> [--all]
|
|
244
|
-
```
|
|
245
|
-
|
|
246
|
-
## 配置目录
|
|
247
|
-
|
|
248
|
-
Profiles 默认存放在:
|
|
249
|
-
|
|
250
|
-
```text
|
|
251
|
-
~/.claude-profiles/<profile>
|
|
252
|
-
```
|
|
253
|
-
|
|
254
|
-
Claude Code 默认配置目录仍然可以通过 `main` 访问:
|
|
255
|
-
|
|
256
|
-
```text
|
|
257
|
-
main
|
|
258
|
-
```
|
|
259
|
-
|
|
260
|
-
例如:
|
|
261
|
-
|
|
262
|
-
```bash
|
|
263
|
-
ccp status main
|
|
264
|
-
ccp sync-session main to work
|
|
265
|
-
ccp sync-session work to main
|
|
266
|
-
```
|
|
267
|
-
|
|
268
|
-
## 安全说明
|
|
269
|
-
|
|
270
|
-
- `ccp remove <profile>` 删除前会要求你输入 profile 名称确认。
|
|
271
|
-
- `ccp add`、`ccp add-login` 和 `ccp add-ccr` 不会覆盖已经存在的 profile。
|
|
272
|
-
- `sync-session` 使用 SHA-256 hash 检测冲突,并在覆盖目标文件前询问确认。
|
|
273
|
-
- Login profile 不保存 Claude 账号密码。
|
|
274
|
-
|
|
275
|
-
## 开发
|
|
276
|
-
|
|
277
|
-
```bash
|
|
278
|
-
git clone <repository-url>
|
|
279
|
-
cd multi-ccp
|
|
280
|
-
npm install
|
|
281
|
-
npm run typecheck
|
|
282
|
-
npm test
|
|
283
|
-
npm run build
|
|
284
|
-
```
|
|
285
|
-
|
|
286
|
-
从源码运行 CLI:
|
|
287
|
-
|
|
288
|
-
```bash
|
|
289
|
-
npm run dev -- help
|
|
290
|
-
```
|
|
291
|
-
|
|
292
|
-
预览 npm 包内容:
|
|
293
|
-
|
|
294
|
-
```bash
|
|
295
|
-
npm pack --dry-run
|
|
296
|
-
```
|
|
297
|
-
|
|
298
|
-
## License
|
|
299
|
-
|
|
300
|
-
MIT
|
|
301
|
-
|
|
302
|
-
[npm-version]: https://img.shields.io/npm/v/multi-ccp?style=flat-square
|
|
303
|
-
[npm-downloads]: https://img.shields.io/npm/dm/multi-ccp?style=flat-square
|
|
304
|
-
[npm-url]: https://www.npmjs.com/package/multi-ccp
|
|
305
|
-
[license]: https://img.shields.io/npm/l/multi-ccp?style=flat-square
|
|
306
|
-
[license-url]: LICENSE
|
|
1
|
+
# multi-ccp
|
|
2
|
+
|
|
3
|
+
[![NPM Version][npm-version]][npm-url]
|
|
4
|
+
[![NPM Downloads][npm-downloads]][npm-url]
|
|
5
|
+
[![License][license]][license-url]
|
|
6
|
+
|
|
7
|
+
[English](README.md) | 简体中文
|
|
8
|
+
|
|
9
|
+
`multi-ccp` 是一个 Claude Code profile 和历史会话管理工具。它会安装 `ccp` 命令,帮助你运行多个 Claude Code 会话窗口,并让每个窗口拥有独立隔离的配置目录、模型 provider、登录状态和历史记录。
|
|
10
|
+
|
|
11
|
+
当你希望为工作、个人项目、不同 API provider、不同模型路由分别使用独立 Claude Code 会话时,可以使用 `multi-ccp`,无需手动切换环境变量或反复编辑配置文件。
|
|
12
|
+
|
|
13
|
+

|
|
14
|
+
|
|
15
|
+
## 功能特性
|
|
16
|
+
|
|
17
|
+
- 使用独立 profile 运行多个 Claude Code 会话窗口。
|
|
18
|
+
- 每个 profile 的 Claude Code 配置、登录状态、环境变量和项目历史记录互相隔离。
|
|
19
|
+
- 创建兼容 Anthropic API 的 profile,自定义 `ANTHROPIC_BASE_URL`、token 和模型配置。
|
|
20
|
+
- 创建 Claude 登录 profile,使用 Claude Code 正常账号登录流程,不保存账号密码。
|
|
21
|
+
- 创建 [Claude Code Router](https://github.com/musistudio/claude-code-router) preset profile,支持多个模型 provider 和 route。
|
|
22
|
+
- 通过同一个 CLI 管理 [Claude Code Router](https://github.com/musistudio/claude-code-router)。
|
|
23
|
+
- 在不同 profile 之间,或在 `main` 与 profile 之间同步 Claude Code 历史会话。
|
|
24
|
+
- 快速查看、打开和编辑 profile 配置。
|
|
25
|
+
|
|
26
|
+
## 安装
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npm install -g multi-ccp
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
验证安装:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
ccp --version
|
|
36
|
+
ccp help
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## 快速开始
|
|
40
|
+
|
|
41
|
+
想走最短路径?可以先问 AI 如何使用 `multi-ccp`。复制这句提示词:
|
|
42
|
+
|
|
43
|
+
```text
|
|
44
|
+
How do I use multi-ccp to manage multiple Claude Code profiles?
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
如果你想查看完整命令说明,可以继续阅读下面的示例。
|
|
48
|
+
|
|
49
|
+
打开本地 Web UI,用可视化方式查看 profile 和创建配置:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
ccp ui
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Web UI 是 CLI 的本地辅助界面,可用于查看 profile、基于预设创建 profile、编辑 profile 配置,以及打开 CCR 管理入口。
|
|
56
|
+
|
|
57
|
+

|
|
58
|
+
|
|
59
|
+
交互式创建一个 profile:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
ccp add
|
|
63
|
+
ccp start <profile-name>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
`ccp add` 会让你选择内置预设模板或自定义配置,例如 DeepSeek、AI CodeMirror、Mimo、CCR GPT、Manual CCR、Claude Login 或 Custom API。
|
|
67
|
+
|
|
68
|
+
如果你想直接使用某个内置预设,也可以指定 `--preset`:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
ccp add --preset deepseek
|
|
72
|
+
ccp add --preset deepseek my-ds
|
|
73
|
+
ccp start my-ds
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
为另一个 provider、账号或项目上下文创建独立 profile:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
ccp add
|
|
80
|
+
ccp start <profile-name>
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
列出和查看 profile:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
ccp list
|
|
87
|
+
ccp status work
|
|
88
|
+
ccp path work
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Profile 类型
|
|
92
|
+
|
|
93
|
+
### API Profiles
|
|
94
|
+
|
|
95
|
+
API profile 用于兼容 Anthropic API 的 provider。它会将 API 环境变量写入该 profile 的 `settings.json`。
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
ccp add
|
|
99
|
+
ccp start <profile-name>
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
选择 API 预设时,命令会提示你输入 profile 名称和 token。选择 Custom API 时,命令会提示你输入:
|
|
103
|
+
|
|
104
|
+
- `ANTHROPIC_BASE_URL`
|
|
105
|
+
- `ANTHROPIC_AUTH_TOKEN`
|
|
106
|
+
- 模型名称(可选;留空则使用 Claude Code 默认模型)
|
|
107
|
+
|
|
108
|
+
#### 自定义 provider 模型
|
|
109
|
+
|
|
110
|
+
为了简化 provider 配置,`ccp add` 会把你输入的模型名称默认写入所有 Claude Code 默认模型槽位。如果留空,`multi-ccp` 不会写入任何模型环境变量,由 Claude Code 使用默认模型。以填写了模型的 DeepSeek profile 为例,初始配置可能类似:
|
|
111
|
+
|
|
112
|
+
```json
|
|
113
|
+
{
|
|
114
|
+
"env": {
|
|
115
|
+
"ANTHROPIC_AUTH_TOKEN": "sk-",
|
|
116
|
+
"ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic",
|
|
117
|
+
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-v4-pro",
|
|
118
|
+
"ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek-v4-pro",
|
|
119
|
+
"ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek-v4-pro",
|
|
120
|
+
"ANTHROPIC_MODEL": "deepseek-v4-pro"
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
如果你的 provider 为快速任务、子代理或长上下文任务提供了不同模型,可以手动编辑 profile:
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
ccp edit deepseek
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
例如,把轻量模型分配给快速任务,把支持 1M 上下文的模型分配给主模型槽位:
|
|
132
|
+
|
|
133
|
+
```json
|
|
134
|
+
{
|
|
135
|
+
"env": {
|
|
136
|
+
"ANTHROPIC_AUTH_TOKEN": "sk-",
|
|
137
|
+
"ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic",
|
|
138
|
+
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-v4-flash",
|
|
139
|
+
"ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek-v4-pro[1M]",
|
|
140
|
+
"ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek-v4-pro[1M]",
|
|
141
|
+
"CLAUDE_CODE_SUBAGENT_MODEL": "deepseek-v4-flash",
|
|
142
|
+
"ANTHROPIC_MODEL": "deepseek-v4-pro[1M]"
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
具体模型名称和 endpoint 请参考 [DeepSeek API 文档](https://api-docs.deepseek.com/)。
|
|
148
|
+
|
|
149
|
+
### Login Profiles
|
|
150
|
+
|
|
151
|
+
Login profile 用于 Claude Code 的账号登录模式。它不会设置 `ANTHROPIC_BASE_URL` 或 `ANTHROPIC_AUTH_TOKEN`。
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
ccp add
|
|
155
|
+
ccp start <profile-name>
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
当 Claude Code 要求你登录时,登录状态会保存在这个 profile 的配置目录下。另一个 profile 可以使用不同账号或不同登录状态:
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
ccp add-login personal
|
|
162
|
+
ccp start personal
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
`ccp add-login <profile>` 仍可作为直接创建登录 profile 的兼容入口。
|
|
166
|
+
|
|
167
|
+
### Claude Code Router Profiles
|
|
168
|
+
|
|
169
|
+
CCR profile 绑定到 [Claude Code Router](https://github.com/musistudio/claude-code-router) preset。Claude Code Router 是一个独立的开源项目,可以将 Claude Code 请求路由到不同模型 provider。`multi-ccp` 会集成它的 config 和 preset system,让每个 profile 可以使用自己的 provider route。
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
ccp ccr status
|
|
173
|
+
ccp ccr model
|
|
174
|
+
ccp add
|
|
175
|
+
ccp start <profile-name>
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
CCR profile 会把 route 写入 `.ccp.json`,并让 Claude Code 指向类似这样的 preset endpoint:
|
|
179
|
+
|
|
180
|
+
```text
|
|
181
|
+
http://127.0.0.1:3456/preset/gpt-route
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## 历史会话同步
|
|
185
|
+
|
|
186
|
+
`sync-session` 会同步当前项目的 Claude Code 历史会话。你可以交互式选择要同步的会话,也可以一次同步全部会话。
|
|
187
|
+
|
|
188
|
+
从 `main` 同步到某个 profile:
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
ccp sync-session work
|
|
192
|
+
ccp sync-session work --all
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
在两个命名 profile 之间同步:
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
ccp sync-session work to personal
|
|
199
|
+
ccp sync-session work to personal --all
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
从 profile 同步回 `main`:
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
ccp sync-session work to main
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
同步命令会在 `.ccp-sync` 中记录 hash,复制 session assets,并在目标文件存在冲突时提示是否覆盖。
|
|
209
|
+
|
|
210
|
+
## 命令
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
ccp help
|
|
214
|
+
ccp list
|
|
215
|
+
ccp ui
|
|
216
|
+
ccp add [profile]
|
|
217
|
+
ccp add --preset <preset> [profile]
|
|
218
|
+
ccp add-login <profile>
|
|
219
|
+
ccp add-ccr <profile>
|
|
220
|
+
ccp remove <profile>
|
|
221
|
+
ccp status <profile|main>
|
|
222
|
+
ccp start <profile> [claude args...]
|
|
223
|
+
ccp path <profile|main>
|
|
224
|
+
ccp edit <profile>
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
[Claude Code Router](https://github.com/musistudio/claude-code-router) 相关命令:
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
ccp ccr status
|
|
231
|
+
ccp ccr install
|
|
232
|
+
ccp ccr start
|
|
233
|
+
ccp ccr stop
|
|
234
|
+
ccp ccr restart
|
|
235
|
+
ccp ccr ui
|
|
236
|
+
ccp ccr model
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
历史会话同步命令:
|
|
240
|
+
|
|
241
|
+
```bash
|
|
242
|
+
ccp sync-session <target-profile> [--all]
|
|
243
|
+
ccp sync-session <source-profile|main> to <target-profile|main> [--all]
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
## 配置目录
|
|
247
|
+
|
|
248
|
+
Profiles 默认存放在:
|
|
249
|
+
|
|
250
|
+
```text
|
|
251
|
+
~/.claude-profiles/<profile>
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
Claude Code 默认配置目录仍然可以通过 `main` 访问:
|
|
255
|
+
|
|
256
|
+
```text
|
|
257
|
+
main
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
例如:
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
ccp status main
|
|
264
|
+
ccp sync-session main to work
|
|
265
|
+
ccp sync-session work to main
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
## 安全说明
|
|
269
|
+
|
|
270
|
+
- `ccp remove <profile>` 删除前会要求你输入 profile 名称确认。
|
|
271
|
+
- `ccp add`、`ccp add-login` 和 `ccp add-ccr` 不会覆盖已经存在的 profile。
|
|
272
|
+
- `sync-session` 使用 SHA-256 hash 检测冲突,并在覆盖目标文件前询问确认。
|
|
273
|
+
- Login profile 不保存 Claude 账号密码。
|
|
274
|
+
|
|
275
|
+
## 开发
|
|
276
|
+
|
|
277
|
+
```bash
|
|
278
|
+
git clone <repository-url>
|
|
279
|
+
cd multi-ccp
|
|
280
|
+
npm install
|
|
281
|
+
npm run typecheck
|
|
282
|
+
npm test
|
|
283
|
+
npm run build
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
从源码运行 CLI:
|
|
287
|
+
|
|
288
|
+
```bash
|
|
289
|
+
npm run dev -- help
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
预览 npm 包内容:
|
|
293
|
+
|
|
294
|
+
```bash
|
|
295
|
+
npm pack --dry-run
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
## License
|
|
299
|
+
|
|
300
|
+
MIT
|
|
301
|
+
|
|
302
|
+
[npm-version]: https://img.shields.io/npm/v/multi-ccp?style=flat-square
|
|
303
|
+
[npm-downloads]: https://img.shields.io/npm/dm/multi-ccp?style=flat-square
|
|
304
|
+
[npm-url]: https://www.npmjs.com/package/multi-ccp
|
|
305
|
+
[license]: https://img.shields.io/npm/l/multi-ccp?style=flat-square
|
|
306
|
+
[license-url]: LICENSE
|