context-attachment-manager
Codex and Claude Code plugin (works in Claude Desktop): choose which past images go to the model with your next message. Unchecked images become placeholders, the conversation goes on, and requests st
翻译准备中
尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
Chrome extension that exports ChatGPT, Codex, Claude and Claude Code conversations to clean Markdown. Pick exactly which messages to keep.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Chrome extension that exports ChatGPT, Codex, Claude and Claude Code conversations to Markdown (or HTML, PDF, plain text and JSON), letting you pick exactly which messages to include.
Website and live demo · Download
chatdown-x.y.z.zip from the latest release and unzip it.chrome://extensions and enable Developer mode.chatdown folder (or this repo, when developing).Works in Chrome and other Chromium browsers (Edge, Brave, Arc).
<details>), times and model, note properties (YAML front matter), and speaker names (default: "You" and the site's name). Options persist.| Site | URL | Method |
|---|---|---|
| ChatGPT | chatgpt.com/c/<id> | Same-origin API (/backend-api/conversation/<id>), falls back to the DOM |
| Claude | claude.ai/chat/<id> | Same-origin API (/api/organizations/<org>/chat_conversations/<id>), falls back to the DOM |
| Codex | chatgpt.com/codex/... | DOM only (best-effort selectors) |
| Claude Code | claude.ai/code/... | DOM only (best-effort selectors) |
The API path exports only the active branch (edited or regenerated alternatives are skipped) and includes thinking, tool calls and tool results, artifacts, and attachments. The DOM path captures what is rendered: text, code, lists, tables, links and math. The panel shows which method was used.
All requests go to the site you are on, using your existing session. Nothing is sent anywhere else.
manifest.json
src/background.js opens the side panel on toolbar click
src/content/parsers.js provider API JSON → normalized conversation (pure)
src/content/html2md.js rendered DOM → Markdown (fallback)
src/content/extractors.js site detection, API fetch, DOM strategies
src/content/content.js message handler for the panel
src/content/onpage.js checkboxes in the chat, synced with the panel over a port
src/shared/markdown.js turn grouping + Markdown rendering (pure)
src/shared/md2html.js Markdown → safe HTML (escapes everything, http(s)/mailto links only)
src/shared/formats.js HTML, PDF, plain text and JSON exports
src/print/ print page used for PDF
src/panel/ side panel UI
dev/harness.html panel in a normal tab with stubbed chrome.* and sample data
dev/og.html source of the social preview image
dev/page-mock.html mock chat page with the on-page checkboxes
site/ landing page (GitHub Pages); its demo runs parsers.js + markdown.js
npm test # parser + renderer unit tests (node:test, no deps)
python3 -m http.server 8765 # then open http://localhost:8765/dev/harness.html[?mode=dom]
npm run site # landing page at http://localhost:8765
npm run package # dist/chatdown-<version>.zip for a release
python3 scripts/make-icons.py # regenerate icons/
The landing page deploys from site/ via .github/workflows/pages.yml on every push to main that touches it.
MIT
After code changes, press reload on the extension card in chrome://extensions.