Your AI pair-programmer has been keeping a diary. Now you can read it.
A stdlib-only Python tool that pulls years of chat history out of Claude Code, Cursor, Aider, and seven other AI coding assistants into one normalized JSONL format.
What it does
It auto-discovers the local storage of ten AI coding assistants — Claude Code, Codex CLI, Cursor, Windsurf, Trae, Continue, Gemini CLI, OpenCode, Cline/Roo Code, and Aider — and dumps every conversation into a single normalized JSONL schema: messages, code context, tool calls, timestamps, session IDs. The pitch is fine-tuning datasets, personal analytics, or just backing up conversations before an app wipes its local database. It handles macOS, Linux, and Windows storage conventions without asking which OS you’re on.
The interesting bit
Every tool stores chats differently — JSONL per session, SQLite, JSON trees, or (Aider) a markdown transcript sitting in each project directory. The extractors are honest about the undocumented ones: Cursor’s three known schema shapes are handled explicitly, while Windsurf and Trae fall back to a heuristic that hunts for role-plus-text objects. The README is refreshingly upfront that the heuristic is best-effort and will break when schemas change again.
Key highlights
- Standard library only, Python 3.9+ — zero dependencies
- Read-only SQLite connections, so a running editor never blocks extraction
- One corrupt or locked file can’t kill the run; you get partial results, not a stack trace
- Two-function interface per extractor, with
continue_ext.pyas a template for adding new tools --listflag previews what’s installed without extracting anything
Caveats
- Only
messages,source, andsession_idare guaranteed fields — everything else varies by tool - Windsurf/Trae extraction is heuristic and expected to break on future schema changes
- Aider has no central store, so it guesses at common project directory names; nonstandard setups need explicit
--search-patharguments
Verdict
If you’ve got months of AI-assisted coding history scattered across tools and want it in one place for training or analytics, this is exactly the tool. If you only use one assistant with a documented export feature, it’s less essential — though the per-tool parsers are still nice reference code.
Frequently asked
- What is jatechan/ai-data-extractor?
- A stdlib-only Python tool that pulls years of chat history out of Claude Code, Cursor, Aider, and seven other AI coding assistants into one normalized JSONL format.
- Is ai-data-extractor open source?
- Yes — jatechan/ai-data-extractor is open source, released under the MIT license.
- What language is ai-data-extractor written in?
- jatechan/ai-data-extractor is primarily written in Python.
- How popular is ai-data-extractor?
- jatechan/ai-data-extractor has 526 stars on GitHub.
- Where can I find ai-data-extractor?
- jatechan/ai-data-extractor is on GitHub at https://github.com/jatechan/ai-data-extractor.