AI Coding Assistant Data Extraction

1个月前发布 60 00

AI Coding Assistant Data Extraction可以把本地 AI 编码助手的聊天历史提取出来,统一转换成标准化 JSONL 文件。提取后的对话数据,可用于模型微调、个人对话分析,或是在本地数据库被清理前,备份多年的编程会话记录。

所在地:
美国
收录时间:
2026-09-18
AI Coding Assistant Data ExtractionAI Coding Assistant Data Extraction

AI Coding Assistant Data Extraction 是一个强大的 Python 工具包,帮助用户从各种流行的 AI 编码助手(如 Cursor, Claude Code, Windsurf, Aider 等)中提取本地的聊天历史记录。它将分散、格式各异的数据统一转换为标准的 JSONL 格式,非常适合用于模型微调、个人数据分析,或在应用清除缓存前进行重要对话的备份。

核心功能

  • 自动发现:无需手动指定路径,工具会自动在 macOS、Linux 和 Windows 的标准配置目录下搜索支持的 AI 工具数据。
  • 全量提取:不仅提取文本对话,还包括代码上下文(文件路径、选区)、代码差异(Diffs)、工具调用记录、时间戳、会话 ID 等丰富元数据。
  • 标准化输出:将所有来源的数据统一为单一的 JSONL 格式,每行代表一个完整的对话会话。
  • 安全读取:对 SQLite 数据库采用只读连接,确保不会干扰正在运行的应用程序;即使遇到损坏的文件也会跳过并继续,保证提取过程的鲁棒性。

支持的 AI 工具与数据来源

该工具目前支持提取以下 10 种主流 AI 编码助手的对话历史:

#工具名称数据存储格式典型存储位置
1Claude CodeJSONL (每会话一文件)~/.claude/projects/**/*.jsonl
2Codex CLIJSONL (“rollout” 文件)~/.codex/sessions/**/rollout-*.jsonl
3CursorSQLite (state.vscdb)~/.../Cursor/User/{global,workspace}Storage
4WindsurfSQLite (启发式解析)~/.../Windsurf/User/{global,workspace}Storage
5TraeSQLite + JSONL (启发式解析)~/.../Trae
6ContinueJSON (每会话一文件)~/.continue/sessions/*.json
7Gemini CLIJSON (每聊天一文件)~/.gemini/tmp/<hash>/chats/*.json
8OpenCodeJSON (树状结构)~/.local/share/opencode/storage/
9Cline / Roo CodeJSON (Anthropic 格式)<editor>/User/globalStorage/<ext-id>/tasks/
10AiderMarkdown (每项目一文件)<project>/.aider.chat.history.md

注:对于 Cursor、Windsurf 和 Trae 等非公开存储模式的工具,提取器使用了启发式算法来适配其不断变化的内部结构。

快速开始

该工具仅依赖 Python 标准库,无需安装额外的第三方包。

1. 交互式提取

python extract.py

运行后会显示一个菜单,让你选择要提取的工具来源。

2. 命令行直接驱动

# 提取所有已检测到的来源
python extract.py --all

# 提取特定工具(如 Cursor 和 Claude Code)
python extract.py --sources cursor,claude_code

# 合并所有提取结果到一个文件
python extract.py --all --merge

# 预览可提取的内容(不实际写入)
python extract.py --list

3. 针对 Aider 的特殊处理

由于 Aider 的数据分散在各个项目目录中,你可能需要指定搜索路径:

python extract.py --sources aider --search-path ~/my-projects --search-path ~/work-repos

为什么需要这个工具?

  1. 数据主权与备份:许多 AI 编码助手会定期清理本地数据库以节省空间。此工具让你在数据消失前将其永久保存。
  2. 微调数据集构建:如果你希望基于自己的编程习惯微调私有模型,这些真实的、包含代码上下文和思维链的对话是极高质量的训练数据。
  3. 跨平台分析:无论你现在用 Cursor 还是 Windsurf,统一后的 JSONL 格式让你可以轻松切换工具而不丢失历史知识沉淀。
  4. 隐私保护:所有操作均在本地完成,数据不会上传到任何云端服务器。

扩展性

如果你想支持新的 AI 工具,只需复制一个简单的模板模块(如 continue_ext.py),实现 find_installations 和 extract 两个函数,并在注册表中添加即可。项目提供了通用的 SQLite/JSON 读取器和启发式解析工具,大大降低了开发门槛。

相关导航