How to export a ChatGPT conversation to Markdown
Updated October 14, 2026 · 5 min read
ChatGPT gives you two export tools out of the box: a copy button that handles one reply, and an account export that handles everything at once. Neither will export a single ChatGPT conversation to Markdown as one file you can drop into your notes, a repo or another model's context. That gap is what the third method below fills.
Which method fits your case
| Method | What you get | Good for | Main limit |
|---|---|---|---|
| Copy button under a reply | One reply as Markdown on your clipboard | A single answer or snippet | Your prompts are left out, one message at a time |
| OpenAI data export | Your full history as chat.html and conversations.json |
A complete backup | No Markdown, all conversations in one block |
| Markforge extension | The open conversation as one .md file |
Archiving or reusing one chat | Markdown only, one conversation per click |
Method 1: copy one reply as Markdown
Under each ChatGPT reply there is a copy icon. It copies the reply as Markdown source, so headings, lists and code fences survive the paste into a Markdown editor.
It covers the assistant's side only. To rebuild a full exchange you copy every reply, retype or copy your prompts separately, and stitch the pieces together. Fine for one answer, tedious past three or four turns.
Method 2: OpenAI's account export
ChatGPT can export everything tied to your account:
- Open Settings, then Data controls.
- Click Export data, then confirm.
- Open the email from OpenAI and download the ZIP archive. The link expires after 24 hours.
OpenAI describes the process in its help article on exporting your ChatGPT history and data.
The archive contains chat.html, a single browsable page holding every conversation, and conversations.json, the same content as structured data. Neither is Markdown. Developers convert conversations.json with a script. Everyone else ends up scrolling one very long HTML page looking for a conversation from last spring.
Keep this method for what it is good at: a periodic backup of the whole account.
Method 3: export the open ChatGPT conversation to Markdown
Markforge is a free Chrome extension that converts the current page to Markdown. Its ChatGPT parser reads each turn of the conversation, labels who said what, and drops the interface around it: action buttons, feedback icons, avatars.
- Install Markforge from the Chrome Web Store.
- Open the conversation. The address should start with
chatgpt.com/c/. - Click the Markforge icon, or press Alt+M.
- Review the result in the popup. Title and content are editable.
- Click Copy or Download .md.
The popup also shows the character, word and token count of the Markdown. The token count uses a GPT tokenizer, so it is a direct read on how much context the conversation will take if you paste it into another model.
What the Markdown file looks like
---
title: "SQL window functions explained"
source: "ChatGPT"
url: "https://chatgpt.com/c/your-conversation-id"
description: "What is the difference between a window function and GROUP BY?"
---
# SQL window functions explained
### User
What is the difference between a window function and GROUP BY?
* * *
### Assistant
GROUP BY collapses rows into one per group. A window function keeps every row:
The title comes from the conversation name in ChatGPT. The description line is the start of your first prompt, capped at 200 characters. You can change the frontmatter template in the settings, or turn frontmatter off if you only want the transcript.
Move a ChatGPT conversation to Claude or Gemini
Switching assistants in the middle of a project is a common reason to export. The Markdown transcript carries the whole exchange: paste it into Claude or Gemini and ask the model to pick up from the last message.
Two controls in the popup help here. The token count shows whether the transcript will fit comfortably in the other model's context. The Strip links toggle removes hyperlinks while keeping their text, which shortens a transcript full of citations. You can also delete dead-end turns directly in the content field before copying. The full method is in how to move a conversation between assistants.
When a dedicated ChatGPT exporter is the better choice
Markforge is a Markdown tool that happens to support ChatGPT, along with Claude, Gemini, Grok and a dozen other sites. If ChatGPT is the only place you export from, a single-purpose extension may suit you better.
ChatGPT Exporter is the largest of them: its Chrome Web Store listing showed 200,000 users and an update dated October 11, 2026 when we checked on October 14, 2026. It exports to PDF, Markdown and plain text, which matters if you send conversations to people who do not read Markdown.
Choose Markforge when Markdown is what you want and ChatGPT is one source among several. The same shortcut then works on a Claude chat, a Reddit thread or a documentation page, and every file comes out with the same frontmatter.
Limits worth knowing
- Projects and custom GPTs. In version 1.0.0 the dedicated parser matches addresses that start with
chatgpt.com/c/. Conversations inside a Project or a custom GPT have a longer address and fall back to generic extraction, with a rougher result. - One conversation per click. There is no bulk mode. Use OpenAI's export for a full backup.
- Tables are flattened. Version 1.0.0 does not rebuild Markdown tables: each cell lands on its own line. If a reply hinges on a table, copy that reply with ChatGPT's copy button.
- Loaded messages only. Markforge converts what the page contains. On a very long chat, scroll to the top once before exporting.
- Chrome only. There is no Firefox or Safari version today.
Related exports
The other assistants work the same way, each with its own parser: Claude, Gemini and Grok. To send the file straight into a vault, see saving AI conversations to Obsidian.
Frequently asked questions
Can ChatGPT export a conversation as Markdown by itself?
Not as a file. The copy button under a reply copies that reply as Markdown, and the account export in Settings, under Data controls, delivers every conversation as chat.html and conversations.json. There is no native export of a single conversation to a .md file.
What is inside the ChatGPT data export?
A ZIP archive sent by email. It includes chat.html, one page with your whole history that you can open in a browser, and conversations.json, the same data in a structured format. The download link expires after 24 hours.
Does Markforge export ChatGPT conversations to PDF?
No. Markforge produces Markdown only. If you need PDF, pick a dedicated exporter such as ChatGPT Exporter, which lists PDF, Markdown and text among its formats.
Do code blocks survive the export?
Yes. Code in ChatGPT's replies comes out as fenced code blocks, and lists and headings keep their structure. Tables are the exception in version 1.0.0: they are flattened to lines of text.
Does it work on conversations inside a ChatGPT Project?
Not well in version 1.0.0. The dedicated parser recognizes standard conversation addresses that start with chatgpt.com/c/. Chats inside a Project or a custom GPT use a longer address and fall back to generic page extraction.
Related guides