Credentials. Exported chats can contain API keys or secrets in code_context or tool_use fields, so scan the output before you share or store it elsewhere.
Who it is forA developer who has years of conversations in AI coding tools and fears an app update or cleanup will clear the local database.
The problemChat history is stored in each tool's own local format, so it is hard to keep a single copy of it.
The outcomeOne folder of timestamped JSONL files per source, plus an optional combined all_conversations.jsonl file.
What you need first
- Python 3.9 or newer installed on the machine that holds the chat history
- The AI coding tools installed under your own user account, with local chat history present
- Permission to read and store your own local data, and a secure place to keep the output
- For the fine-tuning case: the Hugging Face datasets library and a tokenizer for your target model
Steps
- Run
python extract.py --listto see which supported tools were found on this machine. - Run
python extract.py --all --mergeto extract every found source and write all_conversations.jsonl. - Check the new files in
extracted_data/, one per source, with timestamps in the file names. - Copy the extracted_data folder to encrypted storage, since it may hold client or proprietary work.
Prompt for your agent
Using the repo jatechan/ai-data-extractor, run `python extract.py --all --merge` in the <project folder> directory. Report the number of conversation lines written to each file in extracted_data/ and confirm that all_conversations.jsonl exists. Verify that each JSONL line parses as valid JSON with a messages array.
Caveat. The extractor reads each tool's storage as it exists today, and Windsurf and Trae use a heuristic that may return zero conversations after a storage change.
Get 5 new use cases every morning. Free, one short email, unsubscribe anytime.
Get them freeShare: X LinkedIn Hacker News Email Copy link
Disclaimer
Deduped lists open-source repositories that belong to other people. We do not own, maintain, audit, or vouch for any of them, and a repo appearing here is not an endorsement or a safety check. The use cases, steps, and prompts are written by AI and may be incomplete, outdated, or just wrong. Where a use case is marked "Seen in the wild", we link to public posts where someone described something similar, but we have not verified those posts and the use case itself is still our AI's own write-up. Use all of this at your own risk. Only run code, commands, or agents on systems and accounts you are authorized to use, and read the code and every command before you run it, especially anything that touches credentials, files, or the network. Nothing here is professional, security, legal, or financial advice. All trademarks and project names belong to their respective owners, and their use here does not imply affiliation. Content is provided as is, without warranties of any kind. Found a mistake, a safety problem, or something you want removed? Email [email protected] and we will look at it promptly. Full disclaimer page