在使用 DeepSeek Harness (DSH) Web GUI 时,侧栏的每一行链接通常可以直接打开新标签页。当会话数量增多,浏览器标签栏会迅速混乱,手动拖拽归组效率极低。DSH 插件本身运行在 Node.js 或 GUI 页面环境,无法访问浏览器标签组 API,因此“自动归组”这一功能必须由浏览器扩展来实现。
dsh-tab-groups 解决了这个问题。它是一个单一包,包含两张“脸”:一个 Edge/Chrome 浏览器扩展,负责执行所有标签归组动作;一个 DSH 插件,负责将扩展镜像到固定路径,在 GUI 中检测其状态并提供引导。插件会自动将所有 DSH Web GUI 标签页归组到同一个组中。
核心功能¶
该插件通过标题锚点识别 DSH 标签页,并基于浏览器原生的标签组 API 进行管理。
- 自动归组:新标签页出现时自动加入组;关闭标签页后,浏览器会自动清除空组。
- 专属窗口模式:可选模式,将所有 DSH 标签页收进同一个窗口,且该窗口中仅包含 DSH 标签页。
- 标题锚点识别:通过标题前缀
DeepSeek Harness识别标签页(排除DeepSeek Harness Docs)。 - 固定扩展 ID:扩展 ID 固定为
pnncehmieeobfabnbdepbldiknndjbhl,确保镜像和驱动稳定。 - GUI 状态点芯片:在 DSH Web GUI 中提供一颗状态点,显示连接状态;未安装时提供引导。
- 纯本地运行:仅使用
tabs、tabGroups和storage权限,不请求网络,不采集数据。 - 零依赖零构建:无需构建步骤,直接加载即用。
安装与启用¶
安装分为两步:先安装 DSH 插件,再在浏览器中加载扩展。
1. 安装 DSH 插件¶
在插件目录下执行以下命令:
dsh plugin --profile web add link:$PWD
这会将扩展镜像到固定路径 ~/.dsh/dsh-tab-groups-extension(或环境变量 $DSH_HOME 指定的路径),并在 DSH 日志中打印该路径。
2. 在浏览器中加载扩展¶
- 打开浏览器扩展管理页:
edge://extensions(Chrome 为chrome://extensions)。 - 开启左下角的开发人员模式。
- 点击 加载已解压的扩展,选择上述镜像路径
~/.dsh/dsh-tab-groups-extension。 - 回到 DSH 页面,右下角的状态点芯片会自动变为绿色(或点击“重新检测”)。
典型用法¶
- 自动归组:打开任意 DSH Web GUI 标签页,它将自动进入名为
DSH的标签组。 - 扩展弹窗:点击浏览器工具栏的扩展图标,可查看统计、执行“立即归组”或进入设置页。
- 配置管理:在 DSH 设置页的“DSH 标签页”分区,或插件页面的设置区,配置组名、颜色、专属窗口等参数。
适用场景与注意¶
- 环境要求:需要 Node.js >= 22 和 DSH >= 0.2.0-rc.2。
- 权限范围:插件仅申请本地权限,不涉及 host 权限。
- 识别规则:依赖网页标题包含
DeepSeek Harness作为锚点。由于DeepSeek Harness Docs的标题也包含此前缀,识别逻辑已做排除处理。 - 扩展 ID:若手动更改了扩展 ID,插件将无法检测到扩展,需重新加载镜像目录。
总结¶
dsh-tab-groups 通过将浏览器扩展与 DSH 插件合二为一,解决了多会话场景下标签管理混乱的问题。它不需要复杂的配置,安装后即可在 DSH 标签页出现时自动整理,保持浏览器标签栏整洁。