How Exportal compares to other chat exporters
Most chat exporters save a conversation to a file. Exportal is a bridge: the exported conversation lands inside your VS Code workspace and is attached to Claude Code as an @-mention, so the point is continuing the conversation rather than archiving it. It also runs in the other direction, sending a Claude Code session back to the web chat.
That is the whole difference, and it is also the whole cost: a plain exporter is one browser extension, Exportal is two pieces that have to be paired. If you only want a saved copy of a chat, a plain exporter is the simpler tool and you should use one.
Capability by capability
What the two kinds of tool actually do, not which one is better.
| Capability | A typical chat exporter | Exportal |
|---|---|---|
| Saves the conversation as Markdown | Yes | Yes |
| Where the file ends up | Your downloads folder | Your VS Code workspace, under .exportal/ |
| Attaches the chat to Claude Code | No | Yes, as an @-mention, with the panel focused |
| Works editor to web chat as well | No | Yes, through the clipboard |
| Imports the official provider export ZIP | Usually not | Yes, including multi-file exports |
| Downloads Claude Design project assets | No | Yes, into a sibling folder |
Appears in Claude Code's /resume |
No | Opt-in, and labelled experimental |
| Redacts secrets before writing | Varies | On by default, opt-out is explicit |
| Sends your conversation to a server | Varies, check each one | Never. Loopback only, no account, no telemetry |
| Source you can read | Varies | MIT, the whole repository |
| Pieces you have to install | One browser extension | Two: a VS Code extension and a browser companion |
"A typical chat exporter" is a generalisation about the category, not a claim about any specific product. Extensions change, so check the current behaviour of whichever one you are comparing against, especially on the two rows that matter for your data: where the conversation is sent, and whether secrets are redacted before anything is written.
The alternatives you are actually choosing between
Other exporters are not the real competition. These three are.
Copying and pasting by hand
Nothing to install, and for a short chat it is the right answer. Two things break quietly as the conversation grows. What you copy off the page is what the page renders, so collapsed thinking blocks and tool calls do not come along. And both claude.ai and ChatGPT truncate a paste over roughly 100K characters without telling you, which means the failure mode on a long conversation is a silent one: the model answers confidently from a conversation that lost its middle.
Claude Code's own Session history
If your conversation started as a Claude Code cloud session on the web, you do not need Exportal at all. Claude Code downloads it itself: Session history, then the Web tab. Anthropic's documentation is explicit about the limit, though: only cloud sessions started with a GitHub repository appear there, it needs a Claude.ai subscription rather than a Console account, and changes are not synced back.
So it covers sessions that were already Claude Code. It does not cover an ordinary chat at claude.ai/chat, a Claude Design project, or anything at all from ChatGPT. That gap is the one Exportal exists for. If your work lives inside cloud sessions with a repo attached, use the native path.
MCP
MCP is the usual answer when someone asks how to bridge claude.ai and Claude Code, and for its own question it is the right one. It gives a model access to tools and data, your repository, a database, an internal API, and both claude.ai and Claude Code can speak it, so both sides reach the same systems.
What MCP does not do is move a conversation. It shares capabilities, not context: an MCP server can let Claude Code read your repo, but it cannot hand it the reasoning you and Claude already did in a web chat. The two solve different problems and nothing stops you from using both.
When you should not use Exportal
The honest list, so you do not install two things to find out:
- You only want an archive of your chats. The official export from claude.ai or ChatGPT already does that, for free, with everything included. Exportal can read that ZIP, but it is not why it exists.
- You do not use VS Code. Half of Exportal is a VS Code extension, and the bridge lives inside it. There is a CLI for terminal use, but the one-click flow needs the editor.
- You do not use Claude Code. Exportal still writes a clean Markdown file you can use with any tool, but the @-mention step, which is the reason for the whole design, does nothing for you.
- You want automatic two-way sync. Exportal will not do this, by decision rather than by omission: continuous sync would mean a service watching your conversations, and that contradicts the local-first guarantee. You move a conversation when you decide to.
- You use a provider other than claude.ai or ChatGPT. Those two are what is supported today.
What it costs you
Two extensions instead of one, and a one-time pairing. In exchange, the export button writes into your project instead of your downloads folder.
The pairing exists because the browser extension has to reach VS Code, and the only thing on your machine that can accept that is a local HTTP server inside the extension. It listens on 127.0.0.1 in a fixed port range, every request carries a 256-bit bearer token, and nothing else can talk to it. That is the price of not having a server in the middle: a server would need no pairing, and it would also need your conversations.
The way back, from Claude Code to the web chat, is a clipboard paste that you do yourself. No provider offers a write API, so any tool that claims a fully automatic round trip is either automating the UI or sending your text somewhere. Exportal does neither.
Questions people ask when comparing
Why two extensions instead of one?
A browser extension cannot write to your filesystem, and a VS Code extension cannot see the chat you have open. The bridge is what joins them, and it needs one half on each side. A single extension could only do this by sending the conversation through a server, which is exactly what Exportal is built to avoid.
Does reading the internal API risk my account?
Exportal reads conversations you already have access to, through the same internal endpoints the site's own frontend uses, with the session already in your browser. It does not scrape the DOM, automate the UI, or work around rate limits. The official ZIP import is always available as a path that touches no internal API at all.
Is Exportal an MCP server, or a replacement for one?
Neither. MCP connects a model to tools and data, so claude.ai and Claude Code can reach the same repository or database. Exportal moves the conversation itself into your workspace. They solve different problems and work fine together: MCP shares capabilities, Exportal carries the context you already built.
Can I use it purely as an exporter and ignore the Claude Code part?
Yes. The result is an ordinary Markdown file in your workspace, and the auto-attach step can be turned off with the exportal.autoAttachToClaudeCode setting. You lose the reason the tool was built, but nothing breaks.
What happens to Exportal if a provider changes its internal API?
Responses are parsed defensively and unknown block types are skipped rather than failing the whole import, which is a lesson that cost a full release to learn. If a structural change does break something, the official ZIP import keeps working while it is fixed, because it does not depend on the internal API.
Related
- The step-by-step guide: install, pair and export in about two minutes.
- The threat model: what the bridge accepts, and what redaction does and does not catch.
- The privacy policy, which is short because there is no data collection to describe.