AI Coding Assistant Data Extractor — 10+ 主流 AI 编程助手对话记录统一提取工具 Skill 技能

# AI Coding Assistant Data Extractor — 10+ 主流 AI 编程助手的对话记录提取

AI Coding Assistant Data Extractor — 10+ 主流 AI 编程助手的对话记录提取工具

技能简介

AI Coding Assistant Data Extractor 是一款用 Python 标准库写成的开源提取脚本,能够把本地几大 AI 编程助手(Claude Code、Codex CLI、Cursor、Windsurf、Trae、Continue、Gemini CLI、OpenCode、Cline / Roo Code、Aider 等)的历史对话转换为统一的 JSONL 格式,便于个人备份、微调数据集准备、长跨度对话分析。所有解析均本地完成,工具不联网读取数据库,仅对 SQLite 加只读连接保证运行中的 IDE 不被锁定。

核心能力

  1. 跨平台自动发现:自动探测 macOS、Linux、Windows 三种系统下所有常见的 ~/Library/Application Support、~/.config、~/.local/share、%APPDATA%、%LOCALAPPDATA% 路径,无需手动指定。
  2. 10+ 主流工具覆盖:Claude Code(JSONL)、Codex CLI(rollout JSONL)、Cursor(SQLite state.vscdb,三套 schema 自动识别)、Windsurf(启发式 KV 扫描)、Trae(SQLite + JSONL)、Continue(JSON)、Gemini CLI(JSON)、OpenCode(session/message/part tree)、Cline / Roo Code(Anthropic 格式 task JSON)、Aider(Markdown transcript)。
  3. 统一 JSONL 输出:messages[] 数组携带 role、content、code_context(文件路径 + 选区 + 代码片段)、tool_use、timestamp、session_id、source、project_path 等字段,所有字段命名稳定便于二次处理。
  4. 交互式 / 全自动两种模式:默认弹出菜单选择来源,也支持 --all 一键批量或 --sources cursor,claude_code,aider 显式指定。
  5. 可拓展架构:每个提取器独立模块(extractors/cursor.py 等),新增工具只需 follow 通用 schema,新工具阅读 extractors/common.py 即可上手。
  6. 错误隔离:任一损坏或被锁文件不会中断全流程,单文件失败时给出局部结果并继续。
  7. 批量合并:配 --merge 自动把所有来源合并为单一 all_conversations.jsonl,方便统一处理。

安装配置

  1. 前置条件:仅需 Python 3.9+,3.10+ 推荐;项目本身只用标准库、零第三方依赖。
  2. 克隆仓库:git clone https://github.com/nachisama/ai-data-extractor && cd ai-data-extractor。
  3. 运行预览(只探测不写文件):python extract.py --list,即可看到每个已安装的工具能解析出多少对话。
  4. 交互提取:python extract.py,按菜单勾选来源后输出至 ./extracted_data/_conversations_.jsonl。

使用步骤

  1. 关闭 IDE 保险起见:为避免 SQLite 文件被独占锁,建议先把 Cursor / Windsurf / Trae 等 IDE 关闭以确保全量读取。
  2. 执行全量备份:python extract.py --all,10 种来源全部提取(含 Claude Code、Cursor、Windsurf 等)。
  3. 指定子集提取:例如只想导出 Claude Code 与 Aider,运行 python extract.py --sources claude_code,aider。
  4. 合并为单一文件:追加 --merge 生成 all_conversations.jsonl,便于直接喂给下游分析或 fine-tune 脚本。
  5. 为 Aider 指定项目目录:Aider 没有中央存储库,使用 --search-path ~/client-work 等参数指向项目根目录。
  6. 错误排查:若某个来源输出为空,运行 python -m extractors. 单文件调试,结合项目 README 末尾 Notes 调整。

适用场景

  1. 个人备份:避免某天 IDE 升级清空本地数据库,让多年的 Coding 对话丢失。
  2. 自定义微调数据准备:把 Claude Code / Cursor / Aider 的高质量"问题-解答-代码"片段整理成 JSONL 喂给开源模型。
  3. 个人 Coding 复盘:扫描全平台几个月内的 prompt 分布,发现重复问题、最高频错误等模式。
  4. 跨 IDE 迁移:从 Cursor 切换到 Claude Code 或 Aider 时一键导出全部历史。
  5. 研究人员收集 AI 编程助手使用习惯的可分析样本。
  6. 教学示范:教师批量导出学生在 AI 工具中的练习过程,便于学情分析。

适用人群

跨多个 AI IDE 工作并希望统一管理历史对话的资深开发者;准备个人 Coding 对话语料做 LLM 微调或对话分析的研究者与 AI 应用作者;担心本地数据库丢失而建立个人备份的稳妥派用户;为团队批量归档 Coding 协作日志的 Tech Lead。

工作原理

脚本先按操作系统枚举所有潜在数据根目录,再针对每个来源调用对应的 parser:JSONL 工具逐行读取、SQLite 工具走 mode=ro 只读连接(避免阻塞运行中的 IDE)、JSON 工具递归遍历会话树。Cursor、Windsurf、Trae 的 schema 未官方公开,CW 模块读 Cursor 三套历史 schema,Windsurf/Trae 通过启发式扫描(extractors/common.py::heuristic_extract_chat_from_kv)尽力提取 role+text 形态消息。最后每个会话被规范化为统一 messages[] schema 落到 JSONL,损坏文件自动隔离,整体不会中断。

官方链接

团队信息

由 AI 猎手自动发现

评论与建议

0 条评论