对话记录提取器Skill extract-transcripts

对话记录提取工具 - 从Claude Code和Codex CLI的JSONL会话文件中提取可读的Markdown格式对话记录,支持批量处理、索引搜索和跨会话查询。关键词:AI对话提取、会话记录导出、JSONL转Markdown、Claude Code工具、Codex CLI解析、DuckDB索引、开发工具

DevOps 0 次安装 0 次浏览 更新于 2/28/2026

名称: 提取对话记录 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会话的工具使用摘要