01
The problem
A useful AI conversation often contains more than an answer. It may include working code, mathematical notation, references and the steps that led to a decision. Copying the visible text can lose that structure.
The source is also inconsistent. Each provider represents messages, branches and attachments differently, and the visible page may contain only part of a longer conversation. A reliable export starts with understanding what is actually available.
02
What I built
I developed and maintain the extension, including provider-specific parsers and the workflows that turn conversation data into Markdown or PDF. The project supports ChatGPT, Claude, Gemini, DeepSeek and Grok.
- Single-conversation and bulk export, using provider APIs where available and a DOM fallback.
- Filename templates and folder organization to make a collection of exports easier to navigate.
- Preservation of code blocks, mathematical notation and conversation metadata.
- Local processing, with no extension account or external export server.
03
The engineering behind an export
The important boundary is between acquiring a conversation and rendering a file. Parsers first need to preserve who said what, in which order, and on which branch. Formatting then has a consistent input to work with.
This makes completeness a separate question from appearance. A PDF can look clean and still omit a message. My work includes conversation-integrity handling and fixtures for provider-specific edge cases, alongside the visible export experience.
- 01Conversation source
- 02Parse & preserve structure
- 03Markdown / PDF
04
What the project demonstrates
This is an end-to-end product: a practical use case, a browser interface, provider integrations, file generation and ongoing maintenance as upstream services change. The public repository includes source code, usage instructions, privacy information and tests.
It also reflects how I use AI myself. Conversations become more valuable when I can return to them in a durable personal library.