Export/copy current Yuanbao conversation and export all conversations as ZIP (MD/JSON/DOCX)
多站点 AI 对话导出工具包 — 基于 Tampermonkey Userscript 的可扩展多平台架构
项目已从 Yuanbao 专用脚本重构为 V2 架构,支持通过适配器扩展多个 AI 平台。当前 Yuanbao 支持完整(L1),ChatGPT 已实现骨架(L2,待实际页面验证),其他平台规划中。
状态: Alpha — 核心架构完成,主要功能可用,部分特性仍在开发中。当前产品形态为 Tampermonkey Userscript。
Alpha 发布就绪: Yuanbao 已达到 Alpha 发布标准(55 个 Golden 测试通过,文档和工具链完整)。详见 docs/YUANBAO_ALPHA_READINESS.md
| 平台 | 适配器 | 标准化器 | 导出器 | 状态 |
|---|---|---|---|---|
| 腾讯元宝 (Yuanbao) | ✅ | ✅ | ✅ | L1 - 完整支持 |
| ChatGPT | ✅ | ✅ | ⚠️ | L2 - 骨架完成 |
| Kimi | ✅ | ✅ | ⚠️ | L2 - 骨架完成 |
| 豆包 | ✅ | ✅ | ⚠️ | L2 - 骨架完成 |
| Claude | ✅ | ✅ | ⚠️ | L2 - 骨架完成 |
| 通义千问 | — | — | — | L3 - 规划中 |
| DeepSeek | — | — | — | L3 - 规划中 |
| 文心一言 | — | — | — | L3 - 规划中(待定) |
当前 Yuanbao 为唯一 L1 支持平台。ChatGPT、Kimi、豆包、Claude 为 L2 状态(骨架完成,待验证)。其他平台详见 docs/CN_PLATFORM_MATRIX.md 和 docs/ALPHA_STATUS.md。
userscripts/chat-export.v2.user.js 的 Raw 页面,点击安装# 克隆仓库
cd chat-export-toolkit
# 安装依赖
bun install
# 开发模式(监听构建)
bun run dev
# 生产构建
bun run build
# 类型检查
bun run typecheck
构建产物位于 userscripts/chat-export.v2.user.js。
chat-export-toolkit/
├── src/
│ ├── index.ts # 主入口 (ChatExportToolkit 类)
│ ├── types/ # 统一类型定义 (Conversation, Message 等)
│ ├── core/ # 核心接口与实现
│ │ ├── interfaces.ts # IPlatformAdapter, INormalizer, IExporter 等
│ │ ├── store.ts # 存储层 (BrowserStore, MemoryStore)
│ │ ├── runtime.ts # 运行时桥接 (跨 browser/node/userscript)
│ │ └── interceptor.ts # API 请求拦截器
│ ├── adapters/ # 平台适配器层
│ │ ├── base.ts # BasePlatformAdapter 基类
│ │ ├── yuanbao.ts # 元宝适配器 (L1)
│ │ └── chatgpt.ts # ChatGPT 适配器 (L2)
│ ├── normalizers/ # 标准化层
│ │ ├── base.ts # BaseNormalizer 基类
│ │ ├── yuanbao.ts # 元宝标准化器 (L1)
│ │ └── chatgpt.ts # ChatGPT 标准化器 (L2)
│ ├── exporters/ # 导出层
│ │ ├── base.ts # BaseExporter 基类
│ │ ├── json.ts # JSON 导出器
│ │ ├── markdown.ts # Markdown 导出器
│ │ └── docx.ts # DOCX 导出器
│ ├── ui/ # UI 组件层
│ │ ├── base.ts # BaseUI 基类
│ │ └── components.ts # FAB 按钮、导出面板等
│ └── utils/ # 通用工具函数
├── fixtures/ # 示例数据与测试文件
├── userscripts/ # 构建产物 (Tampermonkey Userscript)
├── docs/ # 技术文档
│ ├── PRD.md # 产品需求文档
│ ├── ARCHITECTURE.md # 架构说明
│ ├── ADAPTERS.md # 适配器开发指南
│ └── ...
├── package.json
├── tsconfig.json
└── vite.config.ts
页面加载
↓
RuntimeBridge 初始化 (环境检测)
↓
Store 初始化 (localStorage)
↓
平台检测 (detectPlatform)
↓
Adapter → Normalizer → Exporter 初始化
↓
Interceptor 安装 (捕获 API 请求)
↓
UI 初始化 (FAB + Panel)
↓
等待用户操作
// 平台适配器
interface IPlatformAdapter {
detect(): boolean;
getConversation(id?: string): Promise<RawConversation>;
listConversations(): Promise<RawConversation[]>;
}
// 标准化器
interface INormalizer {
normalizeConversation(raw: RawConversation): Promise<Conversation>;
normalizeMessage(raw: RawMessage): Promise<Message>;
}
// 导出器
interface IExporter {
exportConversation(conv: Conversation, options: ExportOptions): Promise<ExportResult>;
}
详细架构文档见 docs/ARCHITECTURE.md。
exportAllConversations() 当前返回 stub 错误,ZIP 打包逻辑待实现欢迎提交 Issue 和 Pull Request!
当前优先任务(v0.7.x - v0.8.x):
详见 docs/ALPHA_STATUS.md 了解完整路线图。
MIT License
本项目起源于腾讯元宝的对话导出脚本 (V1),于 2026 年 3 月重构为 V2 架构。V2 的核心目标是:
当前版本: v0.7.0-alpha.1
产品形态: Tampermonkey Userscript (userscripts/chat-export.v2.user.js)
目前处于 Alpha 阶段 — 核心架构已完成,主要功能可用,但部分特性(如批量导出、更多平台支持)仍在开发中。欢迎试用和反馈,但请勿在生产环境中依赖。
详见 docs/ALPHA_STATUS.md 了解当前状态和已知限制。