Guides ·

Export Grok chat to Markdown

To export a Grok chat to Markdown, open the thread on grok.x.ai (or grok.com / x.com/i/grok), 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 waiting for an xAI account-data ZIP.

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

xAI account data vs a one-thread Markdown file

xAI lets you download account data from Grok’s Settings → Data Controls (also reachable at accounts.x.ai/data), and that is the right tool when you want a bulk archive. According to xAI’s Consumer FAQs, you can download or delete your data from the Grok app or Grok.com Data Controls, or submit further requests through the privacy portal. The result is an account-scoped archive — typically a ZIP that includes a large JSON blob of conversations — not a single readable note for one open thread. Grok history used inside the X app may sit with your X account archive instead of the grok.com export.

Chat Transfer covers the other job: the conversation already open in Chrome becomes one Markdown file in a few clicks, with YAML frontmatter Obsidian and similar tools can read. Sibling guides cover the same one-thread export for ChatGPT, Claude, and Gemini.

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: "Weekend trip ideas"
source: Grok
url: "https://grok.x.ai/chat/…"
date: 2026-10-28
turnCount: 4
---

### User

Outline a three-day trip to Lisbon for two adults.

### Assistant

Here is a compact three-day plan…

How Chat Transfer reads a Grok thread

The Grok adapter is a best-effort DOM reader for grok.x.ai (any path), grok.com (optional secondary), and the X-embedded hosts x.com/i/grok and twitter.com/i/grok. Detection is hostname/path only — TipTap markers are not required to claim the page. Primary turn hooks are [data-testid="user-message"] and [data-testid="assistant-message"], with fallbacks for grok-response / grokResponseText, .message-bubble, and older aria labels (“You” / “Grok”). Roles are never invented from even/odd position when the role is unclear.

Composer paste (for hops) prefers TipTap / ProseMirror contenteditable first, then textbox contenteditables, then Ask/Grok textareas and data-testid="grokInput"; on x.com/i/grok it may also use tweetTextarea_0. Paste never clicks Send or Submit (button[aria-label="Submit"], button[data-testid="chat-submit"], button[data-testid="grokSendButton"], and similar). Soft Auto-Send, when you opt in, only asks once after a successful paste.

xAI and X remount TipTap and data-testids without notice. If those hooks are missing, the adapter does not invent messages; Copy and Export stay off until real turns appear.

Steps: export one Grok chat to Markdown

  1. Add Chat Transfer from the Chrome Web Store (0.4.0) and pin it.
  2. Open the Grok conversation on grok.x.ai, grok.com, or x.com/i/grok 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 Grok’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 ChatGPT, Claude, Gemini, or a new Grok 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: Hop Grok to ChatGPT, Hop Grok to Claude, Hop Grok to Gemini, 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 Grok 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 Grok have a built-in Markdown export for one chat?

xAI’s documented bulk path is account data download from Data Controls / accounts.x.ai/data (a ZIP / JSON archive) — not a one-thread .md download (xAI Consumer FAQs). Chat Transfer covers the one-thread case.

Will code blocks survive?

Yes. The Grok body walk turns structured code shells into fences and keeps fenced code as-is. Use Code-only if you want just the code.

Which Grok hosts are supported?

Primary: grok.x.ai and x.com/i/grok (plus twitter.com/i/grok). Optional secondary: grok.com. Host permissions match those patterns; there is no blanket x.com access.

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 · Search Grok history locally · Export ChatGPT chat to Markdown · Export Claude chat to Markdown · Export Gemini chat to Markdown · Hop Grok to ChatGPT · Hop Grok to Claude · Hop Grok to Gemini · Soft Auto-Send · How to use · Local only · Privacy · Add to Chrome