← all repositories
kruzovic7/ai-data-extractor

Reclaiming Local AI Chat History from a Dozen Proprietary Formats

A single normalizer for the dozen undocumented ways AI coding assistants stash your chat history on disk.

811 stars Python Data ToolingCoding Assistants
Feature · 15 Sep 2026
Your AI Coding History Is Trapped in Proprietary Silos

A Python toolkit reverse-engineers the undocumented local storage of Cursor, Claude Code, and a growing list of AI assistants to reclaim conversations for fine-tuning and backup.

Read the in-depth article
ai-data-extractor
Collecting fresh signals — velocity needs a few days of history.
collecting data…
star history

What it does

ai-data-extractor is a Python toolkit that hunts through your local filesystem for chat histories left behind by AI coding assistants—Claude Code, Cursor, Windsurf, Aider, and others—and normalizes them into a single JSONL format. It handles the messy reality that each tool uses its own storage scheme, from SQLite databases to per-project Markdown transcripts, so you can back up conversations or repurpose them for training without manually reverse-engineering schemas.

The interesting bit

The project treats undocumented storage as a first-class problem rather than a blocker: for tools like Cursor and Windsurf that change their SQLite schemas without warning, it falls back to a generic heuristic that scans key-value stores for objects shaped like role-plus-text pairs. It also proves the abstraction generalizes beyond typical app-data folders by handling Aider’s decentralized model, where every project directory carries its own .aider.chat.history.md file.

Key highlights

  • Supports ten sources including Claude Code, Cursor, Windsurf, Cline/Roo Code, Aider, and Codex CLI, auto-detecting macOS, Linux, and Windows path conventions.
  • Uses read-only connections and defensive wrappers so a running editor or corrupt file never kills the entire extraction run.
  • Outputs a normalized JSONL schema with messages, session_id, code_context, and tool_use fields, though availability varies by source.
  • Ships with zero third-party dependencies—only the Python standard library.
  • Explicitly warns users to scan for secrets and proprietary code before sharing or training on extracted data.

Caveats

  • Cursor, Windsurf, and Trae rely on undocumented schemas that change frequently; the heuristic extraction is best-effort and may break on future updates.
  • Aider stores transcripts inside individual project directories, and the default scan only covers a handful of common folder names—miss your actual layout and it comes up empty.

Verdict

Worth a look if you’re sitting on years of local AI coding conversations that you want to archive, analyze, or feed into a fine-tuning pipeline. Skip it if you only use cloud-based chat UIs that never touch your local disk.

Frequently asked

What is kruzovic7/ai-data-extractor?
A single normalizer for the dozen undocumented ways AI coding assistants stash your chat history on disk.
Is ai-data-extractor open source?
Yes — kruzovic7/ai-data-extractor is open source, released under the MIT license.
What language is ai-data-extractor written in?
kruzovic7/ai-data-extractor is primarily written in Python.
How popular is ai-data-extractor?
kruzovic7/ai-data-extractor has 811 stars on GitHub.
Where can I find ai-data-extractor?
kruzovic7/ai-data-extractor is on GitHub at https://github.com/kruzovic7/ai-data-extractor.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.