GPT-Conversation-Toolkit
ChatGPT浏览器插件:会话一键导出、搜索跳转、Prompt管理、时间线导航
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
ChatGPT浏览器插件:会话一键导出、搜索跳转、Prompt管理、时间线导航
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
在日常使用 ChatGPT 的过程中,你是否遇到过这样的困境:对话聊了几十轮之后,页面开始变得异常卡顿,想找到之前某一段关键回复却要在漫长的滚动中反复寻找,想把整个对话存档备份却只能逐条复制粘贴——这些看似微小的痛点,实际上严重侵蚀着 AI 对话的使用体验。
ChatGPT Conversation Toolkit 正是为了解决这些问题而诞生的浏览器插件。它由独立开发者 bujue3709 于 2026 年 1 月创建,目前在 GitHub 上拥有 871 颗星,专门为 ChatGPT Web 用户提供会话导出、消息搜索、Prompt 管理、时间线导航和文件夹整理等一站式增强能力。
图1:ChatGPT Conversation Toolkit 插件功能界面
ChatGPT Web 在长对话场景下的性能问题并非新鲜事。当对话超过一定轮次后,页面 DOM 节点数量急剧增长,浏览器的渲染引擎承受越来越大的压力,滚动延迟、响应迟钝等问题接踵而至。bujue3709 作为 ChatGPT 的深度用户,最初只是想要一个简单的「导出对话」功能,但随着使用深入,逐渐发现 ChatGPT 本身也在通过虚拟化列表技术(Virtualized List)来缓解这一问题——于是插件的功能定位也随之演进,从最初的长会话折叠,转向更全面的会话管理工具集。
值得注意的是,2026 年以来的版本更新中,ChatGPT Web 已原生支持虚拟化列表渲染,插件原有的「长会话折叠」功能因此被标记为废弃。插件团队快速响应了这一变化,将核心能力重新聚焦于导出、搜索、Prompt 管理和时间线导航,这一决策体现了开发者的技术敏锐度和产品迭代能力。
点击工具栏的「一键导出」按钮,插件会优先通过 API 获取完整的会话数据,即使页面当前只渲染了部分虚拟化 DOM,也能尽可能覆盖全部历史消息。导出会生成三种格式:
role: content 形式呈现。对于需要保留完整 AI 对话记录的用户来说,这三种格式覆盖了从「机器可读」到「人类可读」的全谱系需求。JSON 格式还包含了 exportedAt 时间戳和 url 字段,为未来跨平台迁移提供了元数据支撑。
搜索功能是插件中最体现技术含量的部分之一。它不再简单地依赖当前 DOM 中的可见消息,而是优先读取 API 会话数据,覆盖更深层的消息记录。当用户输入关键词并跳转时,插件使用「虚拟化跳转逻辑」:先通过 API 定位目标消息 ID,等待 ChatGPT 虚拟化列表将目标 DOM 挂载到视口,再用消息 ID 或文本片段确认目标节点,最终高亮显示。这一机制确保了即使面对数百轮的超级长对话,搜索跳转依然精准可靠。
时间线功能位于对话区域左侧,以节点形式呈现用户消息的时间戳分布。每个节点支持:
3/47)。对于需要频繁回溯对话脉络的用户,时间线提供了一种比线性滚动更高效的「缩略图导航」体验。
Prompt 管理是 AI 时代的高频需求。插件内置的指令库支持:
ChatGPT 的「你的聊天」侧边栏在会话增多后容易变得杂乱。插件在侧边栏顶部插入了一个极简文件夹管理条,支持:
需要注意的是,文件夹信息存储在插件本地,不会同步到 ChatGPT 服务端——这意味着重新安装插件或清除数据后需要重新整理,但同时也保证了数据完全归用户自己掌控。
当 ChatGPT 回复中包含渲染后的 LaTeX 数学公式时,鼠标悬停会在公式附近出现「复制 LaTeX」按钮。点击后复制的是原始 LaTeX 源码而非渲染后的普通文本,极大方便了学术场景下的二次利用。插件文档也特别建议,对于代码块形式的 LaTeX,优先使用 ChatGPT 原生的复制按钮。
从代码组织来看,这是一个典型的功能模块化架构,没有引入任何打包工具(Webpack/Rollup),纯原生 JavaScript 实现。manifest.json 中 content_scripts.js 数组按依赖顺序排列脚本注入顺序,确保全局状态(state.js)、国际化(i18n.js)、工具函数(dom.js、storage.js)在各功能模块之前加载完成。
18 个功能模块各司其职:
conversation-api.js 和 conversation-index.js 负责与 ChatGPT API 层交互,捕获完整会话数据。virtualizer-bridge.js + virtualized-jump.js 处理虚拟化列表的跳转逻辑,是搜索和时间线精准定位的技术基石。export-formatters.js 负责三种导出格式的序列化,export-download.js 处理文件下载触发。folders.js 完整实现了拖拽排序和本地持久化。search.js 内置高亮渲染和结果导航。prompt-library.js 管理指令的 CRUD 和导入导出。latex-copy.js 监听渲染公式节点并注入复制按钮。timeline.js 渲染时间线组件并响应滚动同步。collapse.js 保留旧版折叠逻辑(已废弃),仅用于兼容历史折叠状态。样式方面,styles.css 文件重达 59KB,为工具栏、时间线、Prompt 弹窗、文件夹管理条提供完整的视觉样式,并支持明暗主题自动同步。ui/theme.js 监听 ChatGPT 的主题切换事件,动态设置 data-toolkit-theme 属性,CSS 根据该属性切换色彩方案。
core/i18n.js 实现了完整的国际化方案:启动时读取浏览器语言自动匹配内置语言(中文/英文),支持工具栏内的语言切换菜单,切换后立即刷新所有 UI 组件的文案并持久化用户选择。所有字符串均通过翻译字典而非硬编码实现解耦。
整体代码质量较高:模块边界清晰、命名规范、注释详尽(README 超过 15KB)、无第三方依赖。权限申请极为克制——仅申请 storage 和两个 host 权限,最小化隐私风险。## 部署与安装:浏览器扩展的极简流程
作为浏览器扩展插件,这个项目没有服务端组件,部署本质上就是「加载扩展」这一动作。支持的浏览器和安装步骤如下:
| 浏览器 | 支持状态 | 安装步骤 | 难度 |
|---|---|---|---|
| Chrome | ✅ 正式支持 | 打开 chrome://extensions/ → 开启开发者模式 → 加载已解压的扩展程序 → 选择项目根目录 | ⭐ |
| Edge | ✅ 正式支持 | 打开 edge://extensions/ → 开启开发者模式 → 加载已解压的扩展 → 选择项目根目录 | ⭐ |
| Firefox | ⚠️ 临时支持 | about:debugging#/runtime/this-firefox → 临时载入附加组件 → 选择 manifest.json | ⭐⭐(临时加载重启失效) |
| Safari | ⚠️ 评估中 | 尚未正式支持 | — |
安装后无需任何配置,工具栏自动出现在 ChatGPT 页面右下角。所有状态(语言偏好、文件夹分类、Prompt 库)存储在浏览器 chrome.storage 本地,数据完全私有。
不支持 Docker 部署、服务器端安装或 headless 自动化加载——这是一个面向终端用户的桌面端浏览器扩展,其产品形态决定了部署方式只能是本地手动加载。
尽管插件功能设计精良,但仍存在一些客观局限:
ChatGPT 版本兼容性风险:时间线和搜索跳转依赖 ChatGPT Web 的虚拟化列表 DOM 结构。如果 OpenAI 大幅调整页面结构,插件的选择器可能需要重新适配。历史上已有「长会话折叠」功能因 ChatGPT 原生虚拟化而废弃的先例。
文件夹数据本地存储:分类关系不会同步到 ChatGPT 服务端,重新安装或清除浏览器数据后需要手动重建。适合对文件夹组织有强需求但对数据备份要求不高的用户。
Firefox 临时加载限制:Firefox 当前版本需要每次重启浏览器后重新加载,不适合长期稳定使用。
非官方插件身份:作为第三方浏览器扩展,插件运行在 ChatGPT 页面的 content script 上下文中,理论上存在因 ChatGPT 前端变更而失效的风险,需要依赖维护者持续跟进更新。
从 GitHub 活动数据来看,项目最近更新于 2026 年 6 月 16 日,维持着活跃的维护节奏。871 颗星、24 个 fork、871 个 watcher(等于 stars 数量),说明这是一个由真实用户关注驱动的小而美的工具型项目,而非追求 PR 数量的推广型仓库。5 个 open issues 的规模也表明维护负担可控。
在 AI 对话工具日益普及的背景下,一个能解决「对话管理」痛点的浏览器插件具有稳定的刚需市场。它不需要 GPU、不需要服务器,对硬件要求极低(仅需 256MB 内存和 50MB 磁盘),安装门槛几乎为零,这使得它在 AI 工具生态中占据了独特而牢固的细分位置。
对于经常使用 ChatGPT 进行长程对话的知识工作者、开发者、学术研究者来说,ChatGPT Conversation Toolkit 提供了一套经精心设计的「对话效率工具箱」,值得一试。