名称: 提取对话记录 description: 从Claude Code和Codex CLI会话JSONL文件中提取可读的对话记录
提取对话记录
从Claude Code和Codex CLI会话JSONL文件中提取可读的Markdown格式对话记录。
脚本
Claude Code会话
# 提取单个会话
python3 ~/.claude/skills/extract-transcripts/extract_transcript.py <session.jsonl>
# 包含工具调用和思考块
python3 ~/.claude/skills/extract-transcripts/extract_transcript.py <session.jsonl> --include-tools --include-thinking
# 从目录提取所有会话
python3 ~/.claude/skills/extract-transcripts/extract_transcript.py <directory> --all
# 输出到文件
python3 ~/.claude/skills/extract-transcripts/extract_transcript.py <session.jsonl> -o output.md
# 仅输出摘要(快速概览)
python3 ~/.claude/skills/extract-transcripts/extract_transcript.py <session.jsonl> --summary
# 跳过空/仅热身的会话
python3 ~/.claude/skills/extract-transcripts/extract_transcript.py <directory> --all --skip-empty
选项:
--include-tools: 包含工具调用和结果--include-thinking: 包含Claude的思考块--all: 处理目录中的所有.jsonl文件-o, --output: 输出文件路径(默认:标准输出)--summary: 仅输出简要摘要--skip-empty: 跳过空会话和仅热身的会话--min-messages N: --skip-empty的最小消息数(默认:2)
Codex CLI会话
# 提取Codex会话
python3 ~/.claude/skills/extract-transcripts/extract_codex_transcript.py <session.jsonl>
# 从Codex历史文件提取
python3 ~/.claude/skills/extract-transcripts/extract_codex_transcript.py ~/.codex/history.jsonl --history
会话文件位置
Claude Code
- 会话文件:
~/.claude/projects/<项目路径>/<会话ID>.jsonl
Codex CLI
- 会话文件:
~/.codex/sessions/<会话ID>/rollout.jsonl - 历史文件:
~/.codex/history.jsonl
基于DuckDB的对话记录索引
用于跨多个会话查询,使用基于DuckDB的索引器:
# 索引所有会话(增量 - 仅新/更改的文件)
python3 ~/.claude/skills/extract-transcripts/transcript_index.py index
# 强制完全重新索引
python3 ~/.claude/skills/extract-transcripts/transcript_index.py index --full
# 限制处理的文件数量
python3 ~/.claude/skills/extract-transcripts/transcript_index.py index --limit 10
# 列出最近会话
python3 ~/.claude/skills/extract-transcripts/transcript_index.py recent
python3 ~/.claude/skills/extract-transcripts/transcript_index.py recent --limit 20
python3 ~/.claude/skills/extract-transcripts/transcript_index.py recent --project myapp
python3 ~/.claude/skills/extract-transcripts/transcript_index.py recent --since 7d
# 跨会话搜索
python3 ~/.claude/skills/extract-transcripts/transcript_index.py search "错误处理"
python3 ~/.claude/skills/extract-transcripts/transcript_index.py search "查询" --cwd ~/myproject
# 显示会话记录
python3 ~/.claude/skills/extract-transcripts/transcript_index.py show <文件路径>
python3 ~/.claude/skills/extract-transcripts/transcript_index.py show <文件路径> --summary
要求: DuckDB (pip install duckdb)
数据库位置: ~/.claude/transcript-index/sessions.duckdb
输出格式
对话记录格式化为Markdown,包含:
- 会话元数据(日期、持续时间、模型、工作目录、git分支)
- 用户消息前缀为
## 用户 - 助手回复前缀为
## 助手 - 工具调用在代码块中(如果使用–include-tools)
- 思考在引用块中(如果使用–include-thinking)
- Codex会话的工具使用摘要