AI Data Extractor logo

AI Data Extractor

Visit

AI Data Extractor is an MIT Python toolkit that pulls local chat history from Claude Code, Cursor, Codex, and other coding agents into JSONL.

Share:
View alternatives

AI Data Extractor is a local toolkit that reads your own coding-agent chat stores and writes a normalized JSONL dump. The repo kruzovic7/ai-data-extractor is Python, created 2026-09-11, MIT. On 2026-09-19 GitHub listed 840 stars and 135 forks. 840 stars is a heat signal, not traffic. It is not a hosted product and it does not call a model.

It sits next to ccusage, which scores token cost from local logs. This repo exports the conversations themselves. Hosts it knows how to read include Claude Code, Cursor, Codex CLI, OpenCode, Continue, and Aider.

Key Features

  • Ten sources: Claude Code JSONL, Codex CLI rollouts, Cursor SQLite, Windsurf, Trae, Continue, Gemini CLI, OpenCode, Cline/Roo Code task folders, Aider markdown transcripts.
  • No extra packages: Python 3.9+ standard library. python extract.py --list previews installs. --all, --sources, --merge, and --search-path drive a run.
  • Normalized JSONL: one conversation per line under extracted_data/. Reliable fields are messages, source, and session_id. Code context, diffs, tool calls, and project paths appear when the host stored them.
  • Read-only: SQLite opens mode=ro. One corrupt file does not abort the rest.
  • OS search: macOS, Linux, and Windows app-data roots without you naming the OS.

Limitation: Cursor, Windsurf, and Trae do not publish a storage schema. The README treats those extractors as heuristics. Windsurf/Trae can find an app dir and still return 0 conversations when keys change. Close a locked editor if a read still fails. Aider has no central store; you must pass --search-path to project roots.

Use Cases

  • Backup before an editor wipes state.vscdb or session JSONL.
  • Personal analytics or fine-tuning on your own transcripts.
  • Skip if you only needed cost charts. Use ccusage. Do not run this against someone else's machine.

Pricing

Piece Price Notes from first-party pages 2026-09-19
Toolkit $0 MIT. Python 3.9+. About 840 stars.
Training extras Optional README suggests detect-secrets before sharing dumps. Hugging Face datasets is an example, not a dependency.

Getting Started

  1. Clone github.com/kruzovic7/ai-data-extractor.
  2. python extract.py --list then python extract.py --all --merge.
  3. Scan extracted_data/*.jsonl for secrets before you copy it anywhere.
  4. Keep the dump off public git. The repo already gitignores extracted_data/.

First-party start: the README.

Frequently Asked Questions

Does it upload chats?

No. It reads local files and writes local JSONL.

Why did Windsurf return zero rows?

The heuristic key match missed the current SQLite keys. --list confirms the folder. Inspect ItemTable keys and extend KEY_HINTS as the README describes.

Can I add another host?

Yes. Copy continue_ext.py, implement find_installations and extract, register it in extract.py.

Alternatives

  • ccusage: local token and cost reports, not full transcripts.
  • Claude Code: the usual JSONL source under ~/.claude/projects.
  • Cursor: Composer history in state.vscdb.

Tips

  1. Run --list before --all so you know which hosts it found.
  2. Point Aider at real project trees with --search-path.
  3. Treat code_context and tool_use as secret-prone fields.

Conclusion

AI Data Extractor is a small, MIT, stdlib CLI for people who want their own agent transcripts in one JSONL pile. Clone it, list sources, extract, then scan for secrets. It does not replace cost dashboards, and heuristic hosts can go silent when a vendor changes keys.

Comments

No comments yet. Be the first to comment!