ccman 2.1.4 → 2.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.
Files changed (55) hide show
  1. package/README.md +75 -225
  2. package/README_en.md +51 -201
  3. package/dist/cli.js +219 -0
  4. package/dist/cli.js.map +1 -1
  5. package/dist/config/static-env.d.ts +1 -1
  6. package/dist/config/static-env.js +1 -1
  7. package/dist/core/ClaudeConfigManager.d.ts +1 -1
  8. package/dist/core/ClaudeConfigManager.d.ts.map +1 -1
  9. package/dist/core/ClaudeConfigManager.js +2 -4
  10. package/dist/core/ClaudeConfigManager.js.map +1 -1
  11. package/dist/core/EnvironmentManager.d.ts +27 -0
  12. package/dist/core/EnvironmentManager.d.ts.map +1 -0
  13. package/dist/core/EnvironmentManager.js +46 -0
  14. package/dist/core/EnvironmentManager.js.map +1 -0
  15. package/dist/i18n/messages.d.ts +30 -0
  16. package/dist/i18n/messages.d.ts.map +1 -1
  17. package/dist/i18n/messages.js +62 -0
  18. package/dist/i18n/messages.js.map +1 -1
  19. package/dist/setup/checker.d.ts +33 -0
  20. package/dist/setup/checker.d.ts.map +1 -0
  21. package/dist/setup/checker.js +169 -0
  22. package/dist/setup/checker.js.map +1 -0
  23. package/dist/setup/installer.d.ts +17 -0
  24. package/dist/setup/installer.d.ts.map +1 -0
  25. package/dist/setup/installer.js +108 -0
  26. package/dist/setup/installer.js.map +1 -0
  27. package/dist/setup/planner.d.ts +22 -0
  28. package/dist/setup/planner.d.ts.map +1 -0
  29. package/dist/setup/planner.js +213 -0
  30. package/dist/setup/planner.js.map +1 -0
  31. package/dist/setup/strategies/base.d.ts +26 -0
  32. package/dist/setup/strategies/base.d.ts.map +1 -0
  33. package/dist/setup/strategies/base.js +32 -0
  34. package/dist/setup/strategies/base.js.map +1 -0
  35. package/dist/setup/strategies/node.d.ts +9 -0
  36. package/dist/setup/strategies/node.d.ts.map +1 -0
  37. package/dist/setup/strategies/node.js +141 -0
  38. package/dist/setup/strategies/node.js.map +1 -0
  39. package/dist/setup/strategies/nvm.d.ts +9 -0
  40. package/dist/setup/strategies/nvm.d.ts.map +1 -0
  41. package/dist/setup/strategies/nvm.js +106 -0
  42. package/dist/setup/strategies/nvm.js.map +1 -0
  43. package/dist/setup/strategies/volta.d.ts +9 -0
  44. package/dist/setup/strategies/volta.d.ts.map +1 -0
  45. package/dist/setup/strategies/volta.js +111 -0
  46. package/dist/setup/strategies/volta.js.map +1 -0
  47. package/dist/setup/types.d.ts +95 -0
  48. package/dist/setup/types.d.ts.map +1 -0
  49. package/dist/setup/types.js +6 -0
  50. package/dist/setup/types.js.map +1 -0
  51. package/dist/utils/command.d.ts +33 -0
  52. package/dist/utils/command.d.ts.map +1 -0
  53. package/dist/utils/command.js +73 -0
  54. package/dist/utils/command.js.map +1 -0
  55. package/package.json +5 -2
package/README.md CHANGED
@@ -19,29 +19,71 @@
19
19
 
20
20
  ## ✨ 核心特性
21
21
 
22
- - **🌍 智能语言支持** - 自动检测系统语言,支持中英文无缝切换
23
- - **🔧 直接配置集成** - 直接修改 `~/.claude/settings.json`,无需 Shell 集成
24
- - **📁 多供应商管理** - 在不同 API 供应商间快速切换(Anthropic 官方、第三方等)
25
- - **🎯 交互式菜单** - 友好的命令行交互界面,支持连续操作
26
- - **⚡ 零配置体验** - 开箱即用,智能默认配置
27
- - **🔒 安全可靠** - 自动备份,选择性配置更新,保护用户数据
22
+ - **🌍 智能语言支持** - 自动检测系统语言,支持中英文无缝切换
23
+ - **🔧 直接配置集成** - 直接修改 `~/.claude/settings.json`,无需 Shell 集成
24
+ - **📁 多供应商管理** - 在不同 API 供应商间快速切换(Anthropic 官方、第三方等)
25
+ - **🎯 交互式菜单** - 友好的命令行交互界面,支持连续操作
26
+ - **⚡ 零配置体验** - 开箱即用,智能默认配置
27
+ - **🔒 安全可靠** - 自动备份,选择性配置更新,保护用户数据
28
28
 
29
29
  ## 🚀 快速开始
30
30
 
31
- ### 安装
31
+ ### 安装方式
32
+
33
+ #### 方式 1: npm 安装 (推荐)
32
34
 
33
35
  ```bash
36
+ # 全局安装
34
37
  npm install -g ccman
38
+
39
+ # 或使用 pnpm
40
+ pnpm add -g ccman
41
+
42
+ # 或使用 yarn
43
+ yarn global add ccman
44
+ ```
45
+
46
+ #### 方式 2: npx 直接运行 (无需安装)
47
+
48
+ ```bash
49
+ # 直接运行,不安装到全局
50
+ npx ccman
51
+
52
+ # 运行特定命令
53
+ npx ccman ls
54
+ npx ccman add anthropic "Anthropic Official" https://api.anthropic.com
55
+ ```
56
+
57
+ #### 方式 3: 从源码安装
58
+
59
+ ```bash
60
+ # 克隆仓库
61
+ git clone https://github.com/2ue/ccman.git
62
+ cd ccman
63
+
64
+ # 安装依赖
65
+ pnpm install
66
+
67
+ # 全局链接 (开发模式)
68
+ npm link
69
+
70
+ # 或构建后使用
71
+ pnpm build
72
+ node dist/cli.js
35
73
  ```
36
74
 
75
+ #### 方式 4: 下载预编译版本
76
+
77
+ 访问 [GitHub Releases](https://github.com/2ue/ccman/releases) 下载对应平台的预编译版本 (如果提供)
78
+
37
79
  ### 首次运行
38
80
 
39
81
  ```bash
40
82
  ccman
41
83
  ```
42
84
 
43
- 首次运行时会自动引导你:
44
- 1. 选择界面语言(中文/英文/自动检测)
85
+ 首次运行时会自动引导你:
86
+ 1. 选择界面语言(中文/英文/自动检测)
45
87
  2. 创建第一个供应商配置
46
88
  3. 自动应用到 Claude Code
47
89
 
@@ -50,14 +92,14 @@ ccman
50
92
  ### 核心命令
51
93
 
52
94
  ```bash
53
- ccman # 交互式主菜单(推荐入口)
95
+ ccman # 交互式主菜单(推荐入口)
54
96
  ccman ls # 列出所有供应商及系统状态
55
97
  ccman ls --current # 显示当前供应商详情
56
98
  ccman ls --brief # 简洁列表模式
57
99
  ccman add <id> <name> <url> [key] # 添加新供应商
58
100
  ccman use <id> # 切换到指定供应商
59
101
  ccman rm <id> # 删除供应商
60
- ccman clear # 清除所有配置(需确认)
102
+ ccman clear # 清除所有配置(需确认)
61
103
  ```
62
104
 
63
105
  ### 语言管理
@@ -93,7 +135,7 @@ ccman ls
93
135
  ```bash
94
136
  $ ccman
95
137
 
96
- ? 您想要执行什么操作?
138
+ ? 您想要执行什么操作?
97
139
  ❯ 切换供应商
98
140
  添加新供应商
99
141
  更新供应商
@@ -101,30 +143,26 @@ $ ccman
101
143
  显示详细状态
102
144
  退出
103
145
 
104
- # 选择操作后,按提示完成配置
146
+ # 选择操作后,按提示完成配置
105
147
  # 每次操作后可以选择继续或退出
106
148
  ```
107
149
 
108
150
  ## 🔧 工作原理
109
151
 
110
- CCM 直接管理 `~/.claude/settings.json` 文件,通过以下方式确保安全:
152
+ CCM 直接管理 `~/.claude/settings.json` 文件,通过以下方式确保安全:
111
153
 
112
- ### 1. 选择性更新
154
+ ### 选择性更新
113
155
 
114
- 只修改 CCM 管理的配置项:
156
+ 只修改 CCM 管理的配置项:
115
157
  - `env.ANTHROPIC_AUTH_TOKEN`
116
158
  - `env.ANTHROPIC_BASE_URL`
117
159
  - `env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`
118
160
  - `env.CLAUDE_CODE_MAX_OUTPUT_TOKENS`
119
161
  - `permissions.allow` / `permissions.deny`
120
162
 
121
- ### 2. 配置保护
122
-
123
- 保留用户的其他所有配置项:
124
- - ✅ 保留:`mcpServers`、`model`、`customUserConfig` 等
125
- - 🔄 更新:仅更新上述 CCM 管理的配置项
163
+ **保留所有其他用户配置项**(如 `mcpServers`、`model`、`customUserConfig` 等)
126
164
 
127
- ### 3. 自动备份
165
+ ### 自动备份
128
166
 
129
167
  每次切换前自动备份当前配置到 `~/.ccman/backups/`
130
168
 
@@ -137,58 +175,7 @@ CCM 直接管理 `~/.claude/settings.json` 文件,通过以下方式确保安
137
175
  │ ├── anthropic.json # Anthropic 官方
138
176
  │ ├── custom.json # 自定义供应商
139
177
  │ └── ...
140
- └── backups/ # 配置备份目录(自动创建)
141
- ```
142
-
143
- ### 供应商配置文件结构
144
-
145
- ```json
146
- {
147
- "name": "Anthropic Official",
148
- "description": "Anthropic 官方 API 配置",
149
- "config": {
150
- "env": {
151
- "ANTHROPIC_AUTH_TOKEN": "your-token",
152
- "ANTHROPIC_BASE_URL": "https://api.anthropic.com",
153
- "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": 1,
154
- "CLAUDE_CODE_MAX_OUTPUT_TOKENS": 32000
155
- },
156
- "permissions": {
157
- "allow": [],
158
- "deny": []
159
- }
160
- },
161
- "metadata": {
162
- "createdAt": "2025-01-15T10:30:00.000Z",
163
- "updatedAt": "2025-01-15T10:30:00.000Z",
164
- "usageCount": 5
165
- }
166
- }
167
- ```
168
-
169
- ### CCM 主配置文件结构
170
-
171
- ```json
172
- {
173
- "currentProvider": "anthropic",
174
- "claudeConfigPath": "/Users/user/.claude/settings.json",
175
- "providers": {
176
- "anthropic": {
177
- "name": "Anthropic Official",
178
- "configFile": "anthropic.json",
179
- "lastUsed": "2025-01-15T10:30:00.000Z"
180
- }
181
- },
182
- "settings": {
183
- "language": "zh",
184
- "firstRun": false
185
- },
186
- "metadata": {
187
- "version": "2.1.3",
188
- "createdAt": "2025-01-15T10:00:00.000Z",
189
- "updatedAt": "2025-01-15T10:30:00.000Z"
190
- }
191
- }
178
+ └── backups/ # 配置备份目录(自动创建)
192
179
  ```
193
180
 
194
181
  ## 🌐 语言支持
@@ -202,97 +189,15 @@ CCM 直接管理 `~/.claude/settings.json` 文件,通过以下方式确保安
202
189
  ### 语言检测逻辑
203
190
 
204
191
  - 英文环境 (`en-*`) → 自动使用英文界面
205
- - 其他环境(包括 `zh-*`、未设置等)→ 自动使用中文界面
192
+ - 其他环境(包括 `zh-*`、未设置等) 自动使用中文界面
206
193
  - 用户可随时手动覆盖语言设置
207
194
 
208
- ### 首次运行体验
209
-
210
- ```bash
211
- $ ccman
212
-
213
- 🌍 Welcome to CCM! / 欢迎使用 CCM!
214
-
215
- This is your first time running CCM.
216
- 这是您首次运行 CCM。
217
-
218
- ? Please choose your preferred language:
219
- ? 请选择您偏好的语言:
220
- ❯ 🇨🇳 中文 (Chinese)
221
- 🇺🇸 English
222
- 🌐 基于系统自动检测 (Auto-detect based on system)
223
-
224
- ✓ 语言已设置为中文
225
- ✓ 您可以稍后使用以下命令更改:ccman lang set <zh|en|auto>
226
- ```
227
-
228
- ## 🛠️ 开发
229
-
230
- ### 环境准备
231
-
232
- ```bash
233
- # 克隆仓库
234
- git clone https://github.com/2ue/ccman.git
235
- cd ccman
236
-
237
- # 安装依赖
238
- pnpm install
239
- ```
240
-
241
- ### 开发命令
242
-
243
- ```bash
244
- pnpm run dev # 开发模式运行(使用 tsx)
245
- pnpm run build # TypeScript 编译
246
- pnpm run start # 运行编译后的 CLI
247
- pnpm run clean # 清理 dist/ 目录
248
- pnpm run lint # ESLint 代码检查
249
- pnpm test # 运行测试
250
- ```
251
-
252
- ### 开发环境隔离
253
-
254
- CCM 支持开发环境配置隔离,避免影响生产配置:
255
-
256
- ```bash
257
- # 设置开发环境配置路径
258
- export CCM_CONFIG_DIR=".ccman-dev"
259
- export CLAUDE_CONFIG_PATH="$HOME/.claude/settings-dev.json"
260
-
261
- # 在隔离环境中运行
262
- pnpm run dev
263
- ```
264
-
265
- ### 项目结构
266
-
267
- ```
268
- src/
269
- ├── types/ # TypeScript 类型定义
270
- │ └── index.ts # 核心类型接口
271
- ├── core/ # 核心模块
272
- │ ├── CCMConfigManager.ts # CCM 配置管理器
273
- │ └── ClaudeConfigManager.ts # Claude 配置管理器
274
- ├── providers/ # 供应商管理
275
- │ └── ProviderManager.ts # 供应商业务逻辑
276
- ├── commands/ # 命令处理
277
- │ └── lang.ts # 语言命令处理
278
- ├── i18n/ # 国际化
279
- │ ├── LanguageManager.ts # 语言管理器
280
- │ └── messages.ts # 多语言消息
281
- ├── utils/ # 工具函数
282
- │ ├── env-config.ts # 环境配置
283
- │ └── version.ts # 版本信息
284
- ├── config/ # 配置文件
285
- │ └── static-env.ts # 静态环境配置
286
- ├── cli.ts # CLI 入口点
287
- └── index.ts # 模块导出
288
- ```
289
-
290
195
  ## 📋 系统要求
291
196
 
292
197
  - **Node.js** >= 16.0.0
293
198
  - **Claude Code** 已安装并支持 settings.json
294
199
  - **操作系统**: Linux, macOS, Windows (WSL)
295
- - **包管理器**: npm, pnpm, yarn(推荐 pnpm
200
+ - **包管理器**: npm, pnpm, yarn(推荐 pnpm)
296
201
 
297
202
  ## 🔍 故障排除
298
203
 
@@ -307,9 +212,6 @@ ccman use <provider-id>
307
212
 
308
213
  # 3. 检查 Claude 配置文件
309
214
  cat ~/.claude/settings.json | grep ANTHROPIC
310
-
311
- # 4. 查看完整配置
312
- cat ~/.claude/settings.json | jq .
313
215
  ```
314
216
 
315
217
  ### 语言切换问题
@@ -321,10 +223,7 @@ ccman lang
321
223
  # 强制设置为中文
322
224
  ccman lang set zh
323
225
 
324
- # 强制设置为英文
325
- ccman lang set en
326
-
327
- # 重置到首次运行状态(重新选择语言)
226
+ # 重置到首次运行状态(重新选择语言)
328
227
  ccman lang reset
329
228
  ccman
330
229
  ```
@@ -332,72 +231,23 @@ ccman
332
231
  ### 配置文件损坏
333
232
 
334
233
  ```bash
335
- # 删除所有配置(会要求确认)
234
+ # 删除所有配置(会要求确认)
336
235
  ccman clear
337
236
 
338
237
  # 重新开始配置
339
238
  ccman
340
239
  ```
341
240
 
342
- ### 开发环境问题
343
-
344
- ```bash
345
- # 使用隔离的开发环境
346
- export CCM_CONFIG_DIR=".ccman-dev"
347
- pnpm run dev
348
-
349
- # 清理并重新构建
350
- pnpm run clean
351
- pnpm run build
352
- ```
353
-
354
- ## 📝 更新日志
355
-
356
- ### v2.1.3 (2025-09-24)
357
- - ✨ 添加 `CLAUDE_CODE_MAX_OUTPUT_TOKENS` 配置支持
358
- - 🐛 修复 TypeScript 编译错误,完全移除 apiKeyHelper 配置项
359
- - 🎨 优化交互式菜单体验
360
- - 📦 升级依赖包版本
241
+ ## 📚 开发文档
361
242
 
362
- ### v2.1.2
363
- - 🎨 简化供应商配置,移除手动 ID 设置
364
- - ✨ 优化首次运行体验
365
-
366
- ### v2.0.0
367
- - 🎉 全新架构:直接配置集成,无需 Shell 集成
368
- - 🌍 智能多语言支持(中文/英文/自动检测)
369
- - 🎯 交互式菜单系统
370
- - 📁 多供应商管理
371
- - 🔒 自动备份和配置保护
372
-
373
- ### v1.x
374
- - 旧架构:基于 Shell 环境变量集成(已废弃)
375
-
376
- ## 🚀 从 v1.x 迁移
377
-
378
- CCM v2.0 使用完全不同的架构,与 v1.x 不兼容:
379
-
380
- ### v1.x(已废弃)
381
- - ❌ 修改 shell 配置文件(.bashrc, .zshrc 等)
382
- - ❌ 使用环境变量
383
- - ❌ 复杂的 shell 集成和重新加载
384
-
385
- ### v2.x(当前版本)
386
- - ✅ 直接修改 `~/.claude/settings.json`
387
- - ✅ 基于供应商的配置管理
388
- - ✅ 智能语言支持
389
- - ✅ 简化、安全的实现方式
390
-
391
- **迁移步骤**:
392
-
393
- 1. 卸载 v1.x 版本
394
- 2. 清理 shell 配置文件中的相关内容
395
- 3. 安装 v2.x 版本:`npm install -g ccman`
396
- 4. 运行 `ccman` 重新配置
243
+ - [开发指南 (中文)](./docs/DEVELOPMENT.md)
244
+ - [Development Guide (English)](./docs/DEVELOPMENT_en.md)
245
+ - [版本发布指南](./docs/release-guide.md)
246
+ - [脚本使用指南](./docs/scripts-guide.md)
397
247
 
398
248
  ## 🤝 贡献
399
249
 
400
- 我们欢迎各种形式的贡献!
250
+ 我们欢迎各种形式的贡献!
401
251
 
402
252
  ### 如何贡献
403
253
 
@@ -409,7 +259,7 @@ CCM v2.0 使用完全不同的架构,与 v1.x 不兼容:
409
259
 
410
260
  ### 报告问题
411
261
 
412
- 如果你发现了 bug 或有新功能建议,请在 [GitHub Issues](https://github.com/2ue/ccman/issues) 中提交。
262
+ 如果你发现了 bug 或有新功能建议,请在 [GitHub Issues](https://github.com/2ue/ccman/issues) 中提交。
413
263
 
414
264
  ## 📄 开源协议
415
265
 
@@ -423,9 +273,9 @@ CCM v2.0 使用完全不同的架构,与 v1.x 不兼容:
423
273
 
424
274
  ## 🙏 致谢
425
275
 
426
- 感谢所有为本项目做出贡献的开发者!
276
+ 感谢所有为本项目做出贡献的开发者!
427
277
 
428
- 感谢以下开源项目:
278
+ 感谢以下开源项目:
429
279
  - [TypeScript](https://www.typescriptlang.org/)
430
280
  - [Commander.js](https://github.com/tj/commander.js)
431
281
  - [Inquirer.js](https://github.com/SBoudrias/Inquirer.js)
@@ -441,4 +291,4 @@ Made with ❤️ by [2ue](https://github.com/2ue)
441
291
 
442
292
  [⬆ 回到顶部](#ccm---claude-code-manager)
443
293
 
444
- </div>
294
+ </div>