ai-data-extractor Skill 技能

Claude Code / Cursor / Windsurf / Aider 等 10 款 AI 编程工具的本地聊天记

技能简介

ai-data-extractor 是一款本地化、零依赖的 Python 命令行工具,可以一次性把 Claude Code、Codex CLI、Cursor、Windsurf、Trae、Continue、Gemini CLI、OpenCode、Cline/Roo Code、Aider 等十款主流 AI 编程助手的本地聊天记录全部抽取出来,统一转换成标准 JSONL 格式,方便做后续微调、个人数据分析、长期备份。它不依赖任何第三方 API Key,不上传数据,全部在用户本机完成,是个人 AI 编程历史的「终极归档器」。仅依赖 Python 3.9+ 标准库,跨 macOS、Linux、Windows 自动识别数据目录。

核心能力

  1. 十源同时抽取:覆盖 Claude Code、Codex CLI、Cursor、Windsurf、Trae、Continue、Gemini CLI、OpenCode、Cline/Roo Code、Aider 等十款主流 AI 编程工具,无论用户混用哪几个工具都能集中归档。
  2. 零外部依赖:仅使用 Python 标准库,无需 pip install 任何包,无任何隐私风险;启动即用,避免引入额外供应链攻击面。
  3. 统一 JSONL 输出:将各家工具五花八门的存储格式(JSONL / SQLite / Markdown / JSON 树等)归一化成相同 schema,便于后续用 HuggingFace datasets 等工具加载做训练。
  4. 只读不写数据库:通过 SQLite read-only 连接读取数据,正在运行的编辑器或 CLI 不会因为本工具而被阻塞,安全无副作用。
  5. 跨平台目录自动发现:自动扫描 macOS(~/Library/Application Support)、Linux(~/.config、~/.local/share)、Windows(%APPDATA%、%LOCALAPPDATA%)三系统的约定路径,无需手动指定。
  6. 部分失败可继续:单个文件损坏或被锁时不会导致整个 run 中断,会跳过坏文件继续抽取其他源,最大限度保留可用数据。
  7. 可选合并输出:使用 --merge 参数后把所有源的对话合并成一个 all_conversations.jsonl 文件,方便一次性喂给训练 pipeline。
  8. 良好的可扩展接口:每个 extractor 都遵循相同的 find_installations + extract 两函数接口,新增一款工具仅需约 50 行代码加进 REGISTRY。

安装配置

  1. 环境要求:Python 3.9 及以上(推荐 3.10+),无需任何第三方依赖;克隆仓库即可使用:git clone https://github.com/isoshimodo/ai-data-extractor && cd ai-data-extractor。
  2. 首次运行预览:执行 python extract.py --list 即可看到当前机器上检测到哪些源、每个源能找到多少条对话,方便先确认无需抽取就能跑。
  3. 交互式抽取:直接执行 python extract.py 进入编号菜单,按提示选择要抽取的源即可;一键全抽可加 --all 参数。

使用步骤

  1. 运行 python extract.py --list 预览本地各源的可抽取量。
  2. 选择要抽取的源(支持 --all 全抽或 --sources cursor,claude_code,aider 指定逗号分隔子集)。
  3. 工具自动识别操作系统并定位各源数据目录,扫描并读取原始存储(JSONL / SQLite / JSON)。
  4. 数据按统一 schema 归一化,按源写入 extracted_data/_conversations_.jsonl。
  5. 如需合并输出,加 --merge 即可额外生成 all_conversations.jsonl。
  6. 用 HuggingFace datasets 库加载 JSONL,配合 tokenizer.apply_chat_template 直接送进训练流程。
  7. 抽取后务必用 detect-secrets 扫描敏感信息,绝不能把 extracted_data/ 提交到公开仓库。

适用场景

  1. 个人 AI 编程历史归档:跨多款 AI 工具(Claude Code + Cursor + Windsurf)混用的用户希望把所有历史对话集中备份。
  2. 基于个人对话的微调数据准备:希望用自己过去几年的高质量 AI 编程对话对开源模型做 LoRA / 全参微调的工程师。
  3. 离职/换电脑前的数据迁移:避免因某个工具本地数据库被清理而丢失数年编程沉淀,一次性全量导出。
  4. 学术研究 / 数据集构建:研究 LLM 编程助手使用模式、构建编程行为数据集的研究者获取真实人类-AI 协作语料。
  5. 企业内部 AI 工具使用分析:安全合规团队希望审计员工在多款 AI 编程工具中的对话内容(注意需先获得员工授权)。

适用人群

  • 跨多款 AI 编程工具的资深开发者
  • 准备做个人 LoRA / SFT 训练的数据工程师
  • 计算机科学研究 LLM 编程助手的学者
  • 企业 IT/合规团队做 AI 编程使用审计

工作原理

工具通过 extractors/common.py 提供通用的 SQLite / JSON / JSONL 读取器和两种启发式扫描器,每款工具有独立 extractor 模块实现 find_installations(返回可扫描目录列表)和 extract(返回对话字典列表)两函数。运行时流程为:先通过 OS 检测构建可能的存储根目录 → 在每个根目录按工具的约定文件夹名搜索 → 按存储类型选用对应读取器 → 按统一 schema 归一化 → 写入带时间戳的 JSONL 文件。Cursor 提取器显式实现了已知三种 schema(workspace ItemTable、内联 composer、bubbleId composer),Windsurf 和 Trae 因 schema 未文档化改用通用启发式匹配 role+text 对,未来工具版本变化时调整 KEY_HINTS 即可。

官方链接

团队信息

由 AI 猎手自动发现

评论与建议

0 条评论