Skip to content
ChatVault

Export Gemini Chat History in Bulk With Completeness Checks

ChatVault lets you export Gemini chat history in bulk instead of saving conversations one at a time. It scans the Gemini conversations your signed-in account can access, opens each selected thread, loads lazy history before extraction, and records a completeness state for every result.

The archive is created on your own device. Each conversation is normalized into the same versioned JSON model used for ChatGPT and Claude, then rendered as JSON, Markdown, TXT, or HTML and packaged into a ZIP with a manifest. There is no ChatVault account, cloud queue, or server that reads your Gemini prompts and replies.

How to export Gemini chats

The workflow runs in the Gemini tab you already use. A first export follows these steps:

  1. Install ChatVault from the Chrome Web Store.
  2. Enable Gemini and grant the gemini.google.com host permission.
  3. Open a gemini.google.com tab where you are signed in.
  4. Run a scan and wait for the lazy-loaded conversation list to stabilize.
  5. Select all discovered conversations or a filtered subset and choose JSON, Markdown, TXT, or HTML.
  6. Start the export and monitor long-history loading, warnings, failures, and retries in the side panel.
  7. Download the ZIP archive with the conversations and versioned manifest.

ChatVault reads the visible Gemini interface rather than asking for a Google password, cookie, or private server API. You stay signed in to Gemini, enable the platform in the extension, and choose when a scan or export starts. The extension can only process conversations that your own account can open.

Scan your Gemini conversation history

Gemini's conversation sidebar is lazy-loaded. A page may initially mount only a recent group of conversation links while older rows appear as the sidebar is scrolled. A snapshot of the first visible rows is therefore not a complete history scan. ChatVault drives the sidebar loader, accumulates first-seen conversation references across the loading rounds, removes duplicates, and waits for the list to become stable before showing the scan result.

Each conversation reference includes the Gemini URL and title when the page exposes them. The scan does not invent missing metadata. If a title or date is unavailable, the exported manifest keeps the known fields and the conversation receives the appropriate warning instead of being silently relabeled.

After the scan, you can select every discovered conversation or a smaller group. The side panel keeps the scan count, selection, progress, warnings, and failures separate, so a conversation that could not be read does not disappear from the job summary.

Export long Gemini conversations without silent truncation

Long Gemini chats use a virtualized history area that may keep only the most recent turns in the DOM. An exporter that reads the DOM once can produce a short file that looks successful while older messages are missing. ChatVault first waits for the conversation to mount, then drives the Gemini chat history scroller toward the earliest turn and checks that the first-turn marker and message count become stable.

The history loader has a bounded budget. If it reaches the top, extraction can proceed with the loaded history. If loading is interrupted or the budget ends before the earliest history is reached, the result is marked incomplete with a load-interrupted reason. Rendering a file never upgrades an incomplete result to complete. This makes the archive honest about what the browser proved rather than what the exporter hoped was present.

Gemini does not expose a reliable expected message count in every conversation, so completeness is based on the platform-specific loading signals available on the page. Missing timestamps are reported as a warning when Gemini does not render them. Those limitations remain visible in the manifest and can guide a retry from the side panel.

Choose a format for Gemini chats

Every Gemini conversation is first converted to a canonical, versioned JSON document. The readable formats are rendered from that same document, which keeps message order and content consistent across an archive. A ZIP can contain more than one format alongside manifest.json, so you can keep a lossless copy and a convenient reading copy together.

Export Gemini chat to JSON

JSON is the archive of record. It preserves the platform, source conversation ID when available, title, message roles, content blocks, attachment references, adapter version, completeness report, and deterministic content hash. Keep JSON for long-term storage, migration tools, or scripts that need a stable structure rather than presentation markup.

Export Gemini chat to Markdown, TXT, or HTML

Markdown is useful for notes and documentation because code blocks, lists, tables, links, and quotes remain readable. TXT opens in any editor and works well with desktop search. HTML gives each conversation a self-contained page for browsing. PDF is not included: the project has not passed its dedicated long-content PDF release gate, so the page does not promise a format the product has not released.

Gemini code blocks, rich content, and attachments

The Gemini adapter reads user and model turns in document order and preserves extractable text, code blocks, tables, lists, links, and other supported content blocks through the shared schema. Code blocks keep their language information when Gemini exposes it. Attachments the adapter cannot fully process are retained as structured references and reported with a warning; they are not silently discarded from the archive record.

The exact result depends on what the signed-in Gemini page exposes to the browser. ChatVault does not claim to recover hidden, deleted, or inaccessible data, and it does not turn an unsupported page structure into a guessed conversation. Unsupported items remain controlled failures in the manifest so you can retry them after a platform or adapter update.

Local processing and Gemini permissions

ChatVault requests the gemini.google.com host permission only when you enable Gemini. It does not request access to all websites, cookies, passwords, or authentication tokens. The content script runs against the Gemini page you selected, and the permission can be revoked from the extension settings.

Extraction, lazy-history loading, validation, rendering, and ZIP packaging run in the browser. Conversation content is not sent to a ChatVault backend, written to console diagnostics, or included in analytics. Optional diagnostics contain only non-content status information such as versions, counts, timing ranges, and error categories.

A local Vault is available when you choose to retain normalized archives after export. It can search and filter retained conversations, but it is not a replacement for the downloaded ZIP. Keep the exported archive in storage you control, and use the Vault as a convenient local index and preview.

Frequently asked questions

Can I export all my Gemini chats at once?

Yes. Enable Gemini, open a signed-in gemini.google.com tab, run a scan, and select all discovered conversations. ChatVault loads the lazy conversation list before selection and exports the job into a ZIP with a per-conversation manifest.

Can ChatVault export long Gemini conversations?

ChatVault drives Gemini's lazy history loader before extracting a conversation. If the earliest history is reached, it continues with the loaded thread. If loading is interrupted or cannot be proven complete within the bounded budget, the conversation is marked incomplete with the reason instead of being reported as complete.

Which formats can I use for Gemini chat exports?

The current formats are canonical JSON, Markdown, TXT, and HTML, packaged in a ZIP with a versioned manifest. JSON is the lossless archive; Markdown, TXT, and HTML are readable renderings. PDF is not available until its separate release gate passes.

Does Gemini export include code blocks?

Supported Gemini code blocks are preserved as structured content, including their language information when the page exposes it. The exact result depends on the content Gemini renders in the signed-in page.

What happens when Gemini does not expose a timestamp?

The conversation can still be exported, but ChatVault records a missing-timestamp warning rather than inventing a date. The manifest makes that degradation visible for later review.

Do I need to be signed in to Gemini?

Yes. ChatVault reads the Gemini pages your own browser account can access. It does not collect credentials, cookies, or tokens and cannot export conversations hidden from your account.

Does my Gemini conversation leave my device?

No. Extraction, validation, rendering, and packaging are local browser operations. ChatVault has no MVP backend for receiving conversation content, and diagnostics do not contain prompts, replies, titles, URLs, or attachments.

Export your Gemini history locally

Install ChatVault, enable Gemini, and create a completeness-checked archive of the conversations your account can access.