Skip to content
ChatVault

Export Claude Conversation History With Completeness Checks

ChatVault is a Chrome extension that lets you export Claude conversation history in bulk rather than one open chat at a time. It scans every conversation your signed-in claude.ai account can see, loads each thread in full, and records a completeness state before anything is written to disk.

The result is a ZIP archive on your own device: canonical JSON for lossless storage, plus Markdown, TXT, or HTML for reading. Everything is extracted, validated, and rendered locally. No account, no cloud service, and no server ever sees your prompts or replies.

How to export a Claude conversation

The export runs in your browser against the pages you already use. A first export takes a few minutes of setup:

  1. Install ChatVault from the Chrome Web Store.
  2. Enable the Claude platform and grant the claude.ai host permission.
  3. Open a claude.ai tab where you are signed in.
  4. Run a scan to enumerate every conversation your account can access.
  5. Select all conversations or a filtered subset and pick JSON, Markdown, TXT, or HTML.
  6. Start the export and monitor progress, warnings, and retries in the side panel.
  7. Download the ZIP archive with your chats and the manifest.

Claude does not offer a one-click full-history download in its interface, which is why most people export Claude chats one at a time or not at all. ChatVault treats the whole sidebar as the unit of work: scan everything, select what you want, and let the job walk the list while you do something else.

What the Claude exporter captures

Each chat is normalized into the same versioned ChatDocument schema used for every supported platform. The adapter distinguishes user, assistant, system, and tool roles where they can be told apart, keeps the original message order, and preserves text, code blocks with language tags, tables, lists, links, and timestamps when the interface exposes them.

Content types the adapter does not understand are never dropped quietly. They are stored as structured attachment references, and the conversation is marked with a warning so the archive shows exactly what was degraded instead of pretending nothing was missing.

Every document also records its source platform, the source conversation ID when available, title, dates, adapter version, extraction time, and a deterministic content hash. Two exports of an unchanged chat produce the same hash, which makes deduplication and audit trails straightforward.

Because every platform normalizes into the same schema, a Claude archive and a ChatGPT archive are directly comparable. The same exporters render both, the same manifest format describes both, and any tooling you build over the JSON model works across your whole AI history rather than one vendor's slice of it.

Long Claude conversations and lazy loading

Long Claude threads are where archives usually go wrong: older messages load on demand, and a tool that reads only what is currently rendered produces a truncated file that looks finished. ChatVault performs the scrolling and expansion steps required to load the full visible history before extraction begins.

Where the interface exposes a reliable expected message count, the adapter compares it with the number of messages actually extracted. Every conversation ends up in one of four states, written into the manifest with its reason:

  • complete: the full history is proven loaded, and counts match where a count exists.
  • warning: the body is intact but something degraded, such as an unsupported attachment kept as a reference or a missing timestamp.
  • incomplete: completeness could not be proven or loading was interrupted; never reclassified as success because a file was rendered.
  • unsupported: the page structure was not recognized, and the item failed in a controlled, documented way.

Export formats for Claude chats

The canonical JSON is the archive of record: lossless, versioned, and hashable, suitable for long-term storage or your own scripts. Markdown keeps code blocks and tables readable for notes and documentation. TXT opens anywhere and indexes well in desktop search. HTML renders each conversation as a self-contained, browsable page.

Bulk jobs bundle the selected formats into one ZIP with deterministic, sanitized file names and a versioned manifest.json containing the validation report. PDF is not available yet; it stays out of the product until it passes a release gate covering very long threads, tables, and code blocks.

Which format should you keep? For an archive of record, JSON. For reading and quoting in notes or documentation, Markdown. For sharing a single conversation with someone who just wants to read it, HTML. Many users keep JSON plus one readable format; the ZIP can carry all of them in one job, so there is no need to choose only one.

Permissions and local processing

ChatVault requests the claude.ai host permission only when you enable the Claude platform. It never asks for access to all websites, never uses cookie permissions, and never collects credentials or tokens. Revoking the permission unregisters the Claude content scripts; other platforms you enabled keep working.

The settings page shows the permission state of every platform side by side, so you can confirm at a glance exactly which sites the extension can touch before you run anything.

You must be signed in to Claude yourself, and the extension can only read conversations your account can already open. It does not bypass authentication, call private APIs from a server, or recover deleted chats. Extraction, validation, rendering, and ZIP packaging all run on your device, and conversation content never leaves it.

If Claude changes its page structure, the adapter does not guess. It reports a controlled unsupported state, the rest of the job continues, and the affected chats are flagged for a later run once the adapter is updated. A platform change should cost you a retry, not an archive.

Frequently asked questions

Can I export all my Claude chats at once?

Yes. The scan enumerates every conversation the Claude interface lists for your account, including handling lazy-loaded lists, and you can select everything in one action. One job then exports the selection into a single ZIP archive with a manifest.

What happens if a Claude conversation is very long?

ChatVault drives the loading behavior needed to reveal the full history, then checks completeness. If it cannot prove the thread loaded completely, the conversation is marked incomplete in the manifest with the reason, so you find out at export time instead of months later.

Which formats can I export Claude conversations to?

Canonical JSON, Markdown, TXT, and HTML, packaged together in a ZIP with a versioned manifest and validation report. JSON is the lossless archive; Markdown and HTML are the readable options. PDF is not available yet.

Why does an exported chat say warning or incomplete?

Warning means the message body is intact but something was degraded, for example an unsupported attachment preserved as a structured reference. Incomplete means the adapter could not prove all messages loaded. Both states come with a reason in the manifest, and you can retry the item from the side panel.

Does ChatVault send my Claude conversations to a server?

No. There is no ChatVault backend. All extraction and rendering happens locally in your browser, and conversation content is never transmitted, logged, or included in telemetry. Optional diagnostics contain only status codes, versions, and error categories.

Do I need to stay signed in to Claude?

Yes. The extension reads the same claude.ai pages you can already view, so an authenticated session must be present in the browser. If a session expires mid-job, the adapter stops conservatively and the job can be resumed after you sign in again.

Export your Claude history with confidence

Install ChatVault and build a complete, verifiable archive of your Claude conversations on your own device.