你的 AI 编码对话其实全是本地明文:一个小工具 3 天 499 星,把 10 种助手记录导成一份 JSONL
你和 Claude Code、Cursor、Codex CLI 说的每一句话,其实都以明文文件躺在你自己机器上。kruzovic7/ai-data-extractor 这个 9 月 11 日才建仓的 Python 工具,3 天拿到 499 星、132 个 fork,干的事就是把这些文件统一读出来、一次性导成 JSONL——它没有破解任何加密,因为根本不需要。
它覆盖 10 种工具:Claude Code 在 ~/.claude/projects//*.jsonl,Codex CLI 是 rollout 文件,Cursor 存在 SQLite 的 state.vscdb,还有 Windsurf、Trae、Continue、Gemini CLI、OpenCode,以及后来补上的 Cline/Roo Code 和 Aider——Aider 没有中心库,每个项目目录里一份 .aider.chat.history.md。一条 python extract.py --all --merge 就能把全部会话合并成 all_conversations.jsonl,只用标准库,数据库按只读方式打开,不会锁住正在运行的编辑器。
真正值得留意的是它导出了什么:除了对话正文,还有你选中的代码片段、文件路径、diff、工具调用参数、模型名和时间戳。这些字段一旦合并成一个数据集,就是一份完整的“你的项目 + 你的提示词”档案。作者在 README 里自己给了三步:先用 detect-secrets 扫一遍、人工检查 code_context 和 tool_use 字段、别把 extracted_data 提交到公开仓库(它已经被 gitignore)。
项目才 3 天、单人维护,0 个 issue 不等于稳定;Cursor、Windsurf、Trae 都没有公开存储格式,提取靠启发式匹配,官方一改结构就可能失效;MIT 许可允许你拿它训练,但会话里混着客户代码和密钥,责任在导出的人。
我的判断:想拿自己的编码历史做微调、备份或统计的,这个工具确实省事;但落地前先把它导出的 JSONL 当敏感数据分级,跟代码仓同一个级别管——那里面有你当初没打算外传的东西。
