Guides ·
Export Gemini chat to Markdown
To export a Gemini chat to Markdown, open the thread on gemini.google.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 a Google Takeout archive.
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
Google Takeout vs a one-thread Markdown file
Google lets you download Gemini Apps data through Takeout, and that is the right tool when you want a bulk archive. According to Google’s help article Download your Gemini Apps data, you go to takeout.google.com signed into the same Google Account, deselect other products, include Gemini Apps activity (and optionally the Gemini product checkbox for Gems), then choose a delivery method. Email delivery sends a download link that stays active for 7 days; building the archive can take from a few hours to a few days. The result is an account-scoped archive — not a single readable note for one conversation. You can also start a broader export from Download your Google data.
| Need | Google Takeout (Gemini Apps) | Chat Transfer Export (Markdown) |
|---|---|---|
| Scope | Gemini Apps activity / Gems in your Google Account | The Gemini thread open in this tab — or a slice of it |
| Delivery | Email link (active 7 days) or Drive / Dropbox / OneDrive / Box; hours to days (source) | File saved from the extension right away; nothing is emailed |
| Output | Takeout archive (.zip / .tgz) with activity records | .md with YAML frontmatter and ### Role headings (also Plain, JSON, CSV, HTML, PDF, State, ZIP) |
| Who can self-export | Anyone with access to that Google Account’s Takeout | Anyone with the Chrome extension on a Gemini tab they can open |
| Re-import into Gemini | Takeout is for download / backup — not a one-click restore into another personal chat | No import into Gemini either — but you can Continue the archive in ChatGPT, Claude, Grok, or a new Gemini chat |
Rule of thumb: use Takeout for a full Gemini Apps 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: "Plan weekend itinerary - Gemini"
source: "Gemini"
url: "https://gemini.google.com/app/…"
date: 2026-10-27
turnCount: 6
---
### User
Can you turn this outline into a day-by-day itinerary?
### Assistant
Here is a compact three-day plan…
- Frontmatter keys:
title(tab title),source(ChatGPT / Claude / Gemini / Grok),url(the tab URL),date(export day, UTC,YYYY-MM-DD), andturnCount. Tools that read YAML properties, such as Obsidian properties, can pick these up as note metadata. - When YAML is added: Markdown Full, User-only, and Assistant-only get the header. Code-only, Plain, JSON, HTML, PDF, and State do not. The formatter only prepends YAML when the body already starts with a
###role heading. - Turns: each turn starts with
### Useror### Assistant(role label is the role string with the first letter capitalized), then the body. Fenced code blocks are left intact. ASystemturn is only included when you tick Keep system prompt. - Thoughts stay out: Gemini “thinking” / thought containers are skipped so they are not written as assistant text.
- Attachments: files or images Gemini showed that can’t be exported become one line like
[attachment not exported: …]. File bytes are never invented. - Filename:
{chat-title}-{YYYY-MM-DD}.md. If the title is empty it falls back to the site name, thencrosschat-hop-{site}-{date}.md. Content modes add-user,-code, or-assistantbefore.md.
How Chat Transfer reads a Gemini thread
The Gemini adapter is a best-effort DOM reader for gemini.google.com and the legacy bard.google.com hosts. It prefers custom elements such as user-query and model-response, then related text hooks (.query-text, markdown panels, and similar). Chrome-only UI (Copy / Good response / Regenerate toolbars) is stripped before formatting. Thought containers (model-thoughts, thoughts-container, and related test ids) are skipped. Composer paste (for hops) targets Quill .ql-editor and “Enter a prompt for Gemini” selectors. Paste never clicks Send. Soft Auto-Send, when you opt in, only asks once after a successful paste.
Google remounts web components often. If those hooks are missing, the adapter does not invent messages; Copy and Export stay off until real turns appear.
Steps: export one Gemini chat to Markdown
- Add Chat Transfer from the Chrome Web Store (0.4.0) and pin it.
- Open the Gemini conversation on gemini.google.com and wait until the last reply finishes streaming.
- 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.
- Under Copy & export, keep Markdown selected. Pick which turns (all, from turn N, or selected) and a Content mode (see below).
- 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
| Mode | What lands in the .md | YAML header | Good for |
|---|---|---|---|
| Full | Every User and Assistant turn | Yes | Notes, archives, sharing the whole thread |
| User-only | Only your prompts (-user.md) | Yes | Building a prompt library from a good session |
| Assistant-only | Only Gemini’s replies (-assistant.md) | Yes | Turning answers into docs or a README draft |
| Code-only | Only fenced code blocks (-code.md) | No | Pulling 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, Grok, or a new Gemini 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 Gemini to ChatGPT, Hop Gemini to Claude, Hop Gemini 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
- It exports what is rendered in the tab. Turns Gemini hasn’t loaded yet need Scroll & extract first.
- Uploaded files, images, and Gem-only panels are not rebuilt — you get an
[attachment not exported: …]line instead. - Thought / “thinking” chrome is skipped on purpose so it does not pollute the Markdown.
- It is one thread at a time. For your whole Gemini Apps history, use Google’s Takeout path.
- An empty new chat has nothing to export; Copy and Export stay off until extract finds turns.
FAQ
Can I export a single Gemini 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 Gemini have a built-in Markdown export for one chat?
Google’s documented bulk path is Takeout for Gemini Apps data (hours to days; email link active 7 days) — not a one-thread .md download (Gemini Apps 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.
Are Gemini thoughts included?
No. Thought containers are filtered out so they are not written as assistant turns.
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
- Download your Gemini Apps data — Gemini Apps Help (Takeout, delivery methods, 7-day email link)
- Download your Google data — Google Account Help
- Google Takeout
- Obsidian Help — Properties (YAML frontmatter as note metadata)
- CommonMark (Markdown spec)
- Chat Transfer on the Chrome Web Store
- Chat Transfer privacy policy
Related
Product · Guides · Export ChatGPT chat to Markdown · Export Claude chat to Markdown · Export Grok chat to Markdown · Hop Gemini to ChatGPT · Hop Gemini to Claude · Hop Gemini to Grok · Soft Auto-Send · How to use · Local only · Privacy · Add to Chrome