一键把 AI 会话导出成逐轮 Markdown 的油猴脚本。支持 Claude(分享页)、ChatGPT、Gemini、Grok。
English summary at the bottom.
需要先装一个用户脚本管理器:Tampermonkey、Violentmonkey 或 脚本猫。
然后任选一个来源安装:
三个来源是同一份代码,Greasy Fork 和脚本猫都从本仓库自动同步。
打开一条会话,页面右下角会出现两个按钮:
.md 文件导出过程中别滚动或切换页面,长会话可能要等几十秒。
| 站点 | 支持的页面 | 说明 |
|---|---|---|
| Claude | 仅分享页 claude.ai/share/* |
普通会话页不支持,先点「Share」生成分享链接再导出 |
| ChatGPT | chatgpt.com、chat.openai.com 的会话页 |
虚拟列表,会从顶到底逐屏滚动收集;分享页未实测 |
| Gemini | gemini.google.com 的会话页和分享页 |
|
| Grok | grok.com 的会话页和分享页 |
不支持 X(Twitter)里的 Grok |
# 会话标题
- **日期**:2026-09-22
- **参与者**:User / ChatGPT
- **来源**:ChatGPT(https://chatgpt.com/c/...)
---
## 第 1 轮
**User:**
问题……
**ChatGPT:**
*(Thought for 8 seconds)*
回答……
---
## 备注
...
$...$、$$...$$在脚本管理器里编辑脚本,改开头的 CFG:
| 选项 | 默认值 | 作用 |
|---|---|---|
USER_LABEL |
'User' |
你在 Markdown 里的称呼,比如改成 '我' |
REDACT_CONTACTS |
false |
遮挡疑似手机号 / QQ 号 |
AUTO_LOAD |
true |
导出前自动滚动加载早期消息 |
DIAG_BUTTON |
true |
显示「导出诊断数据」按钮 |
DEBUG |
false |
在控制台打印调试日志 |
注意:直接改脚本的话,脚本自动更新时会被覆盖,更新后需要重新改。
[附件:…]。诊断 JSON 不含消息正文,只包含:页面网址和会话标题、识别到的消息数和角色数、几个选择器的命中数、页面上的标签名和类名样本。介意的话,可以在提交前把网址和标题删掉。
tests/ 里是 Playwright 测试:把站点域名的请求拦截到本地模拟页,注入脚本,点击导出,再检查 Markdown 的结构(轮数、角色、公式、代码块、表格、工具小注等)。模拟页包括四个站点的静态页、Gemini 分享页,以及一个只挂载视口附近消息的 ChatGPT 虚拟列表页。
npm install
npx playwright install chromium
npm test
模拟页只能保证转换逻辑正确,不能代替真实页面:改选择器之后,请在真实站点上再试一遍。
各站点的选择器都集中在脚本里的 ADAPTERS,每个站点一个适配器(collect / content / clean / title / noise / tool);HTML → Markdown 的转换逻辑是共用的。欢迎 PR。
MIT © Lord Eve
A userscript that exports AI conversations to turn-by-turn Markdown with one click. Supports Claude (share pages claude.ai/share/* only), ChatGPT, Gemini and Grok (grok.com only).
USER_LABEL in CFG to change your name in the output.