一键导出 ChatGPT 聊天记录,支持 JSON / Markdown / HTML,并自动打包为 ZIP 保存到本地。
- ✅ 自动批量导出对话,包括归档记录
- ✅ 支持 JSON、Markdown、HTML 多种格式
- ✅ 自动生成可阅读的 HTML 页面
- ✅ 支持 ChatGPT Team / Enterprise Workspace
- ✅ 支持 Projects / Gizmos 项目会话
- ✅ ZIP 本地打包,不向第三方服务器上传导出内容
常见选择:
- Chrome / Edge:Tampermonkey
- Firefox:Tampermonkey
- Safari:需要可运行 Userscript 的 Safari 扩展;不同扩展和 Safari 版本的兼容情况可能不同
适合只需要稳定、可靠全量导出的用户。
稳定版继续保持原有逻辑;2026 年 8 月这一轮维护 没有修改稳定版代码。
适合需要 Projects、最近 N 条、团队空间增强、HTML 优化和大批量导出容错的用户。
文件:chatgpt-exporter-beta.user.js
-
🧮 最近 N 条
- 可导出全部根目录对话,或只导出最近 N 条
- Active 与 Archived 会话会一起参与“最近 N 条”排序
- Projects 不受最近 N 条限制,勾选后按项目扫描
-
🗂️ Projects / Gizmos 完整性增强
- 支持项目会话分页扫描
- 兼容
cursor/next_cursor - 兼容
has_more/hasMore - 带重复 cursor 防死循环
- 对仍要求首个
cursor=0的接口提供回退
-
🛡️ 429 / 服务器错误容错
- 全局请求节流
- 识别
Retry-After - HTTP 429 / 5xx 指数退避重试
- 触发 429 后动态降低请求速度
- 单条对话失败不会让整个 ZIP 直接报废
-
📋 导出失败报告
- ZIP 内自动生成
_export-report.txt - 同时生成
_export-report.json - 记录请求总数、成功数、失败数以及失败会话 ID / 原因
- ZIP 内自动生成
-
🌐 HTML 导出升级
- 标题、有序 / 无序列表、引用、Markdown 表格
- 链接与图片
- fenced code block / 行内代码
- 加粗、斜体、删除线
- 数学公式记号保留为更清晰的可读样式
- 支持浅色 / 深色系统主题
- Beta.3 进一步修正行内代码、数学记号、链接和图片在 Markdown 后处理时被误解析的问题
-
🧵 对话线程解析增强
- 有
current_node时沿父节点还原当前可见线程 - 减少分支对话按时间简单排序导致的错序
- 有
-
🏢 团队空间
- 支持 Workspace ID
- 尝试从页面请求 / 页面数据中自动检测 Workspace ID
-
🍎 Safari 侧兼容改进
- 下载后延迟释放 Blob URL,降低 Safari 尚未消费文件时过早失效的概率
- 脚本本身使用标准 Web API;实际能否运行仍取决于 Safari 版本和 Userscript 扩展
- 登录 chatgpt.com
- 等待页面出现右下角
Export按钮 - Beta 版点击按钮后选择:个人空间 / 团队空间、全部 / 最近 N 条、是否导出 Projects、JSON / Markdown / HTML
- 点击“开始导出”
- 等待脚本扫描、下载会话详情并打包 ZIP
- 如果部分对话最终失败,请查看 ZIP 中的
_export-report.txt或_export-report.json
chatgpt_personal_backup_2026-08-11_full_with_projects.zip
├── 对话A_xxx.json
├── 对话A_xxx.md
├── 对话A_xxx.html
├── Project_工作项目1/
│ ├── 对话1_xxx.md
│ └── 对话2_xxx.html
├── _export-report.txt
└── _export-report.json
| 文件类型 | 说明 |
|---|---|
.json |
ChatGPT 原始会话数据 |
.md |
Markdown 文本 |
.html |
经过格式化的可阅读网页 |
_export-report.* |
Beta 导出结果与失败明细 |
| 项目文件夹 | 对应 ChatGPT Project / Gizmo 名称 |
- 必须先登录 ChatGPT
- 如果 Access Token 暂时无法获取,可刷新页面并先打开一个对话再试
- 大量历史记录导出会主动降低速度,以减少 HTTP 429
- ChatGPT 内部接口可能随产品更新发生变化;若出现新兼容问题,请提交 Issue
- 所有导出内容在浏览器本地处理;脚本不会主动上传到第三方服务器
- Team / Enterprise 用户需确保 Workspace ID 与账号权限有效
详见 CHANGELOG.md。
本项目遵循 MIT License,可自由使用、修改和分发。
Copyright © 2025
原始脚本作者:Alex Mercer, Hanashiro, WenDavid
如果项目对你有帮助,欢迎:
- 🌟 Star
- 🐛 提交 Issue
- 🔄 Fork 并贡献改进
Export ChatGPT conversations in one click to JSON, Markdown, or HTML, then package everything into a ZIP file locally in your browser.
- ✅ Batch export conversations, including archived chats
- ✅ JSON, Markdown, and HTML output
- ✅ Readable formatted HTML export
- ✅ ChatGPT Team / Enterprise Workspace support
- ✅ Projects / Gizmos conversation support
- ✅ Local ZIP generation; exported conversation content is not uploaded to third-party servers
Common choices:
- Chrome / Edge: Tampermonkey
- Firefox: Tampermonkey
- Safari: use a Safari extension capable of running userscripts; compatibility may vary by extension and Safari version
Recommended for users who only need reliable full-history export.
File: chatgpt-exporter.user.js
The stable script keeps its existing behavior. The August 2026 maintenance cycle did not modify the stable userscript.
Recommended for Projects support, recent-N export, enhanced workspace handling, improved HTML output, and better reliability during large exports.
File: chatgpt-exporter-beta.user.js
-
🧮 Recent N conversations
- Export all root conversations or only the most recent N
- Active and Archived conversations are considered together when selecting the most recent N
- Projects are not limited by the recent-N setting and are scanned separately when enabled
-
🗂️ Projects / Gizmos completeness
- Paginated project conversation scanning
- Supports both
cursor/next_cursor - Supports both
has_more/hasMore - Repeated-cursor protection to avoid infinite loops
- Fallback for endpoints that still expect the first request to use
cursor=0
-
🛡️ HTTP 429 / server error handling
- Global request pacing
Retry-Aftersupport- Exponential backoff for HTTP 429 / 5xx responses
- Dynamic slowdown after rate limiting
- A single failed conversation no longer invalidates the entire ZIP export
-
📋 Export failure reports
- Automatically creates
_export-report.txt - Also creates
_export-report.json - Records total, successful, and failed exports plus failed conversation IDs and reasons
- Automatically creates
-
🌐 Improved HTML export
- Headings, ordered / unordered lists, blockquotes, and Markdown tables
- Links and images
- Fenced code blocks and inline code
- Bold, italic, and strikethrough text
- More readable preservation of math notation
- Light / dark system theme support
- Beta.3 further fixes cases where inline code, math notation, links, and images could be misinterpreted during Markdown post-processing
-
🧵 Conversation thread reconstruction
- Follows parent links from
current_nodewhen available - Reduces incorrect ordering in branched conversations
- Follows parent links from
-
🏢 Workspace support
- Workspace ID support
- Attempts to detect Workspace IDs from page requests and page data
-
🍎 Safari-side compatibility improvements
- Delays Blob URL revocation after download to reduce premature invalidation in Safari
- The script uses standard Web APIs, but actual execution still depends on the Safari version and userscript extension
- Sign in to chatgpt.com
- Wait for the
Exportbutton to appear in the lower-right corner - In Beta, choose Personal / Team Workspace, All / Recent N, whether to include Projects, and JSON / Markdown / HTML
- Click Start Export
- Wait while the script scans conversations, downloads details, and builds the ZIP
- If some conversations still fail, check
_export-report.txtor_export-report.jsonin the ZIP
chatgpt_personal_backup_2026-08-11_full_with_projects.zip
├── Conversation_A_xxx.json
├── Conversation_A_xxx.md
├── Conversation_A_xxx.html
├── Project_Work_1/
│ ├── Conversation_1_xxx.md
│ └── Conversation_2_xxx.html
├── _export-report.txt
└── _export-report.json
| File type | Description |
|---|---|
.json |
Raw ChatGPT conversation data |
.md |
Markdown text |
.html |
Formatted readable webpage |
_export-report.* |
Beta export summary and failure details |
| Project folder | Corresponds to a ChatGPT Project / Gizmo name |
- You must be signed in to ChatGPT first
- If the Access Token cannot be obtained temporarily, refresh the page and open a conversation before retrying
- Large exports intentionally run more slowly to reduce HTTP 429 rate limits
- ChatGPT internal endpoints may change as the product evolves; please open an Issue if a new compatibility problem appears
- Exported data is processed locally in the browser and is not intentionally uploaded to third-party servers by this script
- Team / Enterprise users must ensure the Workspace ID and account permissions are valid
See CHANGELOG.md.
This project is released under the MIT License and may be used, modified, and distributed freely.
Copyright © 2025
Original script authors: Alex Mercer, Hanashiro, WenDavid
If this project is useful to you, you are welcome to:
- 🌟 Star the repository
- 🐛 Open an Issue
- 🔄 Fork the project and contribute improvements