用途:提供对 Claude Code 会话日志的原始访问。日志存放于 ~/.claude/projects/{project-dir}/{session-id}.jsonl。核心原则是只提取数据,把原始数据返回给调用方技能分析,本技能内不做解读。
主要能力:脚本位于 scripts/ 子目录。locate-logs.sh 查找日志目录或指定会话文件路径,如 scripts/locate-logs.sh /path/to/project abc123-session-id。list-sessions.sh 枚举会话及元数据(ID、大小、行数、日期、分支),支持 --format json、--sort size、--sort lines。extract-data.sh 解析 JSONL 并提取指定类型:metadata、user-prompts、tool-usage、errors、thinking、text-responses、statistics、all,可用 --session、--project、--limit。filter-sessions.sh 按条件筛选:--since、--until、--branch、--min-size、--max-size、--min-lines、--max-lines、--has-errors、--keyword,输出 list、paths、json。
使用方式:单会话先取 metadata 与 statistics,再按需提取 errors、tool-usage。多会话先用 filter-sessions.sh 筛选,再对结果批量提取或循环处理。路径由绝对工作目录中的 / 替换为 - 计算得出,脚本内部统一调用 locate-logs.sh。
适用场景:回顾分析、查找特定功能或分支的会话、识别出错会话、生成会话指标。
限制:依赖 bash 4.0+ 与 jq,缺失 jq 时提示 brew install jq。脚本出错时以非零状态退出并输出到 stderr。应先用 statistics 检查会话大小,避免把完整日志载入上下文;小会话(<500 行)可提取细节,中会话(500-2000 行)选择性提取,大会话(>2000 行)仅统计。不要手动解析 JSONL 或硬编码日志路径。