multi-ccp 0.1.4 → 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 CHANGED
@@ -1,12 +1,12 @@
1
- # Changelog
2
-
3
- ## 0.1.0
4
-
5
- - Initial TypeScript npm package scaffold.
6
- - Added cross-platform profile core for API and Claude login profiles.
7
- - Added CLI commands for `list`, `add`, `add-login`, `remove`, `status`, `path`, `edit`, and `start`.
8
- - Added Vitest coverage for core profile behavior.
9
- - Added CCR base commands for `status`, `install`, `start`, `stop`, `restart`, `ui`, and `model`.
10
- - Added CCR preset-bound profile creation with `add-ccr`.
11
- - Added CCR profile gateway preparation before `ccp start`.
12
- - Added session synchronization with `sync-session`.
1
+ # Changelog
2
+
3
+ ## 0.1.0
4
+
5
+ - Initial TypeScript npm package scaffold.
6
+ - Added cross-platform profile core for API and Claude login profiles.
7
+ - Added CLI commands for `list`, `add`, `add-login`, `remove`, `status`, `path`, `edit`, and `start`.
8
+ - Added Vitest coverage for core profile behavior.
9
+ - Added CCR base commands for `status`, `install`, `start`, `stop`, `restart`, `ui`, and `model`.
10
+ - Added CCR preset-bound profile creation with `add-ccr`.
11
+ - Added CCR profile gateway preparation before `ccp start`.
12
+ - Added session synchronization with `sync-session`.
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.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.zh-CN.md)
8
-
9
- `multi-ccp` is a profile and session manager for Claude Code. It installs the `ccp` command and helps you run multiple Claude Code windows with fully isolated configuration directories, model providers, login state, and history.
10
-
11
- Use it when you want separate Claude Code sessions for work, personal projects, different API providers, or different model routes without manually switching environment variables or editing config files.
12
-
13
- ![multi-ccp](docs/images/image.png)
14
-
15
- ## Features
16
-
17
- - Run multiple Claude Code windows with independent profiles.
18
- - Keep each profile's Claude Code config, login state, environment variables, and project history isolated.
19
- - Create Anthropic-compatible API profiles with custom `ANTHROPIC_BASE_URL`, token, and model settings.
20
- - Create Claude login profiles that use Claude Code's normal account login flow without storing account passwords.
21
- - Create [Claude Code Router](https://github.com/musistudio/claude-code-router) preset profiles for multiple model providers and routes.
22
- - Manage [Claude Code Router](https://github.com/musistudio/claude-code-router) from the same CLI.
23
- - Sync historical Claude Code sessions between profiles or between `main` and a profile.
24
- - Open and inspect profile settings quickly from the terminal.
25
-
26
- ## Install
27
-
28
- ```bash
29
- npm install -g multi-ccp
30
- ```
31
-
32
- Verify the install:
33
-
34
- ```bash
35
- ccp --version
36
- ccp help
37
- ```
38
-
39
- ## Quick Start
40
-
41
- Want the shortest path? Ask your AI assistant how to use `multi-ccp`. Copy this prompt:
42
-
43
- ```text
44
- How do I use multi-ccp to manage multiple Claude Code profiles?
45
- ```
46
-
47
- Then continue with the examples below when you want the full command reference.
48
-
49
- Open the local Web UI to browse profiles and create configurations visually:
50
-
51
- ```bash
52
- ccp ui
53
- ```
54
-
55
- The Web UI is a local companion for the CLI. It helps you inspect profiles, create preset-based profiles, edit profile settings, and open CCR management shortcuts.
56
-
57
- ![multi-ccp](docs/images/cli-ui.png)
58
-
59
- Create a profile interactively:
60
-
61
- ```bash
62
- ccp add
63
- ccp start <profile-name>
64
- ```
65
-
66
- `ccp add` lets you choose a built-in preset template or custom configuration, including DeepSeek, AI CodeMirror, Mimo, CCR GPT, Manual CCR, Claude Login, or Custom API.
67
-
68
- If you want to create directly from a built-in preset, pass `--preset`:
69
-
70
- ```bash
71
- ccp add --preset deepseek
72
- ccp add --preset deepseek my-ds
73
- ccp start my-ds
74
- ```
75
-
76
- Create another isolated profile for a different provider, account, or project context:
77
-
78
- ```bash
79
- ccp add
80
- ccp start <profile-name>
81
- ```
82
-
83
- List and inspect profiles:
84
-
85
- ```bash
86
- ccp list
87
- ccp status work
88
- ccp path work
89
- ```
90
-
91
- ## Profile Types
92
-
93
- ### API Profiles
94
-
95
- API profiles are for Anthropic-compatible providers. They store API environment variables in the profile's `settings.json`.
96
-
97
- ```bash
98
- ccp add
99
- ccp start <profile-name>
100
- ```
101
-
102
- When you choose an API preset, the command prompts for a profile name and token. When you choose Custom API, it prompts for:
103
-
104
- - `ANTHROPIC_BASE_URL`
105
- - `ANTHROPIC_AUTH_TOKEN`
106
- - Model name (optional; leave empty to use Claude Code's default model)
107
-
108
- #### Customizing Provider Models
109
-
110
- `ccp add` keeps provider setup simple by applying the model you enter to all default Claude Code model slots. If you leave the model empty, `multi-ccp` does not write any model environment variables and Claude Code uses its default model. For example, a DeepSeek profile with a model may initially look like this:
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
- If your provider offers different models for fast tasks, subagents, or long-context work, edit the profile manually:
126
-
127
- ```bash
128
- ccp edit deepseek
129
- ```
130
-
131
- For example, you can assign a flash model to lightweight work and a 1M context model to the main model slots:
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
- See the [DeepSeek API documentation](https://api-docs.deepseek.com/) for provider-specific model names and endpoint details.
148
-
149
- ### Login Profiles
150
-
151
- Login profiles are for Claude Code account-based authentication. They do not set `ANTHROPIC_BASE_URL` or `ANTHROPIC_AUTH_TOKEN`.
152
-
153
- ```bash
154
- ccp add
155
- ccp start <profile-name>
156
- ```
157
-
158
- When Claude Code asks you to sign in, the login state is stored under that profile's config directory. Another profile can use a different account or login state:
159
-
160
- ```bash
161
- ccp add-login personal
162
- ccp start personal
163
- ```
164
-
165
- `ccp add-login <profile>` remains available as a direct compatibility entrypoint.
166
-
167
- ### Claude Code Router Profiles
168
-
169
- CCR profiles are bound to [Claude Code Router](https://github.com/musistudio/claude-code-router) presets. Claude Code Router is a separate open source project that can route Claude Code requests to different model providers. `multi-ccp` integrates with its config and preset system so each profile can use its own provider route.
170
-
171
- ```bash
172
- ccp ccr status
173
- ccp ccr model
174
- ccp add
175
- ccp start <profile-name>
176
- ```
177
-
178
- A CCR profile stores its route in `.ccp.json` and points Claude Code at a preset endpoint such as:
179
-
180
- ```text
181
- http://127.0.0.1:3456/preset/gpt-route
182
- ```
183
-
184
- ## Session Sync
185
-
186
- `sync-session` copies Claude Code history for the current project between profiles. It can sync selected sessions interactively or all sessions at once.
187
-
188
- Sync from `main` to a profile:
189
-
190
- ```bash
191
- ccp sync-session work
192
- ccp sync-session work --all
193
- ```
194
-
195
- Sync between two named profiles:
196
-
197
- ```bash
198
- ccp sync-session work to personal
199
- ccp sync-session work to personal --all
200
- ```
201
-
202
- Sync from a profile back to `main`:
203
-
204
- ```bash
205
- ccp sync-session work to main
206
- ```
207
-
208
- The sync command tracks hashes in `.ccp-sync`, copies session assets, and prompts before overwriting conflicting target sessions.
209
-
210
- ## Commands
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) commands:
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
- Session sync commands:
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
- ## Configuration Layout
247
-
248
- Profiles are stored under:
249
-
250
- ```text
251
- ~/.claude-profiles/<profile>
252
- ```
253
-
254
- Claude Code's default config directory is still available as:
255
-
256
- ```text
257
- main
258
- ```
259
-
260
- For example:
261
-
262
- ```bash
263
- ccp status main
264
- ccp sync-session main to work
265
- ccp sync-session work to main
266
- ```
267
-
268
- ## Safety Notes
269
-
270
- - `ccp remove <profile>` asks you to type the profile name before deleting it.
271
- - `ccp add`, `ccp add-login`, and `ccp add-ccr` refuse to overwrite existing profiles.
272
- - `sync-session` detects conflicts with SHA-256 hashes and asks before overwriting target files.
273
- - Login profiles do not store Claude account passwords.
274
-
275
- ## Development
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
- Run the CLI from source:
287
-
288
- ```bash
289
- npm run dev -- help
290
- ```
291
-
292
- Preview the npm package:
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.zh-CN.md)
8
+
9
+ `multi-ccp` is a profile and session manager for Claude Code. It installs the `ccp` command and helps you run multiple Claude Code windows with fully isolated configuration directories, model providers, login state, and history.
10
+
11
+ Use it when you want separate Claude Code sessions for work, personal projects, different API providers, or different model routes without manually switching environment variables or editing config files.
12
+
13
+ ![multi-ccp](docs/images/image.png)
14
+
15
+ ## Features
16
+
17
+ - Run multiple Claude Code windows with independent profiles.
18
+ - Keep each profile's Claude Code config, login state, environment variables, and project history isolated.
19
+ - Create Anthropic-compatible API profiles with custom `ANTHROPIC_BASE_URL`, token, and model settings.
20
+ - Create Claude login profiles that use Claude Code's normal account login flow without storing account passwords.
21
+ - Create [Claude Code Router](https://github.com/musistudio/claude-code-router) preset profiles for multiple model providers and routes.
22
+ - Manage [Claude Code Router](https://github.com/musistudio/claude-code-router) from the same CLI.
23
+ - Sync historical Claude Code sessions between profiles or between `main` and a profile.
24
+ - Open and inspect profile settings quickly from the terminal.
25
+
26
+ ## Install
27
+
28
+ ```bash
29
+ npm install -g multi-ccp
30
+ ```
31
+
32
+ Verify the install:
33
+
34
+ ```bash
35
+ ccp --version
36
+ ccp help
37
+ ```
38
+
39
+ ## Quick Start
40
+
41
+ Want the shortest path? Ask your AI assistant how to use `multi-ccp`. Copy this prompt:
42
+
43
+ ```text
44
+ How do I use multi-ccp to manage multiple Claude Code profiles?
45
+ ```
46
+
47
+ Then continue with the examples below when you want the full command reference.
48
+
49
+ Open the local Web UI to browse profiles and create configurations visually:
50
+
51
+ ```bash
52
+ ccp ui
53
+ ```
54
+
55
+ The Web UI is a local companion for the CLI. It helps you inspect profiles, create preset-based profiles, edit profile settings, and open CCR management shortcuts.
56
+
57
+ ![multi-ccp](docs/images/cli-ui.png)
58
+
59
+ Create a profile interactively:
60
+
61
+ ```bash
62
+ ccp add
63
+ ccp start <profile-name>
64
+ ```
65
+
66
+ `ccp add` lets you choose a built-in preset template or custom configuration, including DeepSeek, AI CodeMirror, Mimo, CCR GPT, Manual CCR, Claude Login, or Custom API.
67
+
68
+ If you want to create directly from a built-in preset, pass `--preset`:
69
+
70
+ ```bash
71
+ ccp add --preset deepseek
72
+ ccp add --preset deepseek my-ds
73
+ ccp start my-ds
74
+ ```
75
+
76
+ Create another isolated profile for a different provider, account, or project context:
77
+
78
+ ```bash
79
+ ccp add
80
+ ccp start <profile-name>
81
+ ```
82
+
83
+ List and inspect profiles:
84
+
85
+ ```bash
86
+ ccp list
87
+ ccp status work
88
+ ccp path work
89
+ ```
90
+
91
+ ## Profile Types
92
+
93
+ ### API Profiles
94
+
95
+ API profiles are for Anthropic-compatible providers. They store API environment variables in the profile's `settings.json`.
96
+
97
+ ```bash
98
+ ccp add
99
+ ccp start <profile-name>
100
+ ```
101
+
102
+ When you choose an API preset, the command prompts for a profile name and token. When you choose Custom API, it prompts for:
103
+
104
+ - `ANTHROPIC_BASE_URL`
105
+ - `ANTHROPIC_AUTH_TOKEN`
106
+ - Model name (optional; leave empty to use Claude Code's default model)
107
+
108
+ #### Customizing Provider Models
109
+
110
+ `ccp add` keeps provider setup simple by applying the model you enter to all default Claude Code model slots. If you leave the model empty, `multi-ccp` does not write any model environment variables and Claude Code uses its default model. For example, a DeepSeek profile with a model may initially look like this:
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
+ If your provider offers different models for fast tasks, subagents, or long-context work, edit the profile manually:
126
+
127
+ ```bash
128
+ ccp edit deepseek
129
+ ```
130
+
131
+ For example, you can assign a flash model to lightweight work and a 1M context model to the main model slots:
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
+ See the [DeepSeek API documentation](https://api-docs.deepseek.com/) for provider-specific model names and endpoint details.
148
+
149
+ ### Login Profiles
150
+
151
+ Login profiles are for Claude Code account-based authentication. They do not set `ANTHROPIC_BASE_URL` or `ANTHROPIC_AUTH_TOKEN`.
152
+
153
+ ```bash
154
+ ccp add
155
+ ccp start <profile-name>
156
+ ```
157
+
158
+ When Claude Code asks you to sign in, the login state is stored under that profile's config directory. Another profile can use a different account or login state:
159
+
160
+ ```bash
161
+ ccp add-login personal
162
+ ccp start personal
163
+ ```
164
+
165
+ `ccp add-login <profile>` remains available as a direct compatibility entrypoint.
166
+
167
+ ### Claude Code Router Profiles
168
+
169
+ CCR profiles are bound to [Claude Code Router](https://github.com/musistudio/claude-code-router) presets. Claude Code Router is a separate open source project that can route Claude Code requests to different model providers. `multi-ccp` integrates with its config and preset system so each profile can use its own provider route.
170
+
171
+ ```bash
172
+ ccp ccr status
173
+ ccp ccr model
174
+ ccp add
175
+ ccp start <profile-name>
176
+ ```
177
+
178
+ A CCR profile stores its route in `.ccp.json` and points Claude Code at a preset endpoint such as:
179
+
180
+ ```text
181
+ http://127.0.0.1:3456/preset/gpt-route
182
+ ```
183
+
184
+ ## Session Sync
185
+
186
+ `sync-session` copies Claude Code history for the current project between profiles. It can sync selected sessions interactively or all sessions at once.
187
+
188
+ Sync from `main` to a profile:
189
+
190
+ ```bash
191
+ ccp sync-session work
192
+ ccp sync-session work --all
193
+ ```
194
+
195
+ Sync between two named profiles:
196
+
197
+ ```bash
198
+ ccp sync-session work to personal
199
+ ccp sync-session work to personal --all
200
+ ```
201
+
202
+ Sync from a profile back to `main`:
203
+
204
+ ```bash
205
+ ccp sync-session work to main
206
+ ```
207
+
208
+ The sync command tracks hashes in `.ccp-sync`, copies session assets, and prompts before overwriting conflicting target sessions.
209
+
210
+ ## Commands
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) commands:
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
+ Session sync commands:
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
+ ## Configuration Layout
247
+
248
+ Profiles are stored under:
249
+
250
+ ```text
251
+ ~/.claude-profiles/<profile>
252
+ ```
253
+
254
+ Claude Code's default config directory is still available as:
255
+
256
+ ```text
257
+ main
258
+ ```
259
+
260
+ For example:
261
+
262
+ ```bash
263
+ ccp status main
264
+ ccp sync-session main to work
265
+ ccp sync-session work to main
266
+ ```
267
+
268
+ ## Safety Notes
269
+
270
+ - `ccp remove <profile>` asks you to type the profile name before deleting it.
271
+ - `ccp add`, `ccp add-login`, and `ccp add-ccr` refuse to overwrite existing profiles.
272
+ - `sync-session` detects conflicts with SHA-256 hashes and asks before overwriting target files.
273
+ - Login profiles do not store Claude account passwords.
274
+
275
+ ## Development
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
+ Run the CLI from source:
287
+
288
+ ```bash
289
+ npm run dev -- help
290
+ ```
291
+
292
+ Preview the npm package:
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