How to export ChatGPT conversations to Markdown
Clean CommonMark with code fences, LaTeX delimiters and proper headings — ready for Obsidian, GitHub, Logseq, MkDocs and every static site generator. Here's the simplest way, in under a minute.
ChatGPT responses are already rendered from Markdown under the hood — headings, code fences, nested lists, inline formatting. But extracting clean Markdown out of the web UI is harder than it sounds.
Copy-paste into a Markdown editor flattens the structure. The rendered page shows you bold, italic, headings and code blocks, but the clipboard gets plain text with no Markdown syntax. Right-click "View source" gets DOM noise. Chrome's Print doesn't help. You end up manually wrapping code in backticks and adding # before headings.
The better path: a browser extension that reads the conversation data directly, preserving the original Markdown structure. ChatExport AI does exactly that. Here's the workflow.
Why not just copy-paste?
ChatGPT renders its output as HTML with semantic elements (<h2>, <pre>, <ul>). When you copy to clipboard, browsers strip the structure — you get the visible text, not the Markdown source. A proper export tool reads the internal data (the same data Markdown was generated from) and rebuilds clean CommonMark from that.
Export ChatGPT to Markdown in 5 steps
Install ChatExport AI
Go to the Chrome Web Store listing and click Add to Chrome. Free. No account.
Open your ChatGPT conversation
Navigate to chatgpt.com and open any conversation. Every ChatGPT tier works — Free, Plus, Teams, Enterprise.
Open the export sidebar
Click the ChatExport AI icon in your Chrome toolbar. The sidebar slides in from the right.
Pick Markdown and tweak options
In the sidebar, pick Markdown (.md). Optionally enable YAML front matter to prepend metadata (title, model, timestamp). Use the per-message checkboxes to trim the export to only the messages worth keeping.
Click Export
Your .md file downloads in under a second, with code fences, math delimiters and headings intact. Drop it into Obsidian, commit it to GitHub, or feed it to a static site generator.
Every Markdown feature, preserved
Code fences with language
```python stays ```python. ```ts stays ```ts. Indentation byte-perfect.
Math delimiters
$ for inline, $$ for display. Works in Obsidian, MkDocs, VitePress, GitHub gists.
Real headings
ChatGPT's H2 and H3 become # and ## in Markdown — not bold paragraphs pretending to be headings.
Nested lists
Three-level nested bullets arrive as three-level nested bullets. No flattening.
Inline formatting
Bold, italic, inline code and links all rendered with standard Markdown syntax.
YAML front matter
Optional metadata block — title, platform, model, timestamp — ready for Obsidian Dataview.
ChatGPT to Markdown — common questions
Does ChatGPT have native Markdown export?
Not as a file export. Copy-paste loses structure — use a dedicated export tool.
Is the Markdown Obsidian-compatible?
Yes. Plain CommonMark with $-delimited math.
What about code blocks?
Preserved as fenced blocks with language tag and byte-exact indentation.
Does LaTeX math survive?
Yes. Inline $...$ and display $$...$$ preserved.
Can I add YAML front matter?
Yes. Toggle front matter in the sidebar — prepends title, model, timestamp.
ChatGPT → clean Markdown in under a minute
Free Chrome extension. No account. Every Markdown feature preserved.
Add to Chrome — It's Free