Export AI chats to clean Markdown, directly from the page.
ChatMark is a lightweight browser extension for saving long AI conversations without copy-paste cleanup. It currently supports ChatGPT and is built around a small adapter/converter pipeline so more AI sites and output formats can be added without rewriting the export flow.
- One-click in-page export on
https://chatgpt.com/ - Full conversation export through ChatGPT's authenticated conversation API
- Markdown output with headings, lists, quotes, code blocks, links, images, citations, and thinking blocks
- Manifest V3 extension with no backend service
- Adapter/converter architecture for future Claude, Gemini, and other exporters
Download the latest zip from GitHub Releases, unzip it, and load the extracted folder as an unpacked extension.
Or build it locally:
pnpm install
pnpm run buildOpen chrome://extensions or arc://extensions, enable Developer mode, click Load unpacked, and select dist/.
More details: docs/INSTALL.md
- Open a ChatGPT conversation.
- Click the floating Export button.
- Save the generated Markdown file.
The extension uses your active browser session on ChatGPT. It does not require a separate token, account setup, or external server.
pnpm install
pnpm run check
pnpm run packageUseful scripts:
pnpm run build- build the unpacked extension intodist/pnpm run lint- run Antfu ESLint rulespnpm run test- run Vitestpnpm run typecheck- run TypeScript without emitting filespnpm run package- buildrelease/chatmark-v0.1.0.zip
src/adapters/ site-specific extraction, currently ChatGPT
src/converters/ internal conversation model to output formats
src/content/ injected page controls and message handling
src/export/ export orchestration, downloads, filenames
src/model/ shared conversation types
src/popup/ extension popup UI
The core flow is:
ChatGPT adapter -> Conversation model -> Markdown converter -> browser download
- Claude adapter
- Gemini adapter
- Export formats beyond Markdown
- Optional asset bundling for downloaded images
MIT