Lightweight Chrome extension for saving ChatGPT conversations as clean Markdown. It injects a floating “Export chat as Markdown” button on chatgpt.com and can also be triggered from the extension icon. The export keeps role labels, cleans up repetitive UI strings, and prepends useful metadata (title, URL, timestamp).
- Converts rendered chat messages to Markdown via
turndown+ GFM plugin. - Deduplicates identical consecutive messages and strips noisy UI phrases.
- Formats exports with per-role sections (user text quoted, assistant answers as blocks).
- Downloads the Markdown file directly in the browser with a document title–based filename.
- Works on chatgpt.com without extra configuration.
- Install dependencies (pnpm recommended):
pnpm install # or: npm install - Build the bundled background and content scripts (also packages a ZIP under
deployment/):Outputs land inpnpm build
dist/background.js,dist/contentScript.js, and a versioned archive indeployment/.
- Open
chrome://extensions. - Toggle Developer mode.
- Click Load unpacked and select the
dist/folder (generated after running the build). - Ensure the extension is enabled; rebuild + reload when you change code.
- While on ChatGPT, click the browser action icon or use the injected button in the lower-right corner.
- The content script collects messages (
[data-message-author-role]nodes), converts them to Markdown, and triggers a download named after the conversation title. - User prompts are exported as blockquotes, assistant replies as standard Markdown, giving you a ready-to-share transcript.
- Build tooling relies on
esbuild(seepackage.json) with TypeScript sources undersrc/. pnpm-workspace.yamllimits built dependencies toesbuild, keeping install size minimal.- The build copies
manifest.jsonintodist/; load the extension from that folder or use the ZIP indeployment/for distribution.