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 不被锁定。
核心能力
- 跨平台自动发现:自动探测 macOS、Linux、Windows 三种系统下所有常见的
~/Library/Application Support、~/.config、~/.local/share、%APPDATA%、%LOCALAPPDATA%路径,无需手动指定。 - 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)。 - 统一 JSONL 输出:
messages[]数组携带role、content、code_context(文件路径 + 选区 + 代码片段)、tool_use、timestamp、session_id、source、project_path等字段,所有字段命名稳定便于二次处理。 - 交互式 / 全自动两种模式:默认弹出菜单选择来源,也支持
--all一键批量或--sources cursor,claude_code,aider显式指定。 - 可拓展架构:每个提取器独立模块(
extractors/cursor.py等),新增工具只需 follow 通用 schema,新工具阅读extractors/common.py即可上手。 - 错误隔离:任一损坏或被锁文件不会中断全流程,单文件失败时给出局部结果并继续。
- 批量合并:配
--merge自动把所有来源合并为单一all_conversations.jsonl,方便统一处理。
安装配置
- 前置条件:仅需 Python 3.9+,3.10+ 推荐;项目本身只用标准库、零第三方依赖。
- 克隆仓库:
git clone https://github.com/nachisama/ai-data-extractor && cd ai-data-extractor。 - 运行预览(只探测不写文件):
python extract.py --list,即可看到每个已安装的工具能解析出多少对话。 - 交互提取:
python extract.py,按菜单勾选来源后输出至./extracted_data/_conversations_.jsonl。
使用步骤
- 关闭 IDE 保险起见:为避免 SQLite 文件被独占锁,建议先把 Cursor / Windsurf / Trae 等 IDE 关闭以确保全量读取。
- 执行全量备份:
python extract.py --all,10 种来源全部提取(含 Claude Code、Cursor、Windsurf 等)。 - 指定子集提取:例如只想导出 Claude Code 与 Aider,运行
python extract.py --sources claude_code,aider。 - 合并为单一文件:追加
--merge生成all_conversations.jsonl,便于直接喂给下游分析或 fine-tune 脚本。 - 为 Aider 指定项目目录:Aider 没有中央存储库,使用
--search-path ~/client-work等参数指向项目根目录。 - 错误排查:若某个来源输出为空,运行
python -m extractors.单文件调试,结合项目 README 末尾 Notes 调整。
适用场景
- 个人备份:避免某天 IDE 升级清空本地数据库,让多年的 Coding 对话丢失。
- 自定义微调数据准备:把 Claude Code / Cursor / Aider 的高质量"问题-解答-代码"片段整理成 JSONL 喂给开源模型。
- 个人 Coding 复盘:扫描全平台几个月内的 prompt 分布,发现重复问题、最高频错误等模式。
- 跨 IDE 迁移:从 Cursor 切换到 Claude Code 或 Aider 时一键导出全部历史。
- 研究人员收集 AI 编程助手使用习惯的可分析样本。
- 教学示范:教师批量导出学生在 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,损坏文件自动隔离,整体不会中断。
官方链接
- 仓库:https://github.com/nachisama/ai-data-extractor
- 许可证:MIT
- 维护者:nachisama 及社区贡献者
团队信息
AI产品库
官方
由 AI 猎手自动发现
评论与建议
登录 后参与评论或提建议