v0.6 · MIT · Chromium

Your LLM chats, as clean Markdown.

Chat to Markdown is a browser extension that turns conversations from the major AI chat UIs into portable Markdown — or API-format YAML — with a floating panel: preview, copy, download. Everything runs on the page you already have open.

Local-only. No accounts, no analytics, no servers. The file never leaves your machine until you copy or save it.

Works where you chat

Site adapters are small and isolated. The converter never sees vendor DOM — only a title and a list of turns.

ChatGPT Claude · including share pages Gemini Le Chat · Mistral use.ai · Grok-powered Open WebUI · any self-hosted instance grok.com · chat.groq.com · experimental

What you get

One click on the floating MD ▾ button. Preview before you copy. Flip newest-first if that is how you read.

Markdown mode

Front-matter header, ## User / ## Assistant turns separated by * * *, faithful code blocks, tables, lists, and math.

YAML mode

The full thread as an API-format payload: a messages: list with role:/content: entries — ready for evals and replay.

Tool calls, summarized

Search, browse, and code chips collapse to tool-call made to … / tool-call-response: … instead of dumping their payload.

Message order

The ⇅ toggle flips chronological (oldest first) and newest-first so the export matches how you actually scroll the thread.

Open WebUI, anywhere

Self-hosted instances are detected by DOM, not hostname. The script injects everywhere and stays inert on pages it does not recognize.

Local-only

No accounts, no analytics, no remote code. The extension reads the conversation you are viewing and hands you the file. Privacy policy.

Install in 30 seconds (developer mode)

Not on the Chrome Web Store yet. Load the release zip unpacked — same path on Chrome or Edge.

  1. Grab the latest release zip and unzip it.
  2. Open chrome://extensions (or edge://extensions) and enable Developer mode.
  3. Click Load unpacked and select the unzipped folder.
  4. Open any supported chat and hit the floating MD ▾ button. Reload the extension card after updates, then refresh the chat tab.

FAQ

Does any chat content leave my browser?

No. Parsing, preview, copy, and download all happen in the page. There is no backend, no account, and no telemetry. See the privacy policy.

Why does it request access to all http(s) pages?

So it can recognize self-hosted Open WebUI (and future adapters) by DOM structure rather than a hostname allow-list. On unrecognized pages it does nothing: no UI, no reads, no writes.

Will this be on the Chrome Web Store?

That is the next distribution step. Until then the GitHub release zip is the supported install. The hosted privacy policy at this domain is the store listing URL.

Can I add another chat site?

Yes. Adapters are one file each. See the development notes — PRs that add an adapter are welcome.