Chrome extension for exporting conversations from Gemini and ChatGPT as Markdown, JSON, or plain text. The extraction layer is platform-aware, while formatting, download, and packaging stay shared.
- Gemini conversation export
- ChatGPT conversation export
- Markdown, JSON, and TXT output
- Dialog-only export on both platforms
- Gemini canvas export
- Gemini generated-image export with optional visible watermark removal
- Thread anchor panel for long conversations
- English and Chinese popup UI
- Extracts user messages, assistant responses, and Gemini thought blocks when available
- Supports
Dialog,Canvas, andBoth - Can export generated images
- Can optionally attempt visible watermark removal during image export
- File naming prefers Gemini page metadata and falls back to the first user prompt
- Extracts turns from
article [class*="group/turn-messages"] - Detects user messages via
.user-message-bubble-color - Supports
Dialogexport - Reuses the shared anchor panel and export pipeline
- File naming prefers
document.title, which maps better to ChatGPT thread titles than DOM headings
The codebase is split into two layers:
-
Platform layer
- URL detection
- platform capability flags
- DOM selectors
- title extraction rules
- scroller and anchor hints
-
Shared export layer
- markdown conversion
- export formatting
- file download
- popup settings
- floating export UI
This keeps Gemini-specific and ChatGPT-specific DOM logic out of the shared export pipeline.
- Clone this repository.
- Open
chrome://extensions/. - Enable
Developer mode. - Click
Load unpacked. - Select this repository directory.
- Open a supported conversation page on Gemini or ChatGPT.
- Open the extension popup and choose:
- language
- export format
- export type
- Gemini watermark-removal option if needed
- Click the floating
Exportbutton on the page. - Wait for the download to complete.
Dialog: exports the conversation turnsCanvas: exports Gemini canvas content onlyBoth: combines Gemini dialog and canvas content when both exist
For ChatGPT, Canvas and Both currently degrade to dialog-only behavior because ChatGPT canvas/artifact support has not been implemented in this extension.
- Rendered on supported pages as a right-side panel
- Collapsed by default
- Shows turn snippets for quick navigation
- Uses platform-specific message sources under a shared UI
gemini-export/
├── manifest.json
├── assets/
├── src/
│ ├── background/
│ ├── content/
│ │ └── modules/
│ │ ├── platforms.js
│ │ ├── conversation_extractor.js
│ │ ├── project_utils.js
│ │ ├── scroller.js
│ │ └── ...
│ ├── popup/
│ └── lib/
├── tests/
└── README.md
Install test dependencies once:
npm installRun tests:
npm test- Refresh the unpacked extension in
chrome://extensions/ - Verify export on a Gemini conversation
- Verify export on a ChatGPT conversation URL like
https://chatgpt.com/c/<thread-id> - Check that ChatGPT filenames use the page title
- All extraction runs locally in the browser.
- No conversation data is uploaded by the extension.
- ChatGPT DOM structure can change without notice; selectors are centralized so future updates stay local to the platform layer.
Inspired by gemini_chat_export.
