Migrate Between ChatGPT, Claude, Gemini: Conversation Export Guide (2026)
Migrate Between ChatGPT, Claude, Gemini: Conversation Export Guide (2026)
You used ChatGPT for the first 18 months of "actually using AI." Then Claude Opus 4.7 shipped with 1M context and your workflow shifted. Or Gemini 2 Pro got good and you wanted to try. Now you want to bring your prior conversations, projects, and accumulated context across.
There's no one-click migration. Each vendor's export format is incompatible with each other vendor's import path. Here's the practical workflow that actually works.
The vendors and their export situations
| Vendor | Official export | Import path | Practical migration friction | |---|---|---|---| | ChatGPT (OpenAI) | Email ZIP with JSON | None for imports | High — JSON not directly usable | | Claude (Anthropic) | Per-conversation copy/paste | Claude Projects accept .md / .pdf / .txt / .docx | Medium — file upload works | | Gemini (Google) | Limited (Settings → Activity) | None | High — manual reconstruction | | DeepSeek | None official | None | High — manual | | Perplexity | None for full history | None | High — manual | | Kimi K2 | Limited | None | High — manual |
The pattern: vendors give you a way to back up your data (so you can leave if you want) but no way to migrate to a competitor (since that would help their competition).
The browser-side workflow that bypasses this
Since vendors won't help, the bridging tool needs to be vendor-neutral. The browser extension model works because the conversation pages are already in your browser, rendered, authenticated — all you need is to extract the content as portable Markdown.
Web2MD ships dedicated extractors for all five major chat platforms:
chatgpt.com/c/— ChatGPT conversation pagesclaude.ai/chat/— Claude conversation pagesgemini.google.com— Gemini conversation pageschat.deepseek.com— DeepSeek conversationsperplexity.ai/search/— Perplexity research sessions
Output format: clean Markdown with ## User / ## Assistant headings preserved, code blocks fenced correctly, tables converted to GFM, model name and timestamp included for reference.
ChatGPT → Claude migration
The most common direction. Step by step:
Step 1: Identify conversations worth migrating
Not every ChatGPT conversation is worth bringing over. Skim your history at chatgpt.com and bookmark the substantial ones.
For my own migration in mid-2026 I had 1,200 ChatGPT conversations going back to GPT-4. ~40 were substantive (project work, research, deep technical discussions). The rest were one-off questions not worth carrying.
Step 2: Bulk-extract the substantive ones
Open each substantive ChatGPT conversation in a tab. Queue each with Web2MD. After you've queued the set you care about (10-50 conversations), bulk-export as one Markdown file.
Time: ~12 minutes for 40 conversations including the read-through.
Output structure:
# ChatGPT Conversation Archive Export
## Conversation 1: System architecture for X
**Model**: GPT-4 · **Date**: 2025-09-12 · **URL**: chatgpt.com/c/...
### User
[Initial prompt]
### Assistant (GPT-4)
[Response]
### User
[Follow-up]
[Continues for full conversation]
---
## Conversation 2: ...
Step 3: Paste into Claude (or upload as Project file)
Two paths into Claude:
Option A — Project file upload: Create a new Claude Project, name it something like "ChatGPT Archive 2024-2026", upload the Markdown file. Claude reads it as project context. Best for browsing back to specific past conversations.
Option B — Inline paste: Drop the relevant conversation directly into a Claude chat. Best for "continue this specific thread in Claude."
Claude's 1M context window means even substantial archives fit. 40 conversations averaging 4k tokens each = 160k tokens, well within Claude's window.
Step 4: Custom instructions and memory
ChatGPT custom instructions are a small text field. Copy them verbatim into Claude's Project instructions. Claude's "Memory" feature (rolling out 2026) works differently — you can manually add facts via the UI as conversations progress.
For Claude Code users: instead of a Project, drop the Markdown file into your repo and reference it as context in your ~/.claude/CLAUDE.md.
Claude → ChatGPT migration
Same workflow, opposite direction:
- Identify Claude conversations worth migrating (claude.ai/chat/...)
- Bulk-extract with Web2MD's Claude extractor
- Either: upload to ChatGPT as file (Plus/Team), or paste inline
ChatGPT's context window is smaller than Claude's (128k for GPT-5.5, 200k for GPT-4.1) so very large archives need splitting. Web2MD's bulk export supports per-conversation export if you prefer one file per source.
Gemini ↔ everything
Gemini's export options are weaker than ChatGPT's or Claude's. The Web2MD extractor handles individual gemini.google.com conversations the same way as the others. For deep Project-level migration into Gemini, expect manual reconstruction since Gemini's Project import is less developed.
DeepSeek and Perplexity are even more constrained — there's no Project import for either as of mid-2026. The Markdown export still works for inline paste into the destination chat.
A note on the underlying values
When you migrate conversations, you're moving "what was said" but not "what the model knew." The new vendor's model has different training data, different instruction-following calibration, different system prompts. A conversation that made sense to GPT-4 might be slightly misinterpreted by Claude even with the same Markdown input.
In my experience: this matters less than you'd think. Claude / GPT-5.5 / Gemini at the frontier tier all read English prose at similar levels. The conversation history serves as context for the new model, not as a contract to be perfectly preserved.
What to actually do
If you're considering switching vendors:
- Don't try to migrate everything. Migrate the 5-10% that's actually load-bearing.
- Export those as Markdown using a browser-side tool (this category exists exactly because there's no native cross-vendor path).
- Upload as Project file to the new vendor (preferred over inline paste for archive-style references).
- Manually re-create custom instructions in the new vendor's interface — they're a small enough field that it's easier to retype than to import.
- Live with imperfect context bridging. The new model is competent; you don't need 100% fidelity.
End-to-end migration time for a typical "switch from ChatGPT Plus to Claude Pro" with 40 substantive conversations: about 90 minutes including review.
Quick wins
If you already use Web2MD, open any ChatGPT / Claude / Gemini / DeepSeek / Perplexity conversation and click the extension. The vendor-specific extractor produces clean Markdown ready for paste into any other vendor's chat or Project file.
For one-off "I just want to keep a record of this conversation," the same workflow + save the Markdown to your file system or Obsidian vault.
Related
- How to fill Claude's 1M context window
- Use Claude conversations as Cursor context
- Why AI can't access Reddit, X, Substack
- Export DeepSeek, ChatGPT, Claude conversations
- Claude memory import: switch AI assistants
- Migrate ChatGPT history to Claude via bulk export
Install
Web2MD on the Chrome Web Store →
Free tier: 3 conversions/day. Pro at $9/month unlocks unlimited + bulk queue + dedicated extractors for ChatGPT / Claude / Gemini / DeepSeek / Perplexity conversation pages.