Exportal

The bridge between your AI chat and your editor.

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.

GitHub stars MIT license Local-first

See it in action

The floating button on any Claude.ai or ChatGPT chat — one click and your conversation lands in your editor.

Exportal floating button on a claude.ai chat
The Exportal floating button on claude.ai. Click → conversation imports to VS Code.
Exportal supports Claude.ai, Claude Design, and ChatGPT
One bridge, every chat: Claude.ai, Claude Design, and ChatGPT — all flow into the same Claude Code workspace.

What it does

Six capabilities that, taken together, no other tool offers today.

One-click export

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.

Auto-attach to Claude Code

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.

Bidirectional

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.

Claude Design support

For claude.ai/design/p projects, generated assets (HTML, JSX, JSON) are also downloaded into a sibling folder so Claude Code sees them too.

Official ZIP imports

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.

Appear in /resume

Optional opt-in: imported conversations appear in Claude Code's /resume command as if they were native local sessions. Experimental.

How it works

Three steps. After the first pairing, daily use is one click.

  1. Install both

    The Exportal Companion from the Chrome Web Store, and the Exportal extension from the VS Code Marketplace.

  2. Pair once

    Ctrl+Shift+PExportal: Show pairing token → click Copy and open Chrome. The companion auto-detects the token and pairs. No copy-paste.

  3. Click & continue

    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.

Architecture & Privacy

For users who care how their tools actually work — and want to verify.

Local-first by design

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.

  • No remote servers. Nothing is sent off your machine.
  • No analytics. No telemetry. No accounts.
  • Network permissions are used only to talk to 127.0.0.1 — your own loopback address.
  • Reads conversations through your existing browser session, the same way your browser already reads them when you scroll. No automation, no scraping, no rate-limit abuse.
  • Open source under MIT — every line of the Chrome extension, the VS Code extension, and the bridge protocol is auditable on GitHub.

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.

Who built this

Real person. Real repo. Real history.

DP

Dionisio Pereyra Bocchio

20-year-old Computer Science student at UBA (Universidad de Buenos Aires), Argentina. Built Exportal because the copy-paste between claude.ai planning sessions and Claude Code became unbearable. Released the first public version in April 2026 and has been iterating in the open since — every commit, changelog entry, and roadmap item is on GitHub.

GitHub Project devlog Changelog Roadmap

FAQ

Short, honest answers.

Does Exportal work without the VS Code extension?

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.

Why does the Chrome extension ask for network permissions if it's local?

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.

Will Anthropic or OpenAI ban my account?

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.

Does it work with Pro / Max / Team / Enterprise plans?

Yes, with all of them. Exportal uses your existing logged-in session — whatever you can see in your browser, Exportal can export.

What if Anthropic or OpenAI change their internal API?

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.

Is the /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.

How is this different from existing exporters in the Chrome Web Store?

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.