Skip to content

Disaster-Terminator/chatgpt-tab-bridge

Repository files navigation

ChatGPT Tab Bridge

在两个已经打开的 ChatGPT 页面之间做消息中继的浏览器扩展。

当前阶段:可运行原型(prototype),更适合实验、联调和工作流探索,不是面向大众用户的成品扩展。


它能做什么

ChatGPT Tab Bridge 允许你把两个已经打开的 ChatGPT 页面分别绑定为 AB,然后在它们之间自动接力:

  • 绑定两个页面为 A / B
  • 选择由哪一侧先开始
  • 读取一侧最新的 assistant 回复
  • 组合成 relay payload 后发送到另一侧
  • 支持 Start / Pause / Resume / Stop / Clear
  • 支持页内悬浮窗操作,也提供 popup 作为总览和设置入口

一句话说,它是一个“让两个 ChatGPT 页面接力对话”的扩展原型。


适合谁

这个仓库更适合下面几类用户:

  • 想实验“双 ChatGPT 标签页接力”工作流的人
  • 想做 agent-to-agent / tab-to-tab relay 原型的人
  • 能接受手动加载浏览器扩展、自己构建和调试的人

如果你想要的是:

  • 一键安装、即装即用的商店扩展
  • 面向普通用户的稳定成品
  • 长时间无人值守的高可靠自动化

那这个仓库目前还不属于那一类。


当前交互方式

扩展目前有两个操作入口:

1) 页内悬浮窗

这是主操作面,适合日常使用。

你可以直接在 ChatGPT 页面里完成:

  • 绑定当前页为 A
  • 绑定当前页为 B
  • 选择 starter(A 或 B)
  • Start / Pause / Resume / Stop
  • Clear
  • 查看当前 phase、round、next hop、step、last issue
  • 拖动悬浮窗、折叠悬浮窗

2) Popup

Popup 更偏向总览、设置和调试,不是主要操作入口。

它负责:

  • 查看全局状态
  • 查看当前绑定
  • 切换语言
  • 控制悬浮窗启用、默认展开、位置重置
  • 低频控制和调试信息查看

支持的页面

优先支持这两类 ChatGPT 页面:

  • 普通线程页面
    https://chatgpt.com/c/<conversation-id>
  • 项目内线程页面
    https://chatgpt.com/g/<project-id>/c/<conversation-id>

另外,当前实现也支持把部分尚未形成持久线程 URL 的 ChatGPT 页面作为 live session 绑定使用。
但从实际使用角度,首次尝试时仍建议你:

  1. 先把两个页面都正常打开
  2. 最好先让页面各自完成至少一轮正常对话
  3. 再进行绑定和 relay

这样更稳定,也更符合当前原型阶段的预期使用方式。


快速开始

1. 获取仓库

克隆仓库后安装依赖:

pnpm install

2. 构建扩展

pnpm run build

构建产物会输出到:

dist/extension

3. 在浏览器中加载

当前推荐使用 Microsoft Edge 以“已解压扩展”的方式加载。

步骤:

  1. 打开 edge://extensions
  2. 开启“开发人员模式”
  3. 点击“加载已解压的扩展”
  4. 选择 dist/extension

说明:这个仓库当前不是商店发布形态,默认使用本地加载方式。

4. 打开两个 ChatGPT 页面

手动打开两个你要参与 relay 的 ChatGPT 页面。

建议:

  • 两个页面都属于 chatgpt.com
  • 两个页面不要绑定到同一个线程
  • 页面都处于可正常输入和发送的状态

5. 绑定 A / B

在两个页面里分别使用悬浮窗,把它们绑定成:

  • 一个是 A
  • 另一个是 B

6. 选择起始侧并启动

选择 AB 作为 starter,然后点击 Start

扩展会开始:

  1. 读取起始侧最新 assistant 回复
  2. 生成 relay payload
  3. 发送给目标侧
  4. 等待目标侧回复
  5. 再反向继续

运行时你会看到什么

运行时通常会看到这些状态变化:

  • ready
  • running
  • paused
  • stopped
  • error

以及类似这样的步骤提示:

  • reading A
  • sending A -> B
  • waiting B reply

这类信息的价值在于:
它能让你知道当前 relay 卡在了哪一步,而不是只看到“扩展没反应”。


当前限制

这个项目目前有几个必须提前说清楚的边界。

1) 它依赖 ChatGPT Web 页面结构

这是一个通过内容脚本与 ChatGPT 网页交互的扩展。
所以一旦 ChatGPT 前端结构、选择器、发送流程发生变化,扩展行为就可能受影响。

2) 它不是“完全无痕后台运行”

设计目标是不要求两个被控页面始终保持前台焦点。
但扩展在运行时仍会对页面做实际读写操作,例如:

  • 读取消息内容
  • 填写输入框
  • 触发发送

因此它更接近:

  • 后台自动运行

而不是:

  • 前台完全无变化

3) 长时间运行仍可能受浏览器和页面状态影响

比如:

  • MV3 service worker 挂起
  • 标签页被浏览器回收
  • ChatGPT 页面长时间打开后状态陈化
  • 页面正在生成、忙碌或 UI 异常时无法正确接力

如果遇到异常,最先应该尝试的是:

  • 刷新相关 ChatGPT 页面
  • 重新绑定
  • 清空终端后重新开始

4) 当前更像“面向会折腾用户的原型”

这个仓库目前已经不是概念 demo,但也还不是稳定商用品。
它更适合:

  • 试验新工作流
  • 做 relay 原型
  • 进行真实页面联调

而不是把它当成“长期稳定的生产力工具”直接依赖。


权限与隐私

当前扩展权限比较收敛,核心只围绕这些能力工作:

  • storage
  • tabs
  • https://chatgpt.com/*

它的本质行为是:
在你明确绑定的 ChatGPT 页面里读取消息、写入输入框并触发发送,用来完成 relay。

也就是说,这个扩展天然会接触你绑定页面里的对话内容。
请不要把它用于你不愿意让扩展脚本参与处理的敏感会话。


项目状态

当前仓库重心是:

  • 把“双标签页 relay”主链路做稳
  • 继续减少错误绑定、误判发送成功、错误观察目标页等问题
  • 让悬浮窗成为真正可日常使用的主操作面
  • 把开发文档、测试文档和用户文档彻底分开

所以这个 README 只保留用户需要知道的内容,不再承载测试体系、内部验收策略、认证导出流程或实现细节。


开发相关内容

开发、测试、认证导出、回归分层、实现细节等内容不再放在首页 README。
这些内容应该单独整理到 docs/ 目录,例如:

  • docs/development.md
  • docs/testing.md
  • docs/architecture.md
  • docs/auth.md

README 只回答一个问题:

“作为用户,我该怎么理解、安装和使用这个项目?”

开发与测试入口请看:

  • docs/testing.md
  • docs/auth.md

免责声明

本项目依赖 ChatGPT 网页界面行为,兼容性和稳定性会随着上游页面变化而变化。
请把它视为一个正在演进中的实验性工具,而不是稳定承诺明确的最终产品。

About

Edge extension for controlled relay between two manually selected ChatGPT conversation tabs.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors