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.
No mock screenshots — the actual file structure you receive, and the real architecture of the bridge.
# Exportal — claude.ai conversation
- **Title:** Refactoring the auth middleware
- **UUID:** `7f3a4b9c-2d8e-4c11-a8d3-...`
- **Created:** 2026-04-22T14:32:11Z
- **Messages:** 14
- **Redaction:** enabled
## User
Can you read src/auth/middleware.ts and walk me through
how the JWT verification works?
## Assistant
> *thinking*
> Let me read the file first to understand the
> current implementation.
[tool_use: read_file]
{ "path": "src/auth/middleware.ts" }
The current implementation uses `jsonwebtoken` v9 with
HS256. The `verifyToken` function on line 23 takes a
request and...
A real export from a Claude.ai conversation. Tool-use blocks, thinking, and inline code are preserved verbatim — ready to paste into Claude Code as context, or auto-attached for you.
All traffic flows through your loopback address. There is no Exportal cloud, no analytics, no telemetry. The Chrome companion talks only to 127.0.0.1 — your own machine.
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.
Every commit, decision, and roadmap item is public. The repo is the source of truth — not a polished landing page.
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.