ccman 0.1.2 → 2.0.0

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 (78) hide show
  1. package/.github/workflows/release.yml +5 -5
  2. package/CLAUDE.md +246 -185
  3. package/README.md +282 -249
  4. package/README_zh.md +283 -250
  5. package/dev-test.sh +40 -0
  6. package/dist/cli.js +421 -369
  7. package/dist/cli.js.map +1 -1
  8. package/dist/commands/lang.d.ts +3 -0
  9. package/dist/commands/lang.d.ts.map +1 -0
  10. package/dist/commands/lang.js +99 -0
  11. package/dist/commands/lang.js.map +1 -0
  12. package/dist/core/CCMConfigManager.d.ts +52 -0
  13. package/dist/core/CCMConfigManager.d.ts.map +1 -0
  14. package/dist/core/CCMConfigManager.js +203 -0
  15. package/dist/core/CCMConfigManager.js.map +1 -0
  16. package/dist/core/ClaudeConfigManager.d.ts +35 -0
  17. package/dist/core/ClaudeConfigManager.d.ts.map +1 -0
  18. package/dist/core/ClaudeConfigManager.js +151 -0
  19. package/dist/core/ClaudeConfigManager.js.map +1 -0
  20. package/dist/i18n/LanguageManager.d.ts +43 -0
  21. package/dist/i18n/LanguageManager.d.ts.map +1 -0
  22. package/dist/i18n/LanguageManager.js +157 -0
  23. package/dist/i18n/LanguageManager.js.map +1 -0
  24. package/dist/i18n/messages.d.ts +65 -0
  25. package/dist/i18n/messages.d.ts.map +1 -0
  26. package/dist/i18n/messages.js +144 -0
  27. package/dist/i18n/messages.js.map +1 -0
  28. package/dist/index.d.ts +3 -3
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +3 -8
  31. package/dist/index.js.map +1 -1
  32. package/dist/providers/ProviderManager.d.ts +55 -0
  33. package/dist/providers/ProviderManager.d.ts.map +1 -0
  34. package/dist/providers/ProviderManager.js +326 -0
  35. package/dist/providers/ProviderManager.js.map +1 -0
  36. package/dist/types/index.d.ts +78 -38
  37. package/dist/types/index.d.ts.map +1 -1
  38. package/dist/types/index.js +1 -0
  39. package/dist/types/index.js.map +1 -1
  40. package/dist/utils/version.d.ts +2 -64
  41. package/dist/utils/version.d.ts.map +1 -1
  42. package/dist/utils/version.js +12 -158
  43. package/dist/utils/version.js.map +1 -1
  44. package/package.json +2 -2
  45. package/release-temp/README.md +282 -249
  46. package/release-temp/package.json +2 -2
  47. package/scripts/modules/version-bump.sh +2 -2
  48. package/scripts/smart-release-v3.sh +20 -26
  49. package/src/cli.ts +458 -394
  50. package/src/commands/lang.ts +105 -0
  51. package/src/core/CCMConfigManager.ts +185 -0
  52. package/src/core/ClaudeConfigManager.ts +127 -0
  53. package/src/i18n/LanguageManager.ts +169 -0
  54. package/src/i18n/messages.ts +233 -0
  55. package/src/index.ts +4 -5
  56. package/src/providers/ProviderManager.ts +380 -0
  57. package/src/types/index.ts +80 -39
  58. package/src/utils/version.ts +11 -184
  59. package/dist/config/ConfigManager.d.ts +0 -67
  60. package/dist/config/ConfigManager.d.ts.map +0 -1
  61. package/dist/config/ConfigManager.js +0 -226
  62. package/dist/config/ConfigManager.js.map +0 -1
  63. package/dist/config/EnvironmentManager.d.ts +0 -83
  64. package/dist/config/EnvironmentManager.d.ts.map +0 -1
  65. package/dist/config/EnvironmentManager.js +0 -280
  66. package/dist/config/EnvironmentManager.js.map +0 -1
  67. package/dist/config/constants.d.ts +0 -40
  68. package/dist/config/constants.d.ts.map +0 -1
  69. package/dist/config/constants.js +0 -97
  70. package/dist/config/constants.js.map +0 -1
  71. package/dist/shell/ShellManager.d.ts +0 -81
  72. package/dist/shell/ShellManager.d.ts.map +0 -1
  73. package/dist/shell/ShellManager.js +0 -490
  74. package/dist/shell/ShellManager.js.map +0 -1
  75. package/src/config/ConfigManager.ts +0 -227
  76. package/src/config/EnvironmentManager.ts +0 -327
  77. package/src/config/constants.ts +0 -64
  78. package/src/shell/ShellManager.ts +0 -526
package/README_zh.md CHANGED
@@ -1,18 +1,16 @@
1
- # CCM - Claude Code Manager
1
+ # CCM - Claude Code Manager v2.0
2
2
 
3
- 基于 TypeScript 的命令行工具,通过**独立配置文件进行安全的 Shell 集成**,管理 Claude Code API 配置。
3
+ 基于 TypeScript 的命令行工具,通过**直接 settings.json 集成**和**智能语言支持**管理多个 Claude Code API 供应商配置。
4
4
 
5
5
  > [English Documentation](./README.md) | **中文文档**
6
6
 
7
- ## ✨ 特性
7
+ ## ✨ v2.0 新特性
8
8
 
9
- **环境组管理** - 添加、删除、切换 Claude Code 环境
10
- **安全的 Shell 集成** - 使用独立的 `~/.ccman/.ccmanrc` 文件避免修改用户配置
11
- **交互式 Source 控制** - 选择手动或自动 source,附带风险警告
12
- **类型安全** - 完整的 TypeScript 实现,严格类型检查
13
- **交互式 CLI** - 用户友好的命令,彩色输出和 inquirer 提示
14
- ✅ **多 Shell 支持** - 支持 bash、zsh 和 fish
15
- ✅ **完整工作流** - 从设置到使用的无缝流程
9
+ 🌍 **智能语言支持** - 自动检测系统语言或引导首次运行设置
10
+ 🔧 **直接 Claude 集成** - 直接修改 `~/.claude/settings.json`,无需 shell 变量
11
+ 📁 **供应商管理** - 存储和切换多个 API 供应商配置
12
+ 🎯 **交互式菜单系统** - 支持连续操作的导航选项
13
+ **零配置体验** - 开箱即用的智能默认设置
16
14
 
17
15
  ## 🚀 快速开始
18
16
 
@@ -26,307 +24,347 @@ npm install -g ccman
26
24
  npm install && npm run build
27
25
  ```
28
26
 
29
- ### 基本用法
27
+ ### 首次运行体验
30
28
 
31
29
  ```bash
32
- # 交互式设置(推荐)
33
- ccman config
30
+ # 启动 CCM(首次运行)
31
+ ccman
34
32
 
35
- # 或直接添加环境
36
- ccman add default https://api.anthropic.com your-api-key
33
+ 🌍 Welcome to CCM! / 欢迎使用 CCM!
37
34
 
38
- # 列出所有环境
39
- ccman ls
35
+ This is your first time running CCM.
36
+ 这是您首次运行 CCM。
40
37
 
41
- # 切换环境(支持 source 选项)
42
- ccman use default
38
+ ? Please choose your preferred language:
39
+ ? 请选择您偏好的语言:
40
+ ❯ 🇨🇳 中文 (Chinese)
41
+ 🇺🇸 English
42
+ 🌐 基于系统自动检测 (Auto-detect based on system)
43
43
 
44
- # 显示当前环境
45
- ccman current
44
+ 语言已设置为中文
45
+ ✓ 您可以稍后使用以下命令更改:ccman lang set <zh|en|auto>
46
46
  ```
47
47
 
48
- ## 📖 命令参考
48
+ ### 基本用法
49
49
 
50
- ### 核心环境管理
51
50
  ```bash
52
- ccman add <name> <baseUrl> [apiKey] # 添加环境(未提供 API key 时交互输入)
53
- ccman remove <name> # 删除环境组
54
- ccman use <name> # 切换环境(支持 source 交互)
55
- ccman list|ls # 列出所有环境(* = 当前环境)
56
- ccman current # 显示当前环境详情
57
- ccman clear|clearall # 清除所有环境和 Shell 集成(危险操作)
58
- ```
51
+ # 交互式主菜单(推荐)
52
+ ccman
59
53
 
60
- ### 交互式配置
61
- ```bash
62
- ccman config # 完整交互式配置向导
63
- # - 添加/切换/编辑/删除环境
64
- # - 无环境时引导设置
65
- # - 完整菜单驱动界面
66
- ```
54
+ # 列出所有供应商
55
+ ccman ls
67
56
 
68
- ### 高级操作
69
- ```bash
70
- ccman status # 显示详细 CCM 统计信息
71
- ccman test [name] # 测试环境配置
72
- ccman env # 生成 shell 导出脚本
57
+ # 直接添加供应商
58
+ ccman add <id> <name> <baseUrl> [apiKey]
59
+
60
+ # 切换供应商
61
+ ccman use <id>
62
+
63
+ # 删除供应商
64
+ ccman rm <id>
73
65
  ```
74
66
 
75
- ### Shell 集成选项
76
- ```bash
77
- # 禁用自动 shell 写入
78
- ccman add <name> <url> --no-auto-write
79
- ccman use <name> --no-auto-write
67
+ ## 🌐 语言管理
80
68
 
81
- # 强制自动 source(有风险)
82
- ccman use <name> --auto-source
69
+ ### 语言命令
70
+ ```bash
71
+ ccman lang # 显示当前语言设置
72
+ ccman lang set zh # 设置为中文
73
+ ccman lang set en # 设置为英文
74
+ ccman lang set auto # 基于系统自动检测
75
+ ccman lang reset # 重置为首次运行状态
83
76
  ```
84
77
 
85
- ## 🔧 交互式工作流
78
+ ### 支持的语言
79
+ - **中文 (zh)** - 完整中文界面
80
+ - **英文 (en)** - Full English interface
81
+ - **自动检测** - 基于系统 `LANG` 环境变量
86
82
 
87
- ### 1. 添加环境的智能使用流程
83
+ ### 语言检测逻辑
84
+ - 英文环境 (`en-*`) → 英文界面
85
+ - 其他环境(包括 `zh-*`、未设置等)→ 中文界面
86
+ - 随时可手动覆盖
88
87
 
88
+ ## 📖 命令参考
89
+
90
+ ### 核心供应商管理
89
91
  ```bash
90
- $ ccman add myenv https://api.example.com
91
- ? 输入 API Key: ****************
92
- 已添加环境组 "myenv"
93
- Base URL: https://api.example.com
94
- 创建时间: 2025-08-06 11:45:30
95
-
96
- ? "myenv" 设为当前环境? 是
97
- 环境变量已写入 /home/user/.ccman/.ccmanrc
98
-
99
- ? 如何应用环境变量?
100
- ❯ 手动 - 我将重启终端或手动 source(推荐)
101
- 自动 source - 尝试自动 source(可能在某些环境下不工作)
102
-
103
- > 手动
104
- 要应用更改,请重启终端或运行:
105
- source ~/.bashrc (或 ~/.zshrc)
92
+ ccman # 交互式菜单(默认)
93
+ ccman add <id> <name> <url> [key] # 添加新供应商
94
+ ccman use <id> # 切换到供应商
95
+ ccman ls # 列出所有供应商
96
+ ccman ls --current # 显示当前供应商详情
97
+ ccman ls --brief # 简洁供应商列表
98
+ ccman rm <id> # 删除供应商
99
+ ccman clear # 删除所有供应商(危险操作)
106
100
  ```
107
101
 
108
- ### 2. 交互式配置菜单
109
-
102
+ ### 语言管理
110
103
  ```bash
111
- $ ccman config
112
- ? 你想做什么?
113
- 切换环境
114
- 添加新环境
115
- 编辑环境
116
- 删除环境
117
- 显示当前状态
118
-
119
- > 添加新环境
120
- ? 环境名称: staging
121
- ? Base URL: https://staging-api.example.com
122
- ? API Key: ****************
123
- ✓ 已添加环境 "staging"
104
+ ccman lang # 显示当前语言
105
+ ccman lang set <zh|en|auto> # 设置语言偏好
106
+ ccman lang reset # 重置为首次运行状态
124
107
  ```
125
108
 
126
- ### 3. 环境切换与 Source 控制
109
+ ## 🎯 交互式体验
127
110
 
111
+ ### 主菜单导航
128
112
  ```bash
129
- $ ccman use production
130
- ✓ 已切换到环境 "production"
131
- Base URL: https://api.anthropic.com
132
- 环境变量已写入 /home/user/.ccman/.ccmanrc
133
-
134
- ? 如何应用环境变量?
135
- 手动 - 我将重启终端或手动 source(推荐)
136
- ❯ 自动 source - 尝试自动 source(可能在某些环境下不工作)
137
-
138
- > 自动 source
139
- ⚠️ 尝试自动 source - 这可能在某些终端环境下不工作
140
- Shell 配置已成功 source
113
+ $ ccman
114
+
115
+ ? 您想要执行什么操作?
116
+ 切换供应商
117
+ 添加新供应商
118
+ 更新供应商
119
+ 删除供应商
120
+ 显示详细状态
121
+ 退出
122
+
123
+ # 每次操作后:
124
+ ? 是否要执行其他操作? (Y/n)
141
125
  ```
142
126
 
143
- ## 🛡️ 安全的 Shell 集成架构
127
+ ### 供应商添加流程
128
+ ```bash
129
+ $ ccman add
130
+
131
+ ? 供应商ID(唯一标识符): my-provider
132
+ ? 供应商名称: 我的自定义API
133
+ ? 描述: 我的自定义Claude API
134
+ ? 基础URL: https://api.mycustom.com
135
+ ? API密钥: ****************
136
+
137
+ ✓ 供应商添加成功
138
+ ? 将"我的自定义API"设为当前供应商? (Y/n)
139
+ ✓ 供应商切换成功
140
+ Claude Code 配置已成功更新!
141
+ ```
144
142
 
145
- ### 工作原理
143
+ ## 🔧 架构概览
146
144
 
147
- CCM 使用**双层架构**进行安全的 shell 集成:
145
+ ### 直接 Claude 集成
146
+ CCM v2.0 直接修改您的 Claude Code 设置文件:
148
147
 
149
- 1. **独立配置文件**:`~/.ccman/.ccmanrc`
150
- ```bash
151
- # CCM (Claude Code Manager) Environment Variables - Auto Generated
152
- # Generated at: 2025-08-06 11:45:30
153
- # Environment: production
154
- export ANTHROPIC_BASE_URL="https://api.anthropic.com"
155
- export ANTHROPIC_AUTH_TOKEN="your-api-key"
156
- # End CCM Environment Variables
157
- ```
148
+ **修改前(CCM 管理)**:
149
+ ```json
150
+ {
151
+ "env": {
152
+ "ANTHROPIC_AUTH_TOKEN": "old-token",
153
+ "ANTHROPIC_BASE_URL": "https://old-api.com"
154
+ }
155
+ }
156
+ ```
158
157
 
159
- 2. **最小 Shell 引用**:在 `.bashrc`/`.zshrc` 中添加一行引用
160
- ```bash
161
- # CCM (Claude Code Manager) - Auto Generated Reference
162
- [ -f "/home/user/.ccman/.ccmanrc" ] && source "/home/user/.ccman/.ccmanrc"
163
- # End CCM Reference
164
- ```
158
+ **修改后(CCM 更新)**:
159
+ ```json
160
+ {
161
+ "env": {
162
+ "ANTHROPIC_AUTH_TOKEN": "new-token",
163
+ "ANTHROPIC_BASE_URL": "https://new-api.com",
164
+ "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": 1
165
+ },
166
+ "permissions": {
167
+ "allow": [],
168
+ "deny": []
169
+ },
170
+ "apiKeyHelper": "echo 'new-token'"
171
+ }
172
+ ```
165
173
 
166
- ### 优势
167
- - ✅ **非侵入性**:只在 shell 配置中添加一行引用
168
- - ✅ **安全**:用户现有的 shell 配置保持不变
169
- - ✅ **清洁**:易于完全移除
170
- - ✅ **隔离**:所有 CCM 变量在单独文件中
174
+ ### 供应商存储结构
175
+ 供应商存储在 `~/.ccman/providers/`:
171
176
 
172
- ### 管理的环境变量
173
- - `ANTHROPIC_BASE_URL` - API 基础 URL
174
- - `ANTHROPIC_AUTH_TOKEN` - API 认证令牌
177
+ ```
178
+ ~/.ccman/
179
+ ├── config.json # CCM 主配置
180
+ ├── providers/ # 单独的供应商配置
181
+ │ ├── anthropic.json
182
+ │ ├── my-provider.json
183
+ │ └── staging.json
184
+ ```
175
185
 
176
- ## 📊 配置结构
186
+ ### 配置合并
187
+ CCM 只更新 Claude 相关的键,保留您的现有设置:
188
+ - ✅ 保留:`mcpServers`、`model`、`customUserConfig` 等
189
+ - 🔄 更新:`env.ANTHROPIC_*`、`permissions`、`apiKeyHelper`
177
190
 
178
- CCM `~/.ccman/config.json` 中存储配置:
191
+ ## 📊 供应商配置
179
192
 
193
+ ### 供应商结构
180
194
  ```json
181
195
  {
182
- "current": "production",
183
- "environments": {
184
- "production": {
185
- "name": "production",
186
- "baseUrl": "https://api.anthropic.com",
187
- "apiKey": "your-key",
188
- "createdAt": "2025-08-06T03:45:30.000Z",
189
- "lastUsed": "2025-08-06T03:50:15.000Z"
196
+ "name": "Anthropic Official",
197
+ "description": "Anthropic 官方 API 配置",
198
+ "config": {
199
+ "env": {
200
+ "ANTHROPIC_AUTH_TOKEN": "your-token",
201
+ "ANTHROPIC_BASE_URL": "https://api.anthropic.com",
202
+ "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": 1
190
203
  },
191
- "staging": {
192
- "name": "staging",
193
- "baseUrl": "https://staging-api.example.com",
194
- "apiKey": "staging-key",
195
- "createdAt": "2025-08-06T03:46:00.000Z"
204
+ "permissions": { "allow": [], "deny": [] },
205
+ "apiKeyHelper": "echo 'your-token'"
206
+ },
207
+ "metadata": {
208
+ "createdAt": "2025-01-15T10:30:00.000Z",
209
+ "updatedAt": "2025-01-15T10:30:00.000Z",
210
+ "usageCount": 5
211
+ }
212
+ }
213
+ ```
214
+
215
+ ### 主配置
216
+ ```json
217
+ {
218
+ "currentProvider": "anthropic",
219
+ "claudeConfigPath": "/Users/user/.claude/settings.json",
220
+ "providers": {
221
+ "anthropic": {
222
+ "name": "Anthropic Official",
223
+ "configFile": "anthropic.json",
224
+ "lastUsed": "2025-01-15T10:30:00.000Z"
196
225
  }
197
226
  },
198
227
  "settings": {
199
- "autoWriteShell": true,
200
- "preferredShell": "auto",
201
- "shellConfigPath": null
228
+ "language": "zh",
229
+ "firstRun": false
230
+ },
231
+ "metadata": {
232
+ "version": "2.0.0",
233
+ "createdAt": "2025-01-15T10:00:00.000Z",
234
+ "updatedAt": "2025-01-15T10:30:00.000Z"
202
235
  }
203
236
  }
204
237
  ```
205
238
 
206
239
  ## 💡 使用示例
207
240
 
208
- ### 完整设置工作流
241
+ ### 完整首次设置
209
242
  ```bash
210
- # 从交互式设置开始
211
- ccman config
212
- # → 引导添加第一个环境
213
- # → 自动提示设为当前环境
214
- # → 选择 source 方法(手动/自动)
215
-
216
- # 添加更多环境
217
- ccman add staging https://staging.example.com
218
- ccman add dev https://dev.example.com
219
-
220
- # 完整交互切换
243
+ # 首次运行 - 语言选择
244
+ ccman
245
+ # → 语言选择向导
246
+ # → 未找到供应商,引导创建
247
+ # → 自动更新 Claude 设置
248
+
249
+ # 添加其他供应商
250
+ ccman add staging "测试API" https://staging-api.com
251
+ ccman add dev "开发环境" https://dev-api.com
252
+
253
+ # 在供应商间切换
254
+ ccman use staging
221
255
  ccman use dev
222
- # 写入到 ~/.ccman/.ccmanrc
223
- # → 询问 source 方法
224
- # → 提供清晰指导
225
-
226
- # 检查状态
227
- ccman status
228
- # CCM 状态:
229
- # 总环境数: 3
230
- # 当前环境: dev
231
- # Shell 集成: 已启用
256
+ ccman use anthropic
232
257
  ```
233
258
 
234
- ### 手动环境变量设置
259
+ ### 多供应商工作流
235
260
  ```bash
236
- # 如果你偏好手动控制
237
- ccman use prod --no-auto-write
238
- ccman env # 显示导出脚本
239
- source <(ccman env) # 手动应用
261
+ # 列出所有供应商的详情
262
+ ccman ls
263
+ # * Anthropic Official (anthropic) - https://api.anthropic.com
264
+ # 测试API (staging) - https://staging-api.com
265
+ # 开发环境 (dev) - https://dev-api.com
266
+
267
+ # 切换到测试环境
268
+ ccman use staging
269
+ # ✓ 供应商切换成功
270
+ # ✓ Claude Code 配置已成功更新!
271
+
272
+ # 检查当前供应商
273
+ ccman ls --current
274
+ # 当前供应商: 测试API (staging)
275
+ # 基础URL: https://staging-api.com
276
+ # 使用次数: 3 次
277
+ # 最后更新: 2025-01-15 10:30:15
240
278
  ```
241
279
 
242
- ### 高级用法
280
+ ### 语言切换
243
281
  ```bash
244
- # 测试环境连接性
245
- ccman test production
246
-
247
- # 强制自动 source(有风险警告)
248
- ccman use staging --auto-source
249
-
250
- # 编辑现有环境
251
- ccman config # 编辑环境 → 选择 → 更新值
252
-
253
- # 完全重置(删除所有内容 - 环境、shell 配置)
254
- ccman clear # 需要交互确认
282
+ # 检查当前语言
283
+ ccman lang
284
+ # 当前语言: 中文 (Chinese)
285
+
286
+ # 切换到英文
287
+ ccman lang set en
288
+ # ✓ 语言切换成功
289
+ # Current language: English
290
+
291
+ # 设置自动检测
292
+ ccman lang set auto
293
+ # ✓ 语言切换成功
294
+ # 当前语言: 自动检测 (Auto-detect)
295
+ # 自动检测结果: English
255
296
  ```
256
297
 
257
- ## ⚙️ 开发
298
+ ## 🛠️ 开发设置
299
+
300
+ ### 开发环境
301
+ CCM 支持隔离的开发环境:
258
302
 
259
303
  ```bash
260
- # 开发模式(文件监听)
304
+ # 设置开发路径
305
+ export CCM_CONFIG_DIR=".ccman-dev"
306
+ export CLAUDE_CONFIG_PATH="$HOME/.claude/settings-dev.json"
307
+
308
+ # 使用开发模式
261
309
  npm run dev
262
310
 
263
- # 构建 TypeScript
311
+ # 生产环境构建
264
312
  npm run build
265
313
 
266
- # 清理构建产物
267
- npm run clean
268
-
269
- # 运行构建后的 CLI
314
+ # 测试构建版本
270
315
  npm start
271
316
  ```
272
317
 
273
- ## 🎯 命令行选项
274
-
275
- ### 全局选项
276
- 所有命令都支持标准 CLI 约定:
277
- - `-h, --help` - 显示命令帮助
278
- - `-V, --version` - 显示版本
279
-
280
- ### Add 命令选项
318
+ ### 开发命令
281
319
  ```bash
282
- ccman add <name> <baseUrl> [apiKey] [选项]
283
-
284
- 选项:
285
- --no-auto-write 不自动写入 shell 配置
286
- ```
287
-
288
- ### Use 命令选项
289
- ```bash
290
- ccman use <name> [选项]
291
-
292
- 选项:
293
- --no-auto-write 不自动写入 shell 配置
294
- --auto-source 自动 source shell 配置(有风险)
320
+ npm run dev # 使用 tsx 的开发模式
321
+ npm run build # TypeScript 编译
322
+ npm run start # 运行构建后的 CLI
323
+ npm run clean # 删除 dist/ 目录
324
+ npm run lint # ESLint TypeScript 文件检查
325
+ npm test # 运行测试(passWithNoTests)
295
326
  ```
296
327
 
297
328
  ## 🔍 故障排除
298
329
 
299
- ### 环境变量未应用
330
+ ### 供应商问题
300
331
  ```bash
301
- # 检查 .ccmanrc 是否存在
302
- ls -la ~/.ccman/.ccmanrc
303
-
304
- # 检查 shell 引用
305
- grep "ccman" ~/.bashrc ~/.zshrc
332
+ # 供应商不工作?
333
+ ccman ls --current # 检查当前供应商详情
334
+ ccman use <供应商id> # 重新应用供应商配置
306
335
 
307
- # 手动应用
308
- source ~/.ccman/.ccmanrc
309
-
310
- # 或重新生成
311
- ccman use <当前环境>
336
+ # 设置未应用?
337
+ # 检查 ~/.claude/settings.json 的更新
338
+ cat ~/.claude/settings.json | grep ANTHROPIC
312
339
  ```
313
340
 
314
- ### Shell 集成问题
341
+ ### 语言问题
315
342
  ```bash
316
- # 检查 shell 类型检测
317
- ccman status
343
+ # 语言未切换?
344
+ ccman lang # 检查当前设置
345
+ ccman lang set zh # 强制中文
346
+ ccman lang set en # 强制英文
347
+
348
+ # 首次运行问题?
349
+ ccman lang reset # 重置为首次运行状态
350
+ ccman # 重新启动进行语言选择
351
+ ```
318
352
 
319
- # 强制手动设置
320
- ccman use <环境> --no-auto-write
321
- source <(ccman env)
353
+ ### 配置问题
354
+ ```bash
355
+ # 配置损坏?
356
+ ccman clear # 删除所有(需确认)
357
+ ccman # 重新开始
358
+
359
+ # 开发环境隔离
360
+ export CCM_CONFIG_DIR=".ccman-dev" # 独立开发配置
322
361
  ```
323
362
 
324
363
  ## 📋 要求
325
364
 
326
- - Node.js >= 16.0.0
327
- - TypeScript 5.0+
328
- - 支持的 shell: bash, zsh, fish
329
- - 操作系统: Linux, macOS, Windows (WSL)
365
+ - **Node.js** >= 16.0.0
366
+ - **Claude Code** 已安装且支持 settings.json
367
+ - **操作系统**: Linux, macOS, Windows (WSL)
330
368
 
331
369
  ## 📄 许可证
332
370
 
@@ -334,28 +372,23 @@ MIT 许可证 - 详见 LICENSE 文件。
334
372
 
335
373
  ---
336
374
 
337
- ## 🚀 从设置到使用 - 完整流程
375
+ ## 🚀 v1.x 迁移
338
376
 
339
- ```bash
340
- # 1. 交互式首次设置
341
- ccman config
342
- 无环境?引导创建
343
- 设为当前环境?是
344
- Source 方法?手动/自动
345
-
346
- # 2. 添加更多环境
347
- ccman add dev https://dev.api.com
348
- 交互式 API key 输入
349
- 设为当前环境?是/否
350
- 如选是则完整 source 交互
351
-
352
- # 3. 随时切换,完全控制
353
- ccman use production
354
- → 安全 .ccmanrc 更新
355
- → Source 方法选择
356
- → 清晰指导
357
-
358
- # 4. 一切正常工作! ✨
359
- ```
377
+ CCM v2.0 使用完全不同的架构:
378
+
379
+ ### v1.x(Shell 集成)
380
+ - 修改 shell 配置文件
381
+ - 使用环境变量
382
+ - 复杂的 shell 集成
383
+
384
+ ### v2.0(直接集成)
385
+ - 直接修改 `~/.claude/settings.json`
386
+ - 基于供应商的配置
387
+ - 语言支持
388
+ - 简化、更安全的方法
389
+
390
+ **迁移**:v1.x 和 v2.x 不兼容。如果升级,请使用 `ccman clear` 重新开始。
391
+
392
+ ---
360
393
 
361
- *CCM - Claude Code API 配置管理变得安全、交互式且用户友好。*
394
+ *CCM v2.0 - 智能、多语言、无缝的 Claude Code 供应商管理。*
package/dev-test.sh ADDED
@@ -0,0 +1,40 @@
1
+ #!/bin/bash
2
+
3
+ # CCM 开发测试脚本
4
+ # 设置开发环境变量,避免影响生产配置
5
+
6
+ echo "🔧 Setting up CCM development environment..."
7
+
8
+ # 设置开发环境变量
9
+ export CCM_CONFIG_DIR=".ccman-dev"
10
+ export CLAUDE_CONFIG_PATH="$HOME/.claude/settings-dev.json"
11
+
12
+ echo " CCM Config Directory: $HOME/$CCM_CONFIG_DIR"
13
+ echo " Claude Config Path: $CLAUDE_CONFIG_PATH"
14
+ echo
15
+
16
+ # 创建开发用的 Claude 配置文件(如果不存在)
17
+ if [ ! -f "$CLAUDE_CONFIG_PATH" ]; then
18
+ echo "📝 Creating development Claude settings file..."
19
+ mkdir -p "$(dirname "$CLAUDE_CONFIG_PATH")"
20
+ cat > "$CLAUDE_CONFIG_PATH" << 'EOF'
21
+ {
22
+ "env": {
23
+ "ANTHROPIC_AUTH_TOKEN": "",
24
+ "ANTHROPIC_BASE_URL": "https://api.anthropic.com"
25
+ },
26
+ "permissions": {
27
+ "allow": [],
28
+ "deny": []
29
+ },
30
+ "apiKeyHelper": "echo ''"
31
+ }
32
+ EOF
33
+ echo " Created: $CLAUDE_CONFIG_PATH"
34
+ echo
35
+ fi
36
+
37
+ # 执行 CCM 命令
38
+ echo "🚀 Running CCM command: $@"
39
+ echo
40
+ npm run dev -- "$@"