Exporting My Own Chats Shouldn't Require an Embassy in Delaware

27 May 2026

The absurd racket of closed-source browser extensions slurping entire conversations to remote servers just to spit out a PDF.

Every few months I get the urge to clean up my digital footprint, pull my notes out of corporate walled gardens, and dump them into plain text files on my own hard drive. It is a modest desire. I am not asking for a decentralized peer-to-peer revolution or a blockchain handshake. I just want a conversation I had with an LLM sitting in my local Obsidian folder as clean Markdown, with the code blocks intact and the math formulas looking like actual LaTeX instead of raw mangled soup.

You would think this is a solved problem. The browser is already sitting right there with the entire rendered HTML tree loaded in memory. All you need to do is walk the document nodes, pull the text out of the message containers, and write it to disk.

Instead, I went looking through the Chrome Web Store and Firefox Add-ons and found myself staring into an absolute septic tank.

Almost every single "AI export" tool in existence is either a subscription scam or a data-harvesting front. You click "Export to PDF" on some shiny three-star extension, and behind the scenes it quietly POSTs your entire prompt history, system instructions, and API keys to an opaque EC2 instance sitting in North Virginia. Why? Because the developer couldn't be bothered to bundle a local PDF renderer or a client-side Markdown serializer. Or more likely, because your private technical debates, personal therapy sessions, and proprietary code snippets are valuable training fodder for whoever is renting the server.

The rest of the options were just as grim. If you used ChatGPT, you needed one specific extension that hadn't been updated since November. If you switched to Claude for a week because Anthropic had a better reasoning model, you needed a second extension written by a completely different anonymous developer with broad permissions to read every tab you open. If you used Gemini, Perplexity, or DeepSeek, you were entirely on your own.

I got tired of waiting for someone to build a normal tool. So I built AI Chat Exporter (ACE).

The premise is aggressively simple: zero remote servers, zero external analytics, zero tracking, and zero telemetry. All parsing, DOM extraction, LaTeX cleanup, syntax highlighting, and file generation happen entirely inside your local browser runtime.

When you export a chat to Markdown, it stays on your CPU. When you download a thread as an HTML file, a Word document, or a long-form PNG screenshot for a bug report, not a single byte leaves your machine. You can disconnect your Wi-Fi, pull your Ethernet cable out of the wall, and the extension will still parse the active thread and spit out the files without throwing an error.

The messy part was never the UI. The painful part was dealing with how aggressively modern AI platforms torture the DOM.

Every single provider renders code blocks, nested tables, and mathematical formulas differently. One platform puts LaTeX inside custom KaTeX spans with hidden MathML duplicates; if you scrape it naively with a basic HTML-to-Markdown library, every equation ends up repeated twice with broken backslashes everywhere. Another provider wraps code snippets in four nested flexbox containers with custom copy buttons and absolute-positioned line numbers that pollute your clipboard text.

I ended up writing custom extractors for ChatGPT, Claude, Gemini, DeepSeek, and a dozen other web interfaces, standardizing their output into clean GitHub Flavored Markdown with proper $$ block math and $ inline delimiters. I also added cross-model chat continuation, so if a conversation hits a wall on one platform, you can hand the whole structured context off to another model in a single tab click without copy-pasting ten separate prompts.

The code is out there under the MPL 2.0 license on GitHub.

I don't care about building a startup around this, and I have zero interest in turning it into a freemium funnel. It exists because sending your thoughts to an unknown backend just to save a Markdown file is an insult to basic engineering dignity. If you want your conversations out of the corporate cloud and onto your own filesystem, go take them.


Image Credit: Carl Spitzweg (1808-1885) - The Bookworm via Wikimedia Commons.

Series Roadmap: Browser Sovereignty