lcch-cli 1.0.1
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/README.md +847 -0
- package/dist/backup.js +142 -0
- package/dist/export.js +1211 -0
- package/dist/index.js +3015 -0
- package/dist/scanner.js +1789 -0
- package/dist/types.js +5 -0
- package/package.json +49 -0
package/README.md
ADDED
|
@@ -0,0 +1,847 @@
|
|
|
1
|
+
# LCCH - Claude Code Helper
|
|
2
|
+
|
|
3
|
+
管理 Claude Code 配置 (`~/.claude.json`) 的 CLI 工具。
|
|
4
|
+
|
|
5
|
+
## 安装
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# 通过 npm 安装
|
|
9
|
+
npm install -g lcch-cli
|
|
10
|
+
|
|
11
|
+
# 验证安装
|
|
12
|
+
lcch --version
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## 快速开始
|
|
16
|
+
|
|
17
|
+
安装完成后,使用以下命令查看可用命令:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
lcch --help
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## 场景一:浏览项目与会话
|
|
24
|
+
|
|
25
|
+
刚安装完,想先看看自己有哪些项目,各项目状态如何。
|
|
26
|
+
|
|
27
|
+
### 查看项目列表
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
lcch projects list
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
输出示例:
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
📂 项目列表
|
|
37
|
+
|
|
38
|
+
✓ 有效项目 (3)
|
|
39
|
+
├─ /Users/lrk/workspace/my-project
|
|
40
|
+
├─ /Users/lrk/workspace/another-project
|
|
41
|
+
└─ /Users/lrk/workspace/lcch-cli
|
|
42
|
+
|
|
43
|
+
✗ 无效项目 (2)
|
|
44
|
+
├─ /Users/lrk/old-project (目录不存在)
|
|
45
|
+
└─ /Users/lrk/deleted-app (目录不存在)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
- ✓ 绿色:有效项目(目录存在且在配置中)
|
|
49
|
+
- ✗ 品红:无效项目(配置中存在但目录已删除)
|
|
50
|
+
|
|
51
|
+
### 树形结构展示
|
|
52
|
+
|
|
53
|
+
如果项目较多且有嵌套目录关系,使用树形视图:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
lcch projects list --tree
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
输出示例(已截断):
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
📂 项目树形结构
|
|
63
|
+
|
|
64
|
+
/Users/lrk/workspace/
|
|
65
|
+
├── my-project/
|
|
66
|
+
│ ├── child-project/
|
|
67
|
+
│ └── temp/
|
|
68
|
+
├── another-project/
|
|
69
|
+
│ └── module-a/
|
|
70
|
+
└── lcch-cli/
|
|
71
|
+
└── docs/
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### 带统计的详细列表
|
|
75
|
+
|
|
76
|
+
查看每个项目的花费、Token、工具使用等详细统计:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
lcch projects list --verbose
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
输出示例(已截断):
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
📊 项目详细统计(按花费排序)
|
|
86
|
+
|
|
87
|
+
✓ 有效项目
|
|
88
|
+
[1] /Users/lrk/workspace/my-project
|
|
89
|
+
花费: $12.50 | Resume: 5 | 会话: 23 | MCP: 2 | Skills: 3
|
|
90
|
+
|
|
91
|
+
[2] /Users/lrk/workspace/another-project
|
|
92
|
+
花费: $8.20 | Resume: 2 | 会话: 15 | MCP: 1 | Skills: 1
|
|
93
|
+
|
|
94
|
+
✗ 无效项目
|
|
95
|
+
[3] /Users/lrk/deleted-app
|
|
96
|
+
(目录不存在)
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
💡 **提示**:使用 `--filter valid|invalid|orphaned|all` 可按项目状态过滤。
|
|
100
|
+
|
|
101
|
+
### 查看会话历史
|
|
102
|
+
|
|
103
|
+
查看所有项目的会话历史记录:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
lcch projects list --sessions
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
输出示例:
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
💬 会话历史
|
|
113
|
+
|
|
114
|
+
✓ 有效项目会话 (23)
|
|
115
|
+
/Users/lrk/workspace/my-project
|
|
116
|
+
├─ 2025-01-15 14:30 → 2025-01-15 16:45 (2h15m)
|
|
117
|
+
└─ 2025-01-16 09:00 → 2025-01-16 12:30 (3h30m)
|
|
118
|
+
|
|
119
|
+
✗ 无效项目会话 (5)
|
|
120
|
+
/Users/lrk/deleted-app
|
|
121
|
+
├─ 2024-12-01 10:00 → 2024-12-01 11:00 (1h)
|
|
122
|
+
└─ 2024-12-05 14:00 → 2024-12-05 15:30 (1h30m)
|
|
123
|
+
|
|
124
|
+
⚠ 孤立会话 (3)
|
|
125
|
+
(有会话记录但无对应项目)
|
|
126
|
+
├─ session-abc123 (2025-01-10)
|
|
127
|
+
├─ session-def456 (2025-01-12)
|
|
128
|
+
└─ session-ghi789 (2025-01-14)
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### 查看 Resume 历史
|
|
132
|
+
|
|
133
|
+
Resume 是 Claude Code 的会话续话功能,可查看所有项目的 resume 记录:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
lcch projects list --resume
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
输出示例(已截断):
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
📜 Resume 历史
|
|
143
|
+
|
|
144
|
+
✓ 有效项目 Resume (7)
|
|
145
|
+
/Users/lrk/workspace/my-project
|
|
146
|
+
├─ 6a26982c-...-093cf (创建: 2025-01-15 14:30 → 最后: 2025-01-16 12:30)
|
|
147
|
+
│ 消息数: 45 | 大小: 2.1MB | 压缩: 3次
|
|
148
|
+
└─ 8b37191d-...-a4d5e (创建: 2025-01-10 → 最后: 2025-01-12)
|
|
149
|
+
消息数: 28 | 大小: 1.3MB | 压缩: 1次
|
|
150
|
+
|
|
151
|
+
✗ 无效项目 Resume (2)
|
|
152
|
+
/Users/lrk/old-project
|
|
153
|
+
└─ 1c48293e-...-b6f7a (目录不存在)
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
💡 **提示**:`lcch project <path>` 可查看单个项目的详细信息。
|
|
157
|
+
|
|
158
|
+
## 场景二:清理无用数据
|
|
159
|
+
|
|
160
|
+
发现有无效项目或过多 resume,需要清理释放空间。
|
|
161
|
+
|
|
162
|
+
### 交互式清理无效项目
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
lcch projects clean
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
交互流程:
|
|
169
|
+
1. 显示项目汇总(有效/无效/孤立项目统计)
|
|
170
|
+
2. 选择项目阶段:有效/无效项目默认不选中,孤立项目默认全选
|
|
171
|
+
3. 确认删除阶段:二次确认后执行删除
|
|
172
|
+
|
|
173
|
+
输出示例:
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
🧹 项目清理
|
|
177
|
+
|
|
178
|
+
项目统计: 有效 3 | 无效 2 | 孤立 0
|
|
179
|
+
|
|
180
|
+
请选择要删除的项目:
|
|
181
|
+
✓ /Users/lrk/workspace/my-project
|
|
182
|
+
✗ /Users/lrk/workspace/old-project
|
|
183
|
+
✗ /Users/lrk/workspace/deleted-app
|
|
184
|
+
|
|
185
|
+
已选择: 2 个项目
|
|
186
|
+
确认删除这些无效项目?[y/N]: y
|
|
187
|
+
|
|
188
|
+
✅ 已删除 2 个无效项目
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### 快速清理所有无效项目
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
# 带确认提示
|
|
195
|
+
lcch projects clean --all
|
|
196
|
+
|
|
197
|
+
# 强制删除,无确认
|
|
198
|
+
lcch projects clean --force
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
💡 **提示**:清理前会自动创建配置备份,可通过 `lcch backup_config restore` 恢复。
|
|
202
|
+
|
|
203
|
+
### 删除会话历史
|
|
204
|
+
|
|
205
|
+
删除特定项目的会话历史记录:
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
lcch project /Users/lrk/workspace/my-project --sessions --delete-sessions
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
交互流程:
|
|
212
|
+
1. 显示该项目的所有会话(按时间排序)
|
|
213
|
+
2. 选择要删除的会话(默认全选)
|
|
214
|
+
3. 二次确认后删除
|
|
215
|
+
|
|
216
|
+
### 删除 Resume
|
|
217
|
+
|
|
218
|
+
查看并删除项目的 resume:
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
lcch projects list --resume --delete-resumes
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
交互流程:
|
|
225
|
+
1. 选择项目阶段(孤立项目默认全选)
|
|
226
|
+
2. 选择 resume 阶段(显示路径、Session ID、大小,默认全选)
|
|
227
|
+
3. 二次确认后删除
|
|
228
|
+
|
|
229
|
+
💡 **提示**:`--delete-resumes` 只能删除 resume,不能删除会话。删除会话请用 `--delete-sessions`。
|
|
230
|
+
|
|
231
|
+
## 场景三:备份与恢复配置
|
|
232
|
+
|
|
233
|
+
在修改配置或清理数据前,先备份以防万一;或从旧备份恢复。
|
|
234
|
+
|
|
235
|
+
备份文件存储位置:
|
|
236
|
+
- `.claude.json` 备份:`~/.lcch/backups/config/`
|
|
237
|
+
- `settings.json` 备份:`~/.lcch/backups/settings/`
|
|
238
|
+
|
|
239
|
+
### 创建备份
|
|
240
|
+
|
|
241
|
+
交互式创建备份(默认同时备份两种配置):
|
|
242
|
+
|
|
243
|
+
```bash
|
|
244
|
+
lcch backup_config create
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
输出示例:
|
|
248
|
+
|
|
249
|
+
```
|
|
250
|
+
💾 创建配置备份
|
|
251
|
+
|
|
252
|
+
请选择要备份的配置:
|
|
253
|
+
◉ ☐ .claude.json (Claude 主配置)
|
|
254
|
+
◉ ☐ settings.json (全局设置)
|
|
255
|
+
|
|
256
|
+
[选择全部] [取消选择] [确认]
|
|
257
|
+
|
|
258
|
+
✅ 已创建备份:
|
|
259
|
+
├─ .claude.json.backup.1734567890
|
|
260
|
+
└─ settings.json.backup.1734567890
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
只备份一种配置:
|
|
264
|
+
|
|
265
|
+
```bash
|
|
266
|
+
lcch backup_config create --target config # 只备份 .claude.json
|
|
267
|
+
lcch backup_config create --target settings # 只备份 settings.json
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
### 查看备份列表
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
lcch backup_config list
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
输出示例:
|
|
277
|
+
|
|
278
|
+
```
|
|
279
|
+
📋 配置备份列表
|
|
280
|
+
|
|
281
|
+
📁 config (.claude.json) - ~/.lcch/backups/config/
|
|
282
|
+
├─ .claude.json.backup.1734567890 (2025-01-15 14:30, 2.1KB)
|
|
283
|
+
├─ .claude.json.backup.1734567000 (2025-01-14 10:00, 2.0KB)
|
|
284
|
+
└─ .claude.json.backup_auto_before_restore (2025-01-13 16:00, 1.9KB)
|
|
285
|
+
|
|
286
|
+
📁 settings (settings.json) - ~/.lcch/backups/settings/
|
|
287
|
+
├─ settings.json.backup.1734567890 (2025-01-15 14:30, 1.5KB)
|
|
288
|
+
└─ settings.json.backup.1734555000 (2025-01-12 09:00, 1.4KB)
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
只显示一种配置:
|
|
292
|
+
|
|
293
|
+
```bash
|
|
294
|
+
lcch backup_config list --target config
|
|
295
|
+
lcch backup_config list --target settings
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### 恢复备份
|
|
299
|
+
|
|
300
|
+
交互式选择恢复:
|
|
301
|
+
|
|
302
|
+
```bash
|
|
303
|
+
lcch backup_config restore
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
输出示例:
|
|
307
|
+
|
|
308
|
+
```
|
|
309
|
+
♻️ 恢复配置备份
|
|
310
|
+
|
|
311
|
+
选择要恢复的备份(平铺显示):
|
|
312
|
+
|
|
313
|
+
[1] .claude.json.backup.1734567890 (2025-01-15 14:30)
|
|
314
|
+
[2] .claude.json.backup.1734567000 (2025-01-14 10:00)
|
|
315
|
+
[3] .claude.json.backup_auto_before_restore (2025-01-13 16:00)
|
|
316
|
+
[4] settings.json.backup.1734567890 (2025-01-15 14:30)
|
|
317
|
+
...
|
|
318
|
+
|
|
319
|
+
请选择: 1
|
|
320
|
+
|
|
321
|
+
⚠️ 恢复将覆盖当前配置
|
|
322
|
+
自动创建覆盖前备份: .claude.json.backup_auto_before_restore
|
|
323
|
+
|
|
324
|
+
确认恢复?[y/N]: y
|
|
325
|
+
|
|
326
|
+
✅ 已恢复配置
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
直接恢复指定备份:
|
|
330
|
+
|
|
331
|
+
```bash
|
|
332
|
+
lcch backup_config restore .claude.json.backup.1734567890
|
|
333
|
+
lcch backup_config restore settings.json.backup.1734555000
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
💡 **提示**:恢复前会自动创建 `*.backup_auto_before_restore` 覆盖式备份。
|
|
337
|
+
|
|
338
|
+
### 删除备份
|
|
339
|
+
|
|
340
|
+
交互式选择删除(按类型分组):
|
|
341
|
+
|
|
342
|
+
```bash
|
|
343
|
+
lcch backup_config delete
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
输出示例:
|
|
347
|
+
|
|
348
|
+
```
|
|
349
|
+
🗑️ 删除配置备份
|
|
350
|
+
|
|
351
|
+
[config]
|
|
352
|
+
☐ .claude.json.backup.1734567890
|
|
353
|
+
☑ .claude.json.backup.1734567000
|
|
354
|
+
☑ .claude.json.backup_auto_before_restore
|
|
355
|
+
|
|
356
|
+
[settings]
|
|
357
|
+
☐ settings.json.backup.1734567890
|
|
358
|
+
☐ settings.json.backup.1734555000
|
|
359
|
+
|
|
360
|
+
已选择: 3 个备份
|
|
361
|
+
确认删除?[y/N]: y
|
|
362
|
+
|
|
363
|
+
✅ 已删除 3 个备份
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
直接删除指定备份:
|
|
367
|
+
|
|
368
|
+
```bash
|
|
369
|
+
lcch backup_config delete .claude.json.backup.1734567890
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
💡 **注意**:恢复前自动创建的 `*.backup_auto_before_restore` 会在下次恢复时被覆盖。
|
|
373
|
+
|
|
374
|
+
## 场景四:导出会话记录
|
|
375
|
+
|
|
376
|
+
需要将某项目的会话导出为文件,用于存档或分享。
|
|
377
|
+
|
|
378
|
+
> **注意**:当前版本的导出功能的效果阅读起来并不是很满意,后续有时间会跟踪优化。
|
|
379
|
+
|
|
380
|
+
### 交互式导出
|
|
381
|
+
|
|
382
|
+
```bash
|
|
383
|
+
lcch projects export
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
交互流程:
|
|
387
|
+
1. **选择项目**:显示有效/无效项目列表,支持搜索过滤
|
|
388
|
+
2. **选择会话**:显示该项目的所有会话(按时间倒序),可多选
|
|
389
|
+
3. **选择角色**:用户消息 / 助手消息 / 全部
|
|
390
|
+
4. **选择内容类型**:文本 / 工具调用 / 工具结果 / 思考过程 / 全部
|
|
391
|
+
5. **选择格式**:JSON / Markdown / HTML / Text
|
|
392
|
+
6. **确认导出**
|
|
393
|
+
|
|
394
|
+
输出示例:
|
|
395
|
+
|
|
396
|
+
```
|
|
397
|
+
📤 导出会话
|
|
398
|
+
|
|
399
|
+
[1/5] 选择项目
|
|
400
|
+
请选择要导出的项目:
|
|
401
|
+
✓ /Users/lrk/workspace/my-project
|
|
402
|
+
✓ /Users/lrk/workspace/another-project
|
|
403
|
+
✗ /Users/lrk/deleted-app
|
|
404
|
+
|
|
405
|
+
[2/5] 选择会话 (共 23 个)
|
|
406
|
+
├─ 2025-01-16 12:30 (最近活动)
|
|
407
|
+
├─ 2025-01-16 09:00
|
|
408
|
+
└─ 2025-01-15 16:45
|
|
409
|
+
...(选择后显示已选: X 个)
|
|
410
|
+
|
|
411
|
+
[3/5] 选择角色
|
|
412
|
+
◉ 全部
|
|
413
|
+
○ 用户消息
|
|
414
|
+
○ 助手消息
|
|
415
|
+
|
|
416
|
+
[4/5] 选择内容类型
|
|
417
|
+
◉ 全部
|
|
418
|
+
○ 文本 (text)
|
|
419
|
+
○ 工具调用 (tool_use)
|
|
420
|
+
○ 工具结果 (tool_result)
|
|
421
|
+
○ 思考过程 (thinking)
|
|
422
|
+
|
|
423
|
+
[5/5] 选择格式
|
|
424
|
+
( ) json - 适合程序处理
|
|
425
|
+
(>) markdown - 适合阅读
|
|
426
|
+
( ) html - 适合分享
|
|
427
|
+
( ) text - 纯文本
|
|
428
|
+
|
|
429
|
+
✅ 导出完成
|
|
430
|
+
📁 保存位置: ~/Desktop/lcch-exports/my-project/2025-01-16_123045.md
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
### 指定格式和目录导出
|
|
434
|
+
|
|
435
|
+
```bash
|
|
436
|
+
# 导出为文本格式到指定目录
|
|
437
|
+
lcch projects export --format text --output-dir ./exports
|
|
438
|
+
|
|
439
|
+
# 导出为 JSON 格式
|
|
440
|
+
lcch projects export --format json
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
💡 **提示**:默认导出到 `~/Desktop/lcch-exports/<项目名>/<时间戳>.<格式>`
|
|
444
|
+
|
|
445
|
+
## 场景五:安全扫描
|
|
446
|
+
|
|
447
|
+
担心缓存中残留了 API 密钥等敏感信息,需要扫描并处理。
|
|
448
|
+
|
|
449
|
+
### 扫描敏感信息
|
|
450
|
+
|
|
451
|
+
```bash
|
|
452
|
+
lcch scan-secrets
|
|
453
|
+
```
|
|
454
|
+
|
|
455
|
+
扫描位置:
|
|
456
|
+
- `~/.claude/settings.json` - 全局设置
|
|
457
|
+
- `~/.claude/projects/` - 项目会话数据
|
|
458
|
+
- `~/.claude/history.jsonl` - 历史会话记录
|
|
459
|
+
- `~/.claude/session-env/` - 会话环境变量
|
|
460
|
+
|
|
461
|
+
输出示例(已截断):
|
|
462
|
+
|
|
463
|
+
```
|
|
464
|
+
🔍 正在扫描缓存中的敏感信息...
|
|
465
|
+
|
|
466
|
+
⚠️ 发现 125 处敏感信息:
|
|
467
|
+
|
|
468
|
+
🔑 Anthropic API Key (1 处)
|
|
469
|
+
📄 ~/.claude/settings.json
|
|
470
|
+
├─ 匹配: sk-s********************cf91
|
|
471
|
+
│ 条数: 1
|
|
472
|
+
│ 行号: 3
|
|
473
|
+
|
|
474
|
+
🔑 Bearer Token (94 处)
|
|
475
|
+
📄 ~/.claude/projects/.../6a26982c-...-093cf.jsonl
|
|
476
|
+
├─ 匹配: Authorization: Bearer eyJh********************lSDQ
|
|
477
|
+
│ 条数: 22
|
|
478
|
+
│ 行号: 1175, 1180, 1185, ...
|
|
479
|
+
└─ 匹配: eyjhbgcioijiuzi1niisinr5cci6ikpxvcj9...
|
|
480
|
+
条数: 5
|
|
481
|
+
|
|
482
|
+
🔑 API Key (30 处)
|
|
483
|
+
📄 ~/.claude/projects/.../79558259-...-d33a87c.jsonl
|
|
484
|
+
└─ 匹配: AIza********************gPLY
|
|
485
|
+
条数: 30
|
|
486
|
+
|
|
487
|
+
─────────────────────────────────────
|
|
488
|
+
安全建议
|
|
489
|
+
─────────────────────────────────────
|
|
490
|
+
1. 定期清理会话历史和 resume 数据
|
|
491
|
+
2. 定期轮换 API 密钥
|
|
492
|
+
─────────────────────────────────────
|
|
493
|
+
```
|
|
494
|
+
|
|
495
|
+
💡 **提示**:默认只显示模糊化的密钥(前4位和后4位,中间用 `*` 代替)
|
|
496
|
+
|
|
497
|
+
### 显示完整密钥
|
|
498
|
+
|
|
499
|
+
```bash
|
|
500
|
+
lcch scan-secrets --show
|
|
501
|
+
```
|
|
502
|
+
|
|
503
|
+
⚠️ **注意**:`--show` 会显示完整密钥内容,仅供调试使用,谨慎操作。
|
|
504
|
+
|
|
505
|
+
### 掩码替换敏感信息
|
|
506
|
+
|
|
507
|
+
交互式选择项目,扫描并掩码替换敏感信息:
|
|
508
|
+
|
|
509
|
+
```bash
|
|
510
|
+
lcch scan-secrets --mask
|
|
511
|
+
```
|
|
512
|
+
|
|
513
|
+
交互流程:
|
|
514
|
+
1. **选择项目**:按有效(绿色✓)/无效(品红✗)/孤立(黄色⚠)分组显示
|
|
515
|
+
2. **确认替换**:显示扫描结果,确认后执行替换
|
|
516
|
+
3. **完成**:显示修改的文件列表和备份创建情况
|
|
517
|
+
|
|
518
|
+
输出示例:
|
|
519
|
+
|
|
520
|
+
```
|
|
521
|
+
🔐 掩码替换敏感信息
|
|
522
|
+
|
|
523
|
+
请选择要处理的项目:
|
|
524
|
+
|
|
525
|
+
[有效项目]
|
|
526
|
+
✓ /Users/lrk/workspace/my-project
|
|
527
|
+
✓ /Users/lrk/workspace/another-project
|
|
528
|
+
|
|
529
|
+
[无效项目]
|
|
530
|
+
✗ /Users/lrk/old-project
|
|
531
|
+
|
|
532
|
+
[孤立项目]
|
|
533
|
+
⚠ 6a26982c-...-093cf (session)
|
|
534
|
+
⚠ 8b37191d-...-a4d5e (session)
|
|
535
|
+
|
|
536
|
+
已选择: 2 个有效项目
|
|
537
|
+
|
|
538
|
+
⚠️ 即将对这些项目执行掩码替换:
|
|
539
|
+
• 扫描项目缓存目录中的所有支持文件
|
|
540
|
+
• 将敏感信息替换为 "sk-aaaa****bbbb" 格式
|
|
541
|
+
• 为每个被修改的文件创建 .backup.<timestamp> 备份
|
|
542
|
+
|
|
543
|
+
确认执行?[y/N]: y
|
|
544
|
+
|
|
545
|
+
🔍 正在扫描: /Users/lrk/workspace/my-project
|
|
546
|
+
扫描完成,发现 15 处敏感信息
|
|
547
|
+
✓ 已修改 3 个文件
|
|
548
|
+
|
|
549
|
+
🔍 正在扫描: /Users/lrk/workspace/another-project
|
|
550
|
+
扫描完成,发现 8 处敏感信息
|
|
551
|
+
✓ 已修改 2 个文件
|
|
552
|
+
|
|
553
|
+
✅ 处理完成,共修改 5 个文件,创建 5 个备份
|
|
554
|
+
```
|
|
555
|
+
|
|
556
|
+
### 恢复掩码备份
|
|
557
|
+
|
|
558
|
+
恢复项目下所有掩码备份:
|
|
559
|
+
|
|
560
|
+
```bash
|
|
561
|
+
lcch scan-secrets --mask --restore ~/.claude/projects/-Users-lrk-workspace-my-project
|
|
562
|
+
```
|
|
563
|
+
|
|
564
|
+
### 查看掩码备份
|
|
565
|
+
|
|
566
|
+
```bash
|
|
567
|
+
lcch scan-secrets --backup
|
|
568
|
+
```
|
|
569
|
+
|
|
570
|
+
输出示例:
|
|
571
|
+
|
|
572
|
+
```
|
|
573
|
+
📋 掩码备份列表
|
|
574
|
+
|
|
575
|
+
项目: /Users/lrk/workspace/my-project
|
|
576
|
+
├─ .backup.1734567890 (2025-01-15 14:30, 2.1KB)
|
|
577
|
+
└─ .backup.1734567000 (2025-01-14 10:00, 1.8KB)
|
|
578
|
+
|
|
579
|
+
项目: /Users/lrk/workspace/another-project
|
|
580
|
+
└─ .backup.1734567000 (2025-01-14 10:00, 1.2KB)
|
|
581
|
+
```
|
|
582
|
+
|
|
583
|
+
💡 **提示**:
|
|
584
|
+
- 自动排除示例值(xxx、placeholder、eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 等)
|
|
585
|
+
- 支持格式:.json, .jsonc, .jsonl, .env, .yaml, .yml, .toml, .txt, .md, .ts, .js, .sh
|
|
586
|
+
|
|
587
|
+
## 场景六:查看配置统计与缓存
|
|
588
|
+
|
|
589
|
+
想全局了解自己的 Claude Code 使用情况。
|
|
590
|
+
|
|
591
|
+
### 查看使用统计
|
|
592
|
+
|
|
593
|
+
```bash
|
|
594
|
+
lcch config stats
|
|
595
|
+
```
|
|
596
|
+
|
|
597
|
+
输出示例:
|
|
598
|
+
|
|
599
|
+
```
|
|
600
|
+
📊 Claude Code 使用统计
|
|
601
|
+
|
|
602
|
+
📁 项目
|
|
603
|
+
总数: 12 个 | 有效: 8 个 | 无效: 4 个 | MCP 服务器: 5 个
|
|
604
|
+
|
|
605
|
+
💬 会话
|
|
606
|
+
历史会话: 156 个 | Resume 会话: 23 个
|
|
607
|
+
有效项目: 89 个 | 无效项目: 45 个 | 孤立会话: 22 个
|
|
608
|
+
|
|
609
|
+
💰 费用
|
|
610
|
+
总花费: $89.50 | 平均每项目: $7.46
|
|
611
|
+
|
|
612
|
+
🔢 Token
|
|
613
|
+
输入: 1.2M | 输出: 450K
|
|
614
|
+
缓存创建: 320K | 缓存读取: 890K
|
|
615
|
+
|
|
616
|
+
🛠️ 工具使用 (Top 10)
|
|
617
|
+
Read: 1,234 次 | Edit: 892 次 | Bash: 567 次
|
|
618
|
+
Glob: 445 次 | grep: 323 次 | ...
|
|
619
|
+
...
|
|
620
|
+
|
|
621
|
+
✨ Skill 使用 (Top 10)
|
|
622
|
+
mcp: 234 次 | web-fetch: 189 次 | ...
|
|
623
|
+
|
|
624
|
+
🔗 GitHub
|
|
625
|
+
关联仓库: 15 个
|
|
626
|
+
|
|
627
|
+
⏱️ 时间
|
|
628
|
+
使用天数: 45 天 | 首次: 2024-12-01 | 最后: 2025-01-16
|
|
629
|
+
|
|
630
|
+
👤 用户
|
|
631
|
+
ID: user_abc123 | 安装方式: npm
|
|
632
|
+
|
|
633
|
+
🥚 AI 伴侣
|
|
634
|
+
名字: Claude | 性格: helpful | 孵化: 2025-01-01
|
|
635
|
+
```
|
|
636
|
+
|
|
637
|
+
### 查看配置路径
|
|
638
|
+
|
|
639
|
+
```bash
|
|
640
|
+
lcch config path
|
|
641
|
+
```
|
|
642
|
+
|
|
643
|
+
输出:
|
|
644
|
+
|
|
645
|
+
```
|
|
646
|
+
📍 配置文件位置
|
|
647
|
+
|
|
648
|
+
Claude 主配置: /Users/lrk/.claude.json
|
|
649
|
+
全局设置: /Users/lrk/.claude/settings.json
|
|
650
|
+
```
|
|
651
|
+
|
|
652
|
+
### 查看缓存信息
|
|
653
|
+
|
|
654
|
+
```bash
|
|
655
|
+
lcch cache
|
|
656
|
+
```
|
|
657
|
+
|
|
658
|
+
输出示例:
|
|
659
|
+
|
|
660
|
+
```
|
|
661
|
+
💾 Claude Code 缓存信息
|
|
662
|
+
|
|
663
|
+
缓存目录:
|
|
664
|
+
📁 stats-cache ~/.claude/stats-cache.json (更新于 2025-01-16 12:00)
|
|
665
|
+
📁 file-history ~/.claude/file-history/ (156 文件, 45MB)
|
|
666
|
+
📁 paste-cache ~/.claude/paste-cache/ (23 文件, 1.2MB)
|
|
667
|
+
📁 shell-snapshots ~/.claude/shell-snapshots/ (12 文件, 2.3MB)
|
|
668
|
+
📁 cache ~/.claude/cache/ (8 文件, 340KB)
|
|
669
|
+
📁 session-env ~/.claude/session-env/ (67 文件, 5.6MB)
|
|
670
|
+
|
|
671
|
+
API Prompt 缓存统计:
|
|
672
|
+
缓存读取: 890K tokens | 缓存创建: 320K tokens
|
|
673
|
+
缓存命中率: 68.5%
|
|
674
|
+
```
|
|
675
|
+
|
|
676
|
+
JSON 格式输出:
|
|
677
|
+
|
|
678
|
+
```bash
|
|
679
|
+
lcch cache --json
|
|
680
|
+
```
|
|
681
|
+
|
|
682
|
+
## 场景七:管理 MCP 和 Hooks
|
|
683
|
+
|
|
684
|
+
查看已配置的 MCP 服务器和 Hooks。
|
|
685
|
+
|
|
686
|
+
### 查看 MCP 服务器
|
|
687
|
+
|
|
688
|
+
```bash
|
|
689
|
+
lcch mcp list
|
|
690
|
+
```
|
|
691
|
+
|
|
692
|
+
输出示例:
|
|
693
|
+
|
|
694
|
+
```
|
|
695
|
+
🖥️ MCP 服务器列表
|
|
696
|
+
|
|
697
|
+
📍 全局 (2)
|
|
698
|
+
├─ mcp-server-filesystem
|
|
699
|
+
│ 路径: /usr/local/lib/node_modules/mcp-filesystem
|
|
700
|
+
│ 状态: ✅ 启用
|
|
701
|
+
└─ mcp-server-github
|
|
702
|
+
路径: /usr/local/lib/node_modules/mcp-github
|
|
703
|
+
状态: ✅ 启用
|
|
704
|
+
|
|
705
|
+
📍 项目级 (3)
|
|
706
|
+
/Users/lrk/workspace/my-project
|
|
707
|
+
└─ mcp-server-sql
|
|
708
|
+
路径: ./node_modules/mcp-sql
|
|
709
|
+
状态: ✅ 启用
|
|
710
|
+
|
|
711
|
+
/Users/lrk/workspace/another-project
|
|
712
|
+
├─ mcp-server-postgres
|
|
713
|
+
│ 状态: ✅ 启用
|
|
714
|
+
└─ mcp-server-redis
|
|
715
|
+
状态: ❌ 禁用
|
|
716
|
+
```
|
|
717
|
+
|
|
718
|
+
### 查看 MCP 详情
|
|
719
|
+
|
|
720
|
+
交互式选择查看详细配置:
|
|
721
|
+
|
|
722
|
+
```bash
|
|
723
|
+
lcch mcp info
|
|
724
|
+
```
|
|
725
|
+
|
|
726
|
+
输出示例:
|
|
727
|
+
|
|
728
|
+
```
|
|
729
|
+
🔍 MCP 服务器详情
|
|
730
|
+
|
|
731
|
+
请选择要查看的服务器:
|
|
732
|
+
[1] mcp-server-filesystem (全局)
|
|
733
|
+
[2] mcp-server-github (全局)
|
|
734
|
+
[3] mcp-server-sql (/Users/lrk/workspace/my-project)
|
|
735
|
+
[4] mcp-server-postgres (/Users/lrk/workspace/another-project)
|
|
736
|
+
|
|
737
|
+
选择: 3
|
|
738
|
+
|
|
739
|
+
─────────────────────────────────────────
|
|
740
|
+
mcp-server-sql (项目级)
|
|
741
|
+
─────────────────────────────────────────
|
|
742
|
+
项目: /Users/lrk/workspace/my-project
|
|
743
|
+
类型: command
|
|
744
|
+
命令: node
|
|
745
|
+
参数: ["~/mcp-sql/index.js"]
|
|
746
|
+
|
|
747
|
+
环境变量:
|
|
748
|
+
DATABASE_URL: postg***** ← 敏感信息已模糊化
|
|
749
|
+
API_KEY: sk-te***** ← 敏感信息已模糊化
|
|
750
|
+
|
|
751
|
+
其他配置:
|
|
752
|
+
timeout: 30000
|
|
753
|
+
autoApprove: false
|
|
754
|
+
enabled: true
|
|
755
|
+
```
|
|
756
|
+
|
|
757
|
+
显示完整敏感信息:
|
|
758
|
+
|
|
759
|
+
```bash
|
|
760
|
+
lcch mcp info --show
|
|
761
|
+
```
|
|
762
|
+
|
|
763
|
+
💡 **注意**:默认模糊化包含 `key`、`token`、`secret`、`password`、`auth` 或以 `_pass` 结尾的环境变量。
|
|
764
|
+
|
|
765
|
+
### 查看 Hooks
|
|
766
|
+
|
|
767
|
+
```bash
|
|
768
|
+
lcch hooks list
|
|
769
|
+
```
|
|
770
|
+
|
|
771
|
+
输出示例:
|
|
772
|
+
|
|
773
|
+
```
|
|
774
|
+
🪝 Hooks 列表
|
|
775
|
+
|
|
776
|
+
📍 全局 (1)
|
|
777
|
+
├─ Hook: afterModelWrite
|
|
778
|
+
│ 脚本: /Users/lrk/.claude/hooks/afterModelWrite.js
|
|
779
|
+
│ 事件: post-write
|
|
780
|
+
└─ 配置: { autoFormat: true }
|
|
781
|
+
|
|
782
|
+
📍 项目级 (2)
|
|
783
|
+
/Users/lrk/workspace/my-project
|
|
784
|
+
└─ Hook: customPrompt
|
|
785
|
+
脚本: .claude/hooks/custom-prompt.js
|
|
786
|
+
事件: pre-prompt
|
|
787
|
+
|
|
788
|
+
/Users/lrk/workspace/another-project
|
|
789
|
+
└─ Hook: gitCommit
|
|
790
|
+
脚本: .claude/hooks/git-commit.js
|
|
791
|
+
事件: pre-commit
|
|
792
|
+
```
|
|
793
|
+
|
|
794
|
+
---
|
|
795
|
+
|
|
796
|
+
## 命令大全索引表
|
|
797
|
+
|
|
798
|
+
| 模块 | 命令 | 常用参数 | 适用场景 | 说明 |
|
|
799
|
+
|------|------|----------|----------|------|
|
|
800
|
+
| **projects** | `lcch projects list` | `--tree`, `--verbose`, `--sessions`, `--resume`, `--filter <type>` | 浏览所有项目 | 支持多种展示模式,`--filter` 过滤 valid/invalid/orphaned |
|
|
801
|
+
| **projects** | `lcch projects clean` | `--all`, `--force` | 清理无效项目 | `--all` 清理全部,`--force` 强制无确认 |
|
|
802
|
+
| **projects** | `lcch projects export` | `--format <json|markdown|html|text>`, `--output-dir <dir>` | 导出会话 | 交互式选择项目/会话/角色/内容类型 |
|
|
803
|
+
| **project** | `lcch project <path>` | `--sessions`, `--resume`, `--delete-sessions` | 查看单个项目 | `path` 支持相对路径和 `~` 符号 |
|
|
804
|
+
| **backup_config** | `lcch backup_config create` | `--target config\|settings` | 创建备份 | 默认同时备份两种配置 |
|
|
805
|
+
| **backup_config** | `lcch backup_config list` | `--target config\|settings` | 查看备份 | 按类型分组显示 |
|
|
806
|
+
| **backup_config** | `lcch backup_config restore` | `[filename]` | 恢复备份 | 支持交互式或直接指定文件名 |
|
|
807
|
+
| **backup_config** | `lcch backup_config delete` | `[filename]` | 删除备份 | 支持交互式或直接指定文件名 |
|
|
808
|
+
| **mcp** | `lcch mcp list` | — | 查看 MCP 服务器 | 按全局/项目级分类显示 |
|
|
809
|
+
| **mcp** | `lcch mcp info` | `--show` | 查看 MCP 详情 | `--show` 显示完整敏感信息 |
|
|
810
|
+
| **hooks** | `lcch hooks list` | — | 查看 Hooks | 按全局/项目级分类显示 |
|
|
811
|
+
| **config** | `lcch config stats` | — | 查看使用统计 | 显示项目/会话/费用/Token/工具等统计 |
|
|
812
|
+
| **config** | `lcch config path` | — | 查看配置路径 | 显示 .claude.json 等路径 |
|
|
813
|
+
| **cache** | `lcch cache` | `--json` | 查看缓存信息 | 含 API Prompt 缓存统计 |
|
|
814
|
+
| **scan-secrets** | `lcch scan-secrets` | `--show`, `--json` | 扫描敏感信息 | 扫描缓存中的密钥/令牌 |
|
|
815
|
+
| **scan-secrets** | `lcch scan-secrets --mask` | `--restore <path>` | 掩码替换 | 交互式选择项目,自动创建文件级备份 |
|
|
816
|
+
| **scan-secrets** | `lcch scan-secrets --backup` | — | 查看掩码备份 | 列出所有项目的备份信息 |
|
|
817
|
+
|
|
818
|
+
### 常用组合示例
|
|
819
|
+
|
|
820
|
+
```bash
|
|
821
|
+
# 查看所有项目树形结构
|
|
822
|
+
lcch projects list --tree
|
|
823
|
+
|
|
824
|
+
# 查看所有项目的会话并删除
|
|
825
|
+
lcch projects list --sessions --delete-sessions
|
|
826
|
+
|
|
827
|
+
# 强制清理所有无效项目
|
|
828
|
+
lcch projects clean --force
|
|
829
|
+
|
|
830
|
+
# 导出为文本格式到指定目录
|
|
831
|
+
lcch projects export --format text --output-dir ~/exports
|
|
832
|
+
|
|
833
|
+
# 扫描并掩码替换敏感信息
|
|
834
|
+
lcch scan-secrets --mask
|
|
835
|
+
|
|
836
|
+
# 恢复项目的掩码备份
|
|
837
|
+
lcch scan-secrets --mask --restore ~/.claude/projects/-Users-lrk-workspace-my-project
|
|
838
|
+
|
|
839
|
+
# 查看 MCP 详情(显示敏感信息)
|
|
840
|
+
lcch mcp info --show
|
|
841
|
+
|
|
842
|
+
# JSON 格式输出
|
|
843
|
+
lcch cache --json
|
|
844
|
+
lcch scan-secrets --json
|
|
845
|
+
```
|
|
846
|
+
|
|
847
|
+
|