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.
- package/.github/workflows/release.yml +5 -5
- package/CLAUDE.md +246 -185
- package/README.md +282 -249
- package/README_zh.md +283 -250
- package/dev-test.sh +40 -0
- package/dist/cli.js +421 -369
- package/dist/cli.js.map +1 -1
- package/dist/commands/lang.d.ts +3 -0
- package/dist/commands/lang.d.ts.map +1 -0
- package/dist/commands/lang.js +99 -0
- package/dist/commands/lang.js.map +1 -0
- package/dist/core/CCMConfigManager.d.ts +52 -0
- package/dist/core/CCMConfigManager.d.ts.map +1 -0
- package/dist/core/CCMConfigManager.js +203 -0
- package/dist/core/CCMConfigManager.js.map +1 -0
- package/dist/core/ClaudeConfigManager.d.ts +35 -0
- package/dist/core/ClaudeConfigManager.d.ts.map +1 -0
- package/dist/core/ClaudeConfigManager.js +151 -0
- package/dist/core/ClaudeConfigManager.js.map +1 -0
- package/dist/i18n/LanguageManager.d.ts +43 -0
- package/dist/i18n/LanguageManager.d.ts.map +1 -0
- package/dist/i18n/LanguageManager.js +157 -0
- package/dist/i18n/LanguageManager.js.map +1 -0
- package/dist/i18n/messages.d.ts +65 -0
- package/dist/i18n/messages.d.ts.map +1 -0
- package/dist/i18n/messages.js +144 -0
- package/dist/i18n/messages.js.map +1 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -8
- package/dist/index.js.map +1 -1
- package/dist/providers/ProviderManager.d.ts +55 -0
- package/dist/providers/ProviderManager.d.ts.map +1 -0
- package/dist/providers/ProviderManager.js +326 -0
- package/dist/providers/ProviderManager.js.map +1 -0
- package/dist/types/index.d.ts +78 -38
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/utils/version.d.ts +2 -64
- package/dist/utils/version.d.ts.map +1 -1
- package/dist/utils/version.js +12 -158
- package/dist/utils/version.js.map +1 -1
- package/package.json +2 -2
- package/release-temp/README.md +282 -249
- package/release-temp/package.json +2 -2
- package/scripts/modules/version-bump.sh +2 -2
- package/scripts/smart-release-v3.sh +20 -26
- package/src/cli.ts +458 -394
- package/src/commands/lang.ts +105 -0
- package/src/core/CCMConfigManager.ts +185 -0
- package/src/core/ClaudeConfigManager.ts +127 -0
- package/src/i18n/LanguageManager.ts +169 -0
- package/src/i18n/messages.ts +233 -0
- package/src/index.ts +4 -5
- package/src/providers/ProviderManager.ts +380 -0
- package/src/types/index.ts +80 -39
- package/src/utils/version.ts +11 -184
- package/dist/config/ConfigManager.d.ts +0 -67
- package/dist/config/ConfigManager.d.ts.map +0 -1
- package/dist/config/ConfigManager.js +0 -226
- package/dist/config/ConfigManager.js.map +0 -1
- package/dist/config/EnvironmentManager.d.ts +0 -83
- package/dist/config/EnvironmentManager.d.ts.map +0 -1
- package/dist/config/EnvironmentManager.js +0 -280
- package/dist/config/EnvironmentManager.js.map +0 -1
- package/dist/config/constants.d.ts +0 -40
- package/dist/config/constants.d.ts.map +0 -1
- package/dist/config/constants.js +0 -97
- package/dist/config/constants.js.map +0 -1
- package/dist/shell/ShellManager.d.ts +0 -81
- package/dist/shell/ShellManager.d.ts.map +0 -1
- package/dist/shell/ShellManager.js +0 -490
- package/dist/shell/ShellManager.js.map +0 -1
- package/src/config/ConfigManager.ts +0 -227
- package/src/config/EnvironmentManager.ts +0 -327
- package/src/config/constants.ts +0 -64
- 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
|
|
3
|
+
基于 TypeScript 的命令行工具,通过**直接 settings.json 集成**和**智能语言支持**管理多个 Claude Code API 供应商配置。
|
|
4
4
|
|
|
5
5
|
> [English Documentation](./README.md) | **中文文档**
|
|
6
6
|
|
|
7
|
-
## ✨
|
|
7
|
+
## ✨ v2.0 新特性
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
|
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
|
-
|
|
35
|
+
This is your first time running CCM.
|
|
36
|
+
这是您首次运行 CCM。
|
|
40
37
|
|
|
41
|
-
|
|
42
|
-
|
|
38
|
+
? Please choose your preferred language:
|
|
39
|
+
? 请选择您偏好的语言:
|
|
40
|
+
❯ 🇨🇳 中文 (Chinese)
|
|
41
|
+
🇺🇸 English
|
|
42
|
+
🌐 基于系统自动检测 (Auto-detect based on system)
|
|
43
43
|
|
|
44
|
-
|
|
45
|
-
ccman
|
|
44
|
+
✓ 语言已设置为中文
|
|
45
|
+
✓ 您可以稍后使用以下命令更改:ccman lang set <zh|en|auto>
|
|
46
46
|
```
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
### 基本用法
|
|
49
49
|
|
|
50
|
-
### 核心环境管理
|
|
51
50
|
```bash
|
|
52
|
-
|
|
53
|
-
ccman
|
|
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
|
-
|
|
62
|
-
ccman config # 完整交互式配置向导
|
|
63
|
-
# - 添加/切换/编辑/删除环境
|
|
64
|
-
# - 无环境时引导设置
|
|
65
|
-
# - 完整菜单驱动界面
|
|
66
|
-
```
|
|
54
|
+
# 列出所有供应商
|
|
55
|
+
ccman ls
|
|
67
56
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
ccman
|
|
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
|
-
|
|
76
|
-
```bash
|
|
77
|
-
# 禁用自动 shell 写入
|
|
78
|
-
ccman add <name> <url> --no-auto-write
|
|
79
|
-
ccman use <name> --no-auto-write
|
|
67
|
+
## 🌐 语言管理
|
|
80
68
|
|
|
81
|
-
|
|
82
|
-
|
|
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
|
-
###
|
|
83
|
+
### 语言检测逻辑
|
|
84
|
+
- 英文环境 (`en-*`) → 英文界面
|
|
85
|
+
- 其他环境(包括 `zh-*`、未设置等)→ 中文界面
|
|
86
|
+
- 随时可手动覆盖
|
|
88
87
|
|
|
88
|
+
## 📖 命令参考
|
|
89
|
+
|
|
90
|
+
### 核心供应商管理
|
|
89
91
|
```bash
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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
|
-
###
|
|
109
|
-
|
|
102
|
+
### 语言管理
|
|
110
103
|
```bash
|
|
111
|
-
|
|
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
|
-
|
|
109
|
+
## 🎯 交互式体验
|
|
127
110
|
|
|
111
|
+
### 主菜单导航
|
|
128
112
|
```bash
|
|
129
|
-
$ ccman
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
113
|
+
$ ccman
|
|
114
|
+
|
|
115
|
+
? 您想要执行什么操作?
|
|
116
|
+
❯ 切换供应商
|
|
117
|
+
添加新供应商
|
|
118
|
+
更新供应商
|
|
119
|
+
删除供应商
|
|
120
|
+
显示详细状态
|
|
121
|
+
退出
|
|
122
|
+
|
|
123
|
+
# 每次操作后:
|
|
124
|
+
? 是否要执行其他操作? (Y/n)
|
|
141
125
|
```
|
|
142
126
|
|
|
143
|
-
|
|
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
|
-
|
|
145
|
+
### 直接 Claude 集成
|
|
146
|
+
CCM v2.0 直接修改您的 Claude Code 设置文件:
|
|
148
147
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
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
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
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
|
-
|
|
168
|
-
- ✅ **安全**:用户现有的 shell 配置保持不变
|
|
169
|
-
- ✅ **清洁**:易于完全移除
|
|
170
|
-
- ✅ **隔离**:所有 CCM 变量在单独文件中
|
|
174
|
+
### 供应商存储结构
|
|
175
|
+
供应商存储在 `~/.ccman/providers/`:
|
|
171
176
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
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
|
-
|
|
191
|
+
## 📊 供应商配置
|
|
179
192
|
|
|
193
|
+
### 供应商结构
|
|
180
194
|
```json
|
|
181
195
|
{
|
|
182
|
-
"
|
|
183
|
-
"
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
"
|
|
187
|
-
"
|
|
188
|
-
"
|
|
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
|
-
"
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
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
|
-
"
|
|
200
|
-
"
|
|
201
|
-
|
|
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
|
|
212
|
-
# →
|
|
213
|
-
# →
|
|
214
|
-
# →
|
|
215
|
-
|
|
216
|
-
#
|
|
217
|
-
ccman add staging https://staging.
|
|
218
|
-
ccman add dev https://dev.
|
|
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
|
-
|
|
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
|
|
238
|
-
|
|
239
|
-
|
|
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
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
#
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
#
|
|
254
|
-
ccman
|
|
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
|
-
#
|
|
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
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
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
|
-
#
|
|
302
|
-
ls
|
|
303
|
-
|
|
304
|
-
# 检查 shell 引用
|
|
305
|
-
grep "ccman" ~/.bashrc ~/.zshrc
|
|
332
|
+
# 供应商不工作?
|
|
333
|
+
ccman ls --current # 检查当前供应商详情
|
|
334
|
+
ccman use <供应商id> # 重新应用供应商配置
|
|
306
335
|
|
|
307
|
-
#
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
# 或重新生成
|
|
311
|
-
ccman use <当前环境>
|
|
336
|
+
# 设置未应用?
|
|
337
|
+
# 检查 ~/.claude/settings.json 的更新
|
|
338
|
+
cat ~/.claude/settings.json | grep ANTHROPIC
|
|
312
339
|
```
|
|
313
340
|
|
|
314
|
-
###
|
|
341
|
+
### 语言问题
|
|
315
342
|
```bash
|
|
316
|
-
#
|
|
317
|
-
ccman
|
|
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
|
-
|
|
321
|
-
|
|
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
|
-
-
|
|
328
|
-
-
|
|
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
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
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 -
|
|
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 -- "$@"
|