lcch-cli
v1.0.3
Published
Claude Code Helper - 管理 Claude Code 配置的 CLI 工具
Maintainers
Readme
LCCH - Claude Code Helper
管理 Claude Code 配置 (~/.claude.json) 的 CLI 工具。
简介
LCCH(L Claude Code Helper)是一款专为 Claude Code 重度用户打造的配置管理 CLI 工具,帮助你高效管理、清理、备份和导出 Claude Code 的配置与数据。
核心痛点
长期使用 Claude Code 后,你是否遇到过这些问题?
- 配置膨胀:
~/.claude.json中积累了大量已删除或移动的项目路径,导致启动变慢、配置臃肿 - 磁盘空间告急:项目 resume 会话数据(
~/.claude/projects/)日积月累,占用大量磁盘空间 - 安全隐患:会话历史、resume 文件和缓存中残留了 API 密钥、Bearer Token 等敏感信息
- 配置风险:手动修改配置前担心出错,却缺乏便捷的备份恢复手段
- 数据孤岛:需要将会话记录导出存档或分享,但 Claude Code 没有内置导出功能
主要功能
| 功能模块 | 说明 |
|---------|------|
| 项目浏览 | 查看所有项目的状态(有效/无效/孤立),支持树形结构和详细统计 |
| 数据清理 | 交互式清理无效项目、删除历史会话和 resume 文件,释放磁盘空间 |
| 配置备份 | 一键备份 .claude.json 和 settings.json,支持恢复和自动回滚 |
| 会话导出 | 按项目、会话、角色、内容类型筛选,导出为 JSON / Markdown / HTML / Text 四种格式 |
| 安全扫描 | 扫描缓存中的 API 密钥、Token、私钥等敏感信息,支持一键掩码替换 |
| 统计概览 | 查看全局使用统计(项目数、费用、Token、工具调用等)和缓存信息 |
| MCP / Hooks 管理 | 查看全局和项目级的 MCP 服务器配置与 Hooks 脚本 |
特点
- 交互式体验:基于 inquirer 的向导式操作,支持搜索过滤和多选,无需记忆复杂命令
- 安全优先:敏感信息默认模糊化展示,掩码替换前自动创建文件级备份
- 自动备份:恢复配置前自动创建覆盖式备份,避免操作失误导致配置丢失
- 多格式导出:会话记录可导出为 JSON(程序处理)、Markdown(阅读)、HTML(分享)、Text(纯文本)
- 彩色终端:使用 chalk 提供清晰的视觉层次,项目状态一目了然
适用人群
- 长期使用 Claude Code 的开发者 — 项目数量多、会话数据庞大的用户
- 注重隐私安全的用户 — 需要定期清理和扫描敏感信息的团队或个人
- 多项目切换的工程师 — 需要快速浏览、清理、导出不同项目会话记录
- 配置管理爱好者 — 希望在修改配置前有可靠备份机制的用户
安装
# 通过 npm 安装
npm install -g lcch-cli
# 验证安装
lcch --version快速开始
安装完成后,使用以下命令查看可用命令:
lcch --help场景一:浏览项目与会话
刚安装完,想先看看自己有哪些项目,各项目状态如何。
查看项目列表
lcch projects list输出示例:
📂 项目列表
✓ 有效项目 (3)
├─ /Users/lrk/workspace/my-project
├─ /Users/lrk/workspace/another-project
└─ /Users/lrk/workspace/lcch-cli
✗ 无效项目 (2)
├─ /Users/lrk/old-project (目录不存在)
└─ /Users/lrk/deleted-app (目录不存在)- ✓ 绿色:有效项目(目录存在且在配置中)
- ✗ 品红:无效项目(配置中存在但目录已删除)
树形结构展示
如果项目较多且有嵌套目录关系,使用树形视图:
lcch projects list --tree输出示例(已截断):
📂 项目树形结构
/Users/lrk/workspace/
├── my-project/
│ ├── child-project/
│ └── temp/
├── another-project/
│ └── module-a/
└── lcch-cli/
└── docs/带统计的详细列表
查看每个项目的花费、Token、工具使用等详细统计:
lcch projects list --verbose输出示例(已截断):
📊 项目详细统计(按花费排序)
✓ 有效项目
[1] /Users/lrk/workspace/my-project
花费: $12.50 | Resume: 5 | 会话: 23 | MCP: 2 | Skills: 3
[2] /Users/lrk/workspace/another-project
花费: $8.20 | Resume: 2 | 会话: 15 | MCP: 1 | Skills: 1
✗ 无效项目
[3] /Users/lrk/deleted-app
(目录不存在)💡 提示:使用 --filter valid|invalid|orphaned|all 可按项目状态过滤。
查看会话历史
查看所有项目的会话历史记录:
lcch projects list --sessions输出示例:
💬 会话历史
✓ 有效项目会话 (23)
/Users/lrk/workspace/my-project
├─ 2025-01-15 14:30 → 2025-01-15 16:45 (2h15m)
└─ 2025-01-16 09:00 → 2025-01-16 12:30 (3h30m)
✗ 无效项目会话 (5)
/Users/lrk/deleted-app
├─ 2024-12-01 10:00 → 2024-12-01 11:00 (1h)
└─ 2024-12-05 14:00 → 2024-12-05 15:30 (1h30m)
⚠ 孤立会话 (3)
(有会话记录但无对应项目)
├─ session-abc123 (2025-01-10)
├─ session-def456 (2025-01-12)
└─ session-ghi789 (2025-01-14)查看 Resume 历史
Resume 是 Claude Code 的会话续话功能,可查看所有项目的 resume 记录:
lcch projects list --resume输出示例(已截断):
📜 Resume 历史
✓ 有效项目 Resume (7)
/Users/lrk/workspace/my-project
├─ 6a26982c-...-093cf (创建: 2025-01-15 14:30 → 最后: 2025-01-16 12:30)
│ 消息数: 45 | 大小: 2.1MB | 压缩: 3次
└─ 8b37191d-...-a4d5e (创建: 2025-01-10 → 最后: 2025-01-12)
消息数: 28 | 大小: 1.3MB | 压缩: 1次
✗ 无效项目 Resume (2)
/Users/lrk/old-project
└─ 1c48293e-...-b6f7a (目录不存在)💡 提示:lcch project <path> 可查看单个项目的详细信息。
场景二:清理无用数据
发现有无效项目或过多 resume,需要清理释放空间。
交互式清理无效项目
lcch projects clean交互流程:
- 显示项目汇总(有效/无效/孤立项目统计)
- 选择项目阶段:有效/无效项目默认不选中,孤立项目默认全选
- 确认删除阶段:二次确认后执行删除
输出示例:
🧹 项目清理
项目统计: 有效 3 | 无效 2 | 孤立 0
请选择要删除的项目:
✓ /Users/lrk/workspace/my-project
✗ /Users/lrk/workspace/old-project
✗ /Users/lrk/workspace/deleted-app
已选择: 2 个项目
确认删除这些无效项目?[y/N]: y
✅ 已删除 2 个无效项目快速清理所有无效项目
# 带确认提示
lcch projects clean --all
# 强制删除,无确认
lcch projects clean --force💡 提示:清理前会自动创建配置备份,可通过 lcch backup_config restore 恢复。
删除会话历史
删除特定项目的会话历史记录:
lcch project /Users/lrk/workspace/my-project --sessions --delete-sessions交互流程:
- 显示该项目的所有会话(按时间排序)
- 选择要删除的会话(默认全选)
- 二次确认后删除
删除 Resume
查看并删除项目的 resume:
lcch projects list --resume --delete-resumes交互流程:
- 选择项目阶段(孤立项目默认全选)
- 选择 resume 阶段(显示路径、Session ID、大小,默认全选)
- 二次确认后删除
💡 提示:--delete-resumes 只能删除 resume,不能删除会话。删除会话请用 --delete-sessions。
场景三:备份与恢复配置
在修改配置或清理数据前,先备份以防万一;或从旧备份恢复。
备份文件存储位置:
.claude.json备份:~/.lcch/backups/config/settings.json备份:~/.lcch/backups/settings/
创建备份
交互式创建备份(默认同时备份两种配置):
lcch backup_config create输出示例:
💾 创建配置备份
请选择要备份的配置:
◉ ☐ .claude.json (Claude 主配置)
◉ ☐ settings.json (全局设置)
[选择全部] [取消选择] [确认]
✅ 已创建备份:
├─ .claude.json.backup.1734567890
└─ settings.json.backup.1734567890只备份一种配置:
lcch backup_config create --target config # 只备份 .claude.json
lcch backup_config create --target settings # 只备份 settings.json查看备份列表
lcch backup_config list输出示例:
📋 配置备份列表
📁 config (.claude.json) - ~/.lcch/backups/config/
├─ .claude.json.backup.1734567890 (2025-01-15 14:30, 2.1KB)
├─ .claude.json.backup.1734567000 (2025-01-14 10:00, 2.0KB)
└─ .claude.json.backup_auto_before_restore (2025-01-13 16:00, 1.9KB)
📁 settings (settings.json) - ~/.lcch/backups/settings/
├─ settings.json.backup.1734567890 (2025-01-15 14:30, 1.5KB)
└─ settings.json.backup.1734555000 (2025-01-12 09:00, 1.4KB)只显示一种配置:
lcch backup_config list --target config
lcch backup_config list --target settings恢复备份
交互式选择恢复:
lcch backup_config restore输出示例:
♻️ 恢复配置备份
选择要恢复的备份(平铺显示):
[1] .claude.json.backup.1734567890 (2025-01-15 14:30)
[2] .claude.json.backup.1734567000 (2025-01-14 10:00)
[3] .claude.json.backup_auto_before_restore (2025-01-13 16:00)
[4] settings.json.backup.1734567890 (2025-01-15 14:30)
...
请选择: 1
⚠️ 恢复将覆盖当前配置
自动创建覆盖前备份: .claude.json.backup_auto_before_restore
确认恢复?[y/N]: y
✅ 已恢复配置直接恢复指定备份:
lcch backup_config restore .claude.json.backup.1734567890
lcch backup_config restore settings.json.backup.1734555000💡 提示:恢复前会自动创建 *.backup_auto_before_restore 覆盖式备份。
删除备份
交互式选择删除(按类型分组):
lcch backup_config delete输出示例:
🗑️ 删除配置备份
[config]
☐ .claude.json.backup.1734567890
☑ .claude.json.backup.1734567000
☑ .claude.json.backup_auto_before_restore
[settings]
☐ settings.json.backup.1734567890
☐ settings.json.backup.1734555000
已选择: 3 个备份
确认删除?[y/N]: y
✅ 已删除 3 个备份直接删除指定备份:
lcch backup_config delete .claude.json.backup.1734567890💡 注意:恢复前自动创建的 *.backup_auto_before_restore 会在下次恢复时被覆盖。
场景四:导出会话记录
需要将某项目的会话导出为文件,用于存档或分享。
注意:当前版本的导出功能的效果阅读起来并不是很满意,后续有时间会跟踪优化。
交互式导出
lcch projects export交互流程:
- 选择项目:显示有效/无效项目列表,支持搜索过滤
- 选择会话:显示该项目的所有会话(按时间倒序),可多选
- 选择角色:用户消息 / 助手消息 / 全部
- 选择内容类型:文本 / 工具调用 / 工具结果 / 思考过程 / 全部
- 选择格式:JSON / Markdown / HTML / Text
- 确认导出
输出示例:
📤 导出会话
[1/5] 选择项目
请选择要导出的项目:
✓ /Users/lrk/workspace/my-project
✓ /Users/lrk/workspace/another-project
✗ /Users/lrk/deleted-app
[2/5] 选择会话 (共 23 个)
├─ 2025-01-16 12:30 (最近活动)
├─ 2025-01-16 09:00
└─ 2025-01-15 16:45
...(选择后显示已选: X 个)
[3/5] 选择角色
◉ 全部
○ 用户消息
○ 助手消息
[4/5] 选择内容类型
◉ 全部
○ 文本 (text)
○ 工具调用 (tool_use)
○ 工具结果 (tool_result)
○ 思考过程 (thinking)
[5/5] 选择格式
( ) json - 适合程序处理
(>) markdown - 适合阅读
( ) html - 适合分享
( ) text - 纯文本
✅ 导出完成
📁 保存位置: ~/Desktop/lcch-exports/my-project/2025-01-16_123045.md指定格式和目录导出
# 导出为文本格式到指定目录
lcch projects export --format text --output-dir ./exports
# 导出为 JSON 格式
lcch projects export --format json💡 提示:默认导出到 ~/Desktop/lcch-exports/<项目名>/<时间戳>.<格式>
场景五:安全扫描
担心缓存中残留了 API 密钥等敏感信息,需要扫描并处理。
扫描敏感信息
lcch scan-secrets扫描位置:
~/.claude/settings.json- 全局设置~/.claude/projects/- 项目会话数据~/.claude/history.jsonl- 历史会话记录~/.claude/session-env/- 会话环境变量
输出示例(已截断):
🔍 正在扫描缓存中的敏感信息...
⚠️ 发现 125 处敏感信息:
🔑 Anthropic API Key (1 处)
📄 ~/.claude/settings.json
├─ 匹配: sk-s********************cf91
│ 条数: 1
│ 行号: 3
🔑 Bearer Token (94 处)
📄 ~/.claude/projects/.../6a26982c-...-093cf.jsonl
├─ 匹配: Authorization: Bearer eyJh********************lSDQ
│ 条数: 22
│ 行号: 1175, 1180, 1185, ...
└─ 匹配: eyjhbgcioijiuzi1niisinr5cci6ikpxvcj9...
条数: 5
🔑 API Key (30 处)
📄 ~/.claude/projects/.../79558259-...-d33a87c.jsonl
└─ 匹配: AIza********************gPLY
条数: 30
─────────────────────────────────────
安全建议
─────────────────────────────────────
1. 定期清理会话历史和 resume 数据
2. 定期轮换 API 密钥
─────────────────────────────────────💡 提示:默认只显示模糊化的密钥(前4位和后4位,中间用 * 代替)
显示完整密钥
lcch scan-secrets --show⚠️ 注意:--show 会显示完整密钥内容,仅供调试使用,谨慎操作。
掩码替换敏感信息
交互式选择项目,扫描并掩码替换敏感信息:
lcch scan-secrets --mask交互流程:
- 选择项目:按有效(绿色✓)/无效(品红✗)/孤立(黄色⚠)分组显示
- 确认替换:显示扫描结果,确认后执行替换
- 完成:显示修改的文件列表和备份创建情况
输出示例:
🔐 掩码替换敏感信息
请选择要处理的项目:
[有效项目]
✓ /Users/lrk/workspace/my-project
✓ /Users/lrk/workspace/another-project
[无效项目]
✗ /Users/lrk/old-project
[孤立项目]
⚠ 6a26982c-...-093cf (session)
⚠ 8b37191d-...-a4d5e (session)
已选择: 2 个有效项目
⚠️ 即将对这些项目执行掩码替换:
• 扫描项目缓存目录中的所有支持文件
• 将敏感信息替换为 "sk-aaaa****bbbb" 格式
• 为每个被修改的文件创建 .backup.<timestamp> 备份
确认执行?[y/N]: y
🔍 正在扫描: /Users/lrk/workspace/my-project
扫描完成,发现 15 处敏感信息
✓ 已修改 3 个文件
🔍 正在扫描: /Users/lrk/workspace/another-project
扫描完成,发现 8 处敏感信息
✓ 已修改 2 个文件
✅ 处理完成,共修改 5 个文件,创建 5 个备份恢复掩码备份
恢复项目下所有掩码备份:
lcch scan-secrets --mask --restore ~/.claude/projects/-Users-lrk-workspace-my-project查看掩码备份
lcch scan-secrets --backup输出示例:
📋 掩码备份列表
项目: /Users/lrk/workspace/my-project
├─ .backup.1734567890 (2025-01-15 14:30, 2.1KB)
└─ .backup.1734567000 (2025-01-14 10:00, 1.8KB)
项目: /Users/lrk/workspace/another-project
└─ .backup.1734567000 (2025-01-14 10:00, 1.2KB)💡 提示:
- 自动排除示例值(xxx、placeholder、eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 等)
- 支持格式:.json, .jsonc, .jsonl, .env, .yaml, .yml, .toml, .txt, .md, .ts, .js, .sh
场景六:查看配置统计与缓存
想全局了解自己的 Claude Code 使用情况。
查看使用统计
lcch config stats输出示例:
📊 Claude Code 使用统计
📁 项目
总数: 12 个 | 有效: 8 个 | 无效: 4 个 | MCP 服务器: 5 个
💬 会话
历史会话: 156 个 | Resume 会话: 23 个
有效项目: 89 个 | 无效项目: 45 个 | 孤立会话: 22 个
💰 费用
总花费: $89.50 | 平均每项目: $7.46
🔢 Token
输入: 1.2M | 输出: 450K
缓存创建: 320K | 缓存读取: 890K
🛠️ 工具使用 (Top 10)
Read: 1,234 次 | Edit: 892 次 | Bash: 567 次
Glob: 445 次 | grep: 323 次 | ...
...
✨ Skill 使用 (Top 10)
mcp: 234 次 | web-fetch: 189 次 | ...
🔗 GitHub
关联仓库: 15 个
⏱️ 时间
使用天数: 45 天 | 首次: 2024-12-01 | 最后: 2025-01-16
👤 用户
ID: user_abc123 | 安装方式: npm
🥚 AI 伴侣
名字: Claude | 性格: helpful | 孵化: 2025-01-01查看配置路径
lcch config path输出:
📍 配置文件位置
Claude 主配置: /Users/lrk/.claude.json
全局设置: /Users/lrk/.claude/settings.json查看缓存信息
lcch cache输出示例:
💾 Claude Code 缓存信息
缓存目录:
📁 stats-cache ~/.claude/stats-cache.json (更新于 2025-01-16 12:00)
📁 file-history ~/.claude/file-history/ (156 文件, 45MB)
📁 paste-cache ~/.claude/paste-cache/ (23 文件, 1.2MB)
📁 shell-snapshots ~/.claude/shell-snapshots/ (12 文件, 2.3MB)
📁 cache ~/.claude/cache/ (8 文件, 340KB)
📁 session-env ~/.claude/session-env/ (67 文件, 5.6MB)
API Prompt 缓存统计:
缓存读取: 890K tokens | 缓存创建: 320K tokens
缓存命中率: 68.5%JSON 格式输出:
lcch cache --json场景七:管理 MCP 和 Hooks
查看已配置的 MCP 服务器和 Hooks。
查看 MCP 服务器
lcch mcp list输出示例:
🖥️ MCP 服务器列表
📍 全局 (2)
├─ mcp-server-filesystem
│ 路径: /usr/local/lib/node_modules/mcp-filesystem
│ 状态: ✅ 启用
└─ mcp-server-github
路径: /usr/local/lib/node_modules/mcp-github
状态: ✅ 启用
📍 项目级 (3)
/Users/lrk/workspace/my-project
└─ mcp-server-sql
路径: ./node_modules/mcp-sql
状态: ✅ 启用
/Users/lrk/workspace/another-project
├─ mcp-server-postgres
│ 状态: ✅ 启用
└─ mcp-server-redis
状态: ❌ 禁用查看 MCP 详情
交互式选择查看详细配置:
lcch mcp info输出示例:
🔍 MCP 服务器详情
请选择要查看的服务器:
[1] mcp-server-filesystem (全局)
[2] mcp-server-github (全局)
[3] mcp-server-sql (/Users/lrk/workspace/my-project)
[4] mcp-server-postgres (/Users/lrk/workspace/another-project)
选择: 3
─────────────────────────────────────────
mcp-server-sql (项目级)
─────────────────────────────────────────
项目: /Users/lrk/workspace/my-project
类型: command
命令: node
参数: ["~/mcp-sql/index.js"]
环境变量:
DATABASE_URL: postg***** ← 敏感信息已模糊化
API_KEY: sk-te***** ← 敏感信息已模糊化
其他配置:
timeout: 30000
autoApprove: false
enabled: true显示完整敏感信息:
lcch mcp info --show💡 注意:默认模糊化包含 key、token、secret、password、auth 或以 _pass 结尾的环境变量。
查看 Hooks
lcch hooks list输出示例:
🪝 Hooks 列表
📍 全局 (1)
├─ Hook: afterModelWrite
│ 脚本: /Users/lrk/.claude/hooks/afterModelWrite.js
│ 事件: post-write
└─ 配置: { autoFormat: true }
📍 项目级 (2)
/Users/lrk/workspace/my-project
└─ Hook: customPrompt
脚本: .claude/hooks/custom-prompt.js
事件: pre-prompt
/Users/lrk/workspace/another-project
└─ Hook: gitCommit
脚本: .claude/hooks/git-commit.js
事件: pre-commit命令大全索引表
| 模块 | 命令 | 常用参数 | 适用场景 | 说明 |
|------|------|----------|----------|------|
| projects | lcch projects list | --tree, --verbose, --sessions, --resume, --filter <type> | 浏览所有项目 | 支持多种展示模式,--filter 过滤 valid/invalid/orphaned |
| projects | lcch projects clean | --all, --force | 清理无效项目 | --all 清理全部,--force 强制无确认 |
| projects | lcch projects export | --format <json|markdown|html|text>, --output-dir <dir> | 导出会话 | 交互式选择项目/会话/角色/内容类型 |
| project | lcch project <path> | --sessions, --resume, --delete-sessions | 查看单个项目 | path 支持相对路径和 ~ 符号 |
| backup_config | lcch backup_config create | --target config\|settings | 创建备份 | 默认同时备份两种配置 |
| backup_config | lcch backup_config list | --target config\|settings | 查看备份 | 按类型分组显示 |
| backup_config | lcch backup_config restore | [filename] | 恢复备份 | 支持交互式或直接指定文件名 |
| backup_config | lcch backup_config delete | [filename] | 删除备份 | 支持交互式或直接指定文件名 |
| mcp | lcch mcp list | — | 查看 MCP 服务器 | 按全局/项目级分类显示 |
| mcp | lcch mcp info | --show | 查看 MCP 详情 | --show 显示完整敏感信息 |
| hooks | lcch hooks list | — | 查看 Hooks | 按全局/项目级分类显示 |
| config | lcch config stats | — | 查看使用统计 | 显示项目/会话/费用/Token/工具等统计 |
| config | lcch config path | — | 查看配置路径 | 显示 .claude.json 等路径 |
| cache | lcch cache | --json | 查看缓存信息 | 含 API Prompt 缓存统计 |
| scan-secrets | lcch scan-secrets | --show, --json | 扫描敏感信息 | 扫描缓存中的密钥/令牌 |
| scan-secrets | lcch scan-secrets --mask | --restore <path> | 掩码替换 | 交互式选择项目,自动创建文件级备份 |
| scan-secrets | lcch scan-secrets --backup | — | 查看掩码备份 | 列出所有项目的备份信息 |
常用组合示例
# 查看所有项目树形结构
lcch projects list --tree
# 查看所有项目的会话并删除
lcch projects list --sessions --delete-sessions
# 强制清理所有无效项目
lcch projects clean --force
# 导出为文本格式到指定目录
lcch projects export --format text --output-dir ~/exports
# 扫描并掩码替换敏感信息
lcch scan-secrets --mask
# 恢复项目的掩码备份
lcch scan-secrets --mask --restore ~/.claude/projects/-Users-lrk-workspace-my-project
# 查看 MCP 详情(显示敏感信息)
lcch mcp info --show
# JSON 格式输出
lcch cache --json
lcch scan-secrets --json