Skip to content
 
 

Repository files navigation

ChatGPTExporter

面向学习复盘的、本地优先的 ChatGPT 对话提取与归档工具。

ChatGPTExporter 功能首页

ChatGPTExporter 是一个 Chrome / Chromium 扩展。它可以从你已经登录的 chatgpt.com 页面读取对话,把选中的学习记录整理成 Markdown,并保存到你指定的本地文件夹。

它既能做轻量的“每日增量提取”,也保留了可恢复、可验证的“完整归档”。账号凭据始终留在 ChatGPT 页面中;扩展没有后端服务,也不收集遥测数据。

本项目是独立社区项目,与 OpenAI 没有隶属或官方合作关系。ChatGPT 的网页接口可能变化,升级后建议先运行连接诊断。

主要功能

1. 每日增量提取:为每日复盘准备原始材料

这是日常使用的主要入口,适合每天学习结束后使用。

  • 默认列出最近24小时有更新的普通对话、归档对话和项目对话,也能切换查看更早尚未提取的内容。
  • 先只读取对话目录;只有勾选后,才读取对应对话正文,减少不必要的等待。
  • 每个选中对话默认只提取最近24小时内、且位于上次确认位置之后的用户消息和 ChatGPT 最终回答;第一次提取长对话也不会自动包含全部历史。
  • 只有主动选择“重新包含历史内容”时,才提取所选对话的完整当前分支。
  • 支持预览、复制、下载 Markdown,以及直接保存到固定的本地复盘目录。
  • 只有点击“确认本次提取完成”后才更新进度;误操作时可以重新包含历史内容。
  • 图片不打包进增量 Markdown,改为保留清晰占位说明,避免图片下载拖慢每日流程。

插件生成的是忠实的对话原文,不会擅自替你概括。你可以再把 Markdown 交给 Codex、ChatGPT 或自己的复盘流程,生成“今天学了什么、错误思路、薄弱点、闭卷检测题、明日计划”等内容。

推荐的本地目录结构:

复盘目录/
├─ 2026-08/
│  └─ 2026-08-31/
│     ├─ 00_今日对话原文.md
│     └─ 01_每日复盘.md
├─ 周复盘/
│  └─ 2026-08-25至2026-08-31/
│     └─ 00_每周复盘材料.md
└─ 00_工具状态/
   ├─ 每日增量进度.json
   └─ 最近诊断.txt

其中 00_今日对话原文.md 由扩展生成;01_每日复盘.md 是你检查、提炼后保存的复盘结果。

2. 每周复盘材料

  • 从本地复盘目录中读取最近 7 天的 01_每日复盘.md。
  • 显示哪些日期已经找到、哪些日期缺少复盘,避免漏天。
  • 合并成一份每周复盘材料,并附带可继续交给 AI 整理的提示词。
  • 支持预览、复制、下载和保存到本地 周复盘 文件夹。

3. 完整归档

完整归档与每日复盘不是同一个功能。它更像“账号资料备份”,适合偶尔运行,而不是每天运行。

它可以盘点并保存当前账号有权限访问的:

  • 普通、已归档、项目和共享对话;
  • 所选工作区的独立历史;
  • 对话完整节点图、分支和原始数据;
  • 记忆、自定义指令、设置及工作区元数据;
  • 在 ChatGPT 允许下载时,对话引用的上传文件、生成图片、音视频和项目文件。

归档支持暂停、继续、重试和本地重新验证。远端后来消失的对话不会直接从旧归档中删除,而会被标记为缺失。最终结果会区分“完整”“对话完整但附件不完整”和“未完成”。

如果你的目标只是每天选几段学习对话做复盘,请使用“每日增量提取”;只有需要备份整个账号历史时,才使用“完整归档”。

4. 连接与保存诊断

诊断页会分别检查:

  • 是否找到已登录的 ChatGPT 标签页;
  • 扩展中继、页面桥接和登录会话是否正常;
  • 工作区、对话列表、对话正文和项目接口是否可用;
  • 所选本地目录是否仍有写入权限;
  • 一次安全的样本读取是否成功。

诊断结果可以复制或保存,便于区分“标签页没找到”“页面通信失败”“登录失效”“接口失败”和“本地目录权限丢失”。

隐私说明

  • 没有后台服务器、账号上传或遥测统计。
  • 登录凭据和请求认证保留在正常的 chatgpt.com 页面环境中。
  • 浏览器缓存只保存对话 ID、标题、创建时间和更新时间,不保存完整对话正文。
  • 增量进度只记录必要的 ID、时间和本地状态,不记录完整聊天内容。
  • 对话内容只会写入你主动选择的本地目录,或由你手动复制、下载。

更完整的设计说明见 隐私模型。

从源码安装

需要 Node.js 20 或更高版本,以及支持 Manifest V3 和 File System Access API 的 Chrome / Chromium 浏览器。

先克隆你自己的 fork:

git clone https://github.com/<你的用户名>/ChatGPTExporter.git
cd ChatGPTExporter
npm ci
npm run check
npm run build

然后:

  1. 打开 chrome://extensions。
  2. 开启右上角“开发者模式”。
  3. 点击“加载已解压的扩展程序”。
  4. 选择项目中的 dist/extension 目录。
  5. 保持一个已经登录的 https://chatgpt.com/ 页面打开,再点击扩展图标进入首页。

每次重新构建后,需要回到 chrome://extensions 点击扩展的“重新加载”,并刷新 ChatGPT 页面。

每日使用方法

  1. 打开已登录的 ChatGPT 页面。
  2. 进入扩展首页,选择“每日增量提取”。
  3. 点击“查找 ChatGPT 标签页”,选择要使用的工作区。
  4. 选择本地复盘目录。
  5. 勾选今天需要复盘的对话,再生成 Markdown 预览。
  6. 检查内容,保存 00_今日对话原文.md。
  7. 确认无误后,点击“确认本次提取完成”。
  8. 将原文 Markdown 交给你的复盘工具,完成后保存为 01_每日复盘.md。

开发与检查

npm test
npm run typecheck
npm run privacy:check
npm run build

端到端测试还需要本机提供 OpenSSL:

npm run test:e2e

项目没有运行时 npm 依赖;Playwright、Vitest、TypeScript 和 esbuild 仅用于开发。贡献代码时请使用合成测试数据,并通过隐私扫描。详见 CONTRIBUTING.md。

当前限制

  • 这是源码安装版本,尚未发布到 Chrome Web Store。
  • 它依赖 ChatGPT 的非公开网页接口;ChatGPT 页面改版后可能需要兼容性更新。
  • 它用于导出和整理,不提供把归档重新导入 ChatGPT 的功能。
  • 已删除、无权限或服务端未返回的内容无法导出。
  • 每日增量模式不下载图片;需要保存附件时请使用完整归档。
  • 不建议同时运行多个导出任务访问同一个账号。

遇到问题可先阅读 故障排查,再从首页运行“连接与保存诊断”。

技术文档

项目来源与许可证

本项目基于 siraht/ChatGPTExporter 修改和扩展,并保留原项目的 MIT 许可证与版权声明。仓库中关于 GrokExporter 及其他上游项目的借鉴范围和版本记录,见 UPSTREAM_RESEARCH.md。

English summary

ChatGPTExporter is a local-first Chromium extension for incremental ChatGPT study exports, daily and weekly Markdown review workflows, resumable full-account archives, and connection diagnostics. It has no backend or telemetry, and writes chat content only to a user-selected local directory.

About

本地优先的 ChatGPT 每日增量提取、学习复盘与完整归档工具

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages