Exportal is a bidirectional bridge between
Claude.ai / ChatGPT and Claude Code
in VS Code. One click in any chat → clean Markdown in your
workspace, auto-attached to Claude Code as @-mention.
Continue your work without copy-paste.
The floating button on any Claude.ai or ChatGPT chat — one click and your conversation lands in your editor.
Six capabilities that, taken together, no other tool offers today.
From any chat at claude.ai/chat, claude.ai/design/p, or chatgpt.com/c → a clean Markdown file in your VS Code workspace, including tool use, thinking, and results.
Exported files land as @-mention in the Claude Code panel. Continue the conversation in your editor with full context — no copy-paste, no re-explaining.
Send any Claude Code session back to claude.ai or ChatGPT. The chat is rendered, copied to your clipboard, and the provider opens — paste and continue in the cloud.
For claude.ai/design/p projects, generated assets (HTML, JSX, JSON) are also downloaded into a sibling folder so Claude Code sees them too.
Drop a Claude.ai or ChatGPT data export ZIP and Exportal renders it. Auto-detects new ZIPs in your Downloads folder while the panel is visible.
/resumeOptional opt-in: imported conversations appear in Claude Code's /resume command as if they were native local sessions. Experimental.
Three steps. After the first pairing, daily use is one click.
The Exportal Companion from the Chrome Web Store, and the Exportal extension from the VS Code Marketplace.
Ctrl+Shift+P → Exportal: Show pairing token → click Copy and open Chrome. The companion auto-detects the token and pairs. No copy-paste.
On any chat, click the floating Exportal button. VS Code opens the conversation as Markdown, attached to Claude Code as @-mention. Or use Alt+Shift+E.
For users who care how their tools actually work — and want to verify.
The Chrome companion and the VS Code extension communicate through
a local HTTP loopback bridge on 127.0.0.1,
authenticated by a token paired once. No remote servers exist in the
data path — the server lives inside your own VS Code, on your own
machine.
127.0.0.1 — your own loopback address.
The full threat model is documented in
SECURITY.md:
what is treated as a sensitive asset, where redaction applies by
default, what is intentionally out of scope (e.g. encryption at
rest), and how the pairing token mitigates loopback access from
other processes.
Real person. Real repo. Real history.
Short, honest answers.
No. Exportal is a bridge — both halves are required. The Chrome companion talks to a local HTTP server that lives inside the VS Code extension. Both are free and MIT-licensed.
The "network" permission is used only to talk to 127.0.0.1 — your own machine's loopback address. There is no remote server. You can verify this by reading the source code.
No. Exportal only reads conversations you already have access to, using your existing browser session — the same way your browser does when you scroll through them. No automation, no scraping, no rate-limit abuse.
Yes, with all of them. Exportal uses your existing logged-in session — whatever you can see in your browser, Exportal can export.
Exportal parses responses defensively and falls back gracefully. If a structural change breaks something, file an issue on GitHub and it'll be fixed quickly. The official ZIP import path is also always available as a fallback that does not depend on the internal API.
/resume integration officially supported?No. The .jsonl session format used by Claude Code is reverse-engineered, not officially documented by Anthropic. The /resume integration is opt-in and labelled experimental — it may break across Claude Code versions. The Markdown export, which is the primary feature, is unaffected.
Existing exporters save chats to a file. Exportal is a bridge: the exported conversation is auto-attached to Claude Code in VS Code so you continue the conversation, not just archive it. It's also bidirectional, supports claude.ai/design/p with asset download, and is the only tool that integrates with Claude Code's /resume command.