Guides ·

Export ChatGPT chat to Markdown

To export a ChatGPT chat to Markdown, open the thread on chatgpt.com, open Chat Transfer, leave the format on Markdown (the default), and click Export — you get one .md file named after the chat title and date, with a YAML header and a ### User / ### Assistant heading for every turn, built on this device without an email link.

Version 0.4.0 is live on the Chrome Web Store. Export runs only when you click it. Soft Auto-Send stays opt-in and default off. Add to Chrome

ChatGPT’s built-in export vs a one-thread Markdown file

ChatGPT has an official data export, and it is the right tool when you want everything. According to OpenAI’s help article Exporting your ChatGPT history and data, you go to Settings > Data controls > Export data on the web app (or Data controls in the iOS / Android apps), confirm the export, then wait for an email or SMS with a download link. That link can take up to 7 days to arrive and expires 24 hours after delivery. You must be signed in to the same account to download. The ZIP holds chat history and other account data — not a single readable note for one conversation. Self-service export is available for Free, Go, Plus, Pro, and eligible Edu workspaces; Business, Enterprise, and ChatGPT for Healthcare workspaces must go through the workspace owner. You can also start a request from the OpenAI Privacy Portal.

Which export fits the job
NeedChatGPT Settings > Data controls > Export dataChat Transfer Export (Markdown)
ScopeWhole account (chat history + other account data)The ChatGPT thread open in this tab — or a slice of it
DeliveryEmail or SMS link, up to 7 days, valid 24 hours, sign-in required (source)File saved from the extension right away; nothing is emailed
OutputAccount data ZIP.md with YAML frontmatter and ### Role headings (also Plain, JSON, CSV, HTML, PDF, State, ZIP)
Who can self-exportFree / Go / Plus / Pro / eligible Edu; not Business, Enterprise, or Healthcare self-serviceAnyone with the Chrome extension on a ChatGPT tab they can open
Re-import into ChatGPTOpenAI’s export is for download / privacy requests — not a one-click restore into another personal accountNo import into ChatGPT either — but you can Continue the archive in Claude, Gemini, Grok, or a new ChatGPT chat

Rule of thumb: use ChatGPT’s export for a full backup or account move-out; use a one-thread Markdown export when you want a single conversation in Obsidian, a repo, a ticket, or another AI.

What the Markdown file looks like

This is the shape Chat Transfer 0.4.0 writes, taken from the extension’s own formatter (toMarkdown + exportYamlFrontmatter in extension/src/shared/format.js), with placeholder text:

---
title: "Refactor auth middleware - ChatGPT"
source: "ChatGPT"
url: "https://chatgpt.com/c/…"
date: 2026-10-26
turnCount: 6
---

### User

Can you refactor this middleware so the token check runs once?

### Assistant

Here is a version that caches the decoded token…

How Chat Transfer reads a ChatGPT thread

The ChatGPT adapter is a best-effort DOM reader for chatgpt.com and chat.openai.com (and their www hosts). It prefers turns marked with data-message-author-role, then falls back to turn containers. Message bodies are pulled from hooks such as [data-message-content], [data-testid="message-content"], and .markdown / .prose nodes. Chrome-only UI (Copy / Edit buttons, nav, sr-only labels) is stripped before formatting. If those hooks are missing — OpenAI can change the page without notice — the adapter does not invent messages; Copy and Export stay off until real turns appear.

Composer paste (for hops) targets #prompt-textarea and related ProseMirror / unified-composer selectors. Paste never clicks Send. Soft Auto-Send, when you opt in, only asks once after a successful paste.

Steps: export one ChatGPT chat to Markdown

  1. Add Chat Transfer from the Chrome Web Store (0.4.0) and pin it.
  2. Open the ChatGPT conversation on chatgpt.com and wait until the last reply finishes streaming.
  3. Long thread? Click Scroll & extract. It scrolls toward the bottom until the turn count stops growing or 12 passes are done, then reads the visible turns. It never clicks Send.
  4. Under Copy & export, keep Markdown selected. Pick which turns (all, from turn N, or selected) and a Content mode (see below).
  5. Click Export. The filename preview shows what you’ll get. Export also saves the thread to your on-device Library so you can search it later.

Faster path: Alt+Shift+C copies the full chat as Markdown to your clipboard (no handoff wrapper, ignores Content mode). Paste it into any editor and save as .md. You can rebind it at chrome://extensions/shortcuts.

Pick a Content mode before you export

Content modes for Copy and Export
ModeWhat lands in the .mdYAML headerGood for
FullEvery User and Assistant turnYesNotes, archives, sharing the whole thread
User-onlyOnly your prompts (-user.md)YesBuilding a prompt library from a good session
Assistant-onlyOnly ChatGPT’s replies (-assistant.md)YesTurning answers into docs or a README draft
Code-onlyOnly fenced code blocks (-code.md)NoPulling every snippet out of a coding chat

Need more than one file? ZIP packs archive.json (the CT Memory record) plus transcript.md, and adds images only when their bytes were already in the extract. HTML and PDF are there when the reader doesn’t use Markdown.

Then continue it somewhere else (optional)

A Markdown export is often the first step of a hop. From the same popup you can open Claude, Gemini, Grok, or a new ChatGPT chat and paste the thread as Full, Last N (default 10; presets 4, 8, 16), or last assistant only. If the paste goes over 12k characters, the composer gets a shorter slice and the full unwrapped Markdown downloads as {title}-full-{date}.md for manual attach. Paste never presses Send. Soft Auto-Send is opt-in (default off) and asks “Send this hop now?” once after a successful paste. Guides: Export ChatGPT to another AI, Hop ChatGPT to Claude, Hop ChatGPT to Gemini, Hop ChatGPT to Grok, Soft Auto-Send.

Local only

Chat Transfer reads the page you already have open and formats the file inside the extension. There is no Chat Transfer backend, the marketing site never receives your chat text, and host access is limited to ChatGPT, Claude, Gemini, and Grok domains. Export needs no downloads permission. Details: privacy policy and Local only.

Limits worth knowing

FAQ

Can I export a single ChatGPT conversation to Markdown?

Yes. Open that conversation, pick Markdown in Chat Transfer, and click Export. You get one .md file for that thread only.

Does ChatGPT have a built-in Markdown export for one chat?

ChatGPT’s documented export is account-wide: Settings > Data controls > Export data, delivered by an email or SMS link that can take up to 7 days and expires after 24 hours (OpenAI help). Chat Transfer covers the one-thread case.

Will code blocks survive?

Yes. Fenced code is kept as-is. Use Code-only if you want just the code.

Is my chat uploaded anywhere?

No. Formatting happens in the extension on this device. Library copies stay in chrome.storage.local (large bodies may use IndexedDB).

Does Export press Send?

No. Export only downloads a file. Soft Auto-Send (hop only) is opt-in, default off, and never silent-sends.

Sources

Related

Product · Guides · Export Claude chat to Markdown · Export Gemini chat to Markdown · Search ChatGPT history locally · Export ChatGPT to another AI · Hop ChatGPT to Claude · Hop ChatGPT to Gemini · Hop ChatGPT to Grok · Soft Auto-Send · How to use · Local only · Privacy · Add to Chrome