用途:访问、捕获或引用 Claude Code 会话历史,并对会话文件进行分析、提炼要点。
数据位置:会话文件存放在 ~/.claude/projects/<encoded-cwd>/*.jsonl,路径编码会把 /Users/foo/project 转成 -Users-foo-project。详细的文件格式说明在 ${baseDir}/references/session-file-format.md。
主要能力与用法:
- 确定范围:需先询问用户选择“当前项目”还是“所有会话”。当前项目只读 ~/.claude/projects/<encoded-cwd>/.jsonl;所有会话读取 ~/.claude/projects/**/.jsonl。
- 查找文件:使用 find ~/.claude/projects/<encoded-cwd> -name ".jsonl" -type f 或 find ~/.claude/projects -name ".jsonl" -type f,并按文件修改时间做日期筛选。macOS 使用 stat -f "%Sm" -t "%Y-%m-%d" <file>,Linux 使用 stat -c "%y" <file>。
- 处理会话:1 到 3 个文件可直接读取解析;文件较大(≥5000 tokens)时用 ${baseDir}/scripts/extract-session.sh <session.jsonl>。4 个以上文件走批量提取流程,包括建缓存目录、保存会话列表、用 jq 批量提取消息、清理过滤、再综合分析。若 clean_messages.txt 过大无法读取,可用 split -l 2000 clean_messages.txt /tmp/cc-cache/<name>/batch_ 分片并行分析,最后合并结果。
- 输出报告:给出处理的会话数、消息总数和过滤后数量,以及提取出的分析结果。
限制与错误处理:未找到会话文件时提示 No session files found for this project.;缺少 jq 时提示需执行 brew install jq;单个文件处理失败会跳过;没有符合条件的会话会明确提示。安全性上,输出中不应暴露完整路径,应使用 ~ 前缀。其他功能、收费与平台信息暂未提供。