agarwalvishal/claude-chat-exporter
One-click, privacy-first exporter for Claude.ai chats — clean Markdown with artifacts and attachments, ready for Obsidian and RAG.
Claude Chat Exporter – 是什么
一个小型开源浏览器脚本,可将你在 Claude.ai 上的任意对话导出为干净的 Markdown 文件。它完全在你的浏览器中运行(无需服务器),直接从 Claude 的私有 API 获取 Claude 生成的原始 Markdown,并将结果本地保存。
为何存在
- 网页 UI 仅显示长对话的一小部分窗口,且依赖脆弱的 CSS 选择器来实现复制按钮。
- 通过 UI 导出可能会遗漏工具输出、文件、图表或附件。
- 对于 Obsidian 或检索增强生成(RAG)管道等知识库工具,你需要结构良好、元数据丰富的 Markdown 文档。
核心功能
| 功能 | 你将获得 |
|---|---|
| 一键书签工具 | 将按钮拖到书签栏,打开一个 Claude 对话,点击它 → 一个 .md 文件会自动下载。 |
| 完美 Markdown 保真度 | 从 API 读取 Claude 的 源 Markdown,无需 HTML 转换,因此表格、数学公式、代码等均字节级精确。 |
| 完整元素支持 | 表格、LaTeX 数学公式、代码块、嵌套列表、链接、标题、工具输出、创建的文件、图表/图示(作为 fenced code)、所有附件。 |
| Obsidian 与 RAG 就绪输出 | YAML 前置元数据(title, source, model, exported)加上每轮的 # Human / # Claude 标题,非常适合笔记整理或用于检索的分块处理。 |
| 时间戳 | 来自 Claude API 的每条消息时间戳。 |
| 智能文件名 | 使用 API 提供的对话标题(回退为 claude_conversation.md)。 |
| 隐私优先 | 无后端,无追踪;唯一网络请求是向 Claude 自身 API 的一次认证调用。 |
| 对 UI 变化具有鲁棒性 | 基于稳定的数据契约工作,而非 CSS 选择器。 |
工作原理(简要)
- 获取 – 调用
GET /api/organizations/{orgId}/chat_conversations/{conversationId}(同源,使用你的会话 Cookie)。响应包含对话标题、模型和每条消息。 - 排序 – 通过从
current_leaf_message_uuid向上遍历parent_message_uuid链接,重建当前对话树分支,然后反转列表。 - 提取 – 按顺序遍历每条消息的
content块,输出原始text块,并将特殊tool_use块(工具输出、create_file、visualize小部件)渲染为带标签的 fenced code。 - 构建 Markdown – 添加 YAML 前置元数据,为每轮添加
# Human — …/# Claude — …标题,插入时间戳,并放置附件(图片嵌入,文本文件块引用,其他文档链接)。 - 下载 – 触发浏览器下载组装好的
.md文件。
使用方法
- 书签工具 – 访问安装页面,将「📥 Claude Export」按钮拖到书签栏,打开一个 Claude 对话,点击书签。脚本会自动更新。
- 控制台模式 – 复制
claude-chat-exporter.js源码,粘贴到 Claude 对话页面的浏览器开发者控制台,按 Enter。脚本会显示一个微型状态框,然后下载文件。
隐私与安全
- 完全在客户端运行;没有任何数据发送到作者的服务器。
- 唯一的网络请求是向 Claude 自身后端的认证 GET 请求(与网页 UI 已执行的请求相同)。
- 下载后不存储任何数据;书签工具的更新检查仅获取公开脚本文件。
限制
- 仅在你登录状态下使用 Claude Web UI 时有效。
- 依赖 Claude 的 未公开内部 API – 重大变更将需要脚本更新。
- 不导出二进制附件数据(图片/PDF 仅链接,不打包),并跳过部分工具调用(网络搜索、bash 等)。
- 需要浏览器启用 JavaScript。
谁可能使用它
- 希望保留 Claude 会话可复现记录的研究人员或开发者。
- 使用 Obsidian、Notion 等工具构建知识库的人。
- 任何需要干净、带时间戳、带元数据的 Markdown 的 RAG 管道构建者。
- 本项目采用 MIT 许可证,由作者维护;赞助有助于保持其与 Claude 不断演进的 API 同步。
相关
- 项目
- 项目
- 项目
- 项目
- 项目