dsh-chrome-attach:把当前 Chrome 标签页截图挂进 DSH 草稿

前言

在 DSH 里讨论网页内容时,常见做法是手动复制链接、口述页面结构,或自己截屏再拖进输入框。截图能告诉模型「像素长什么样」,但模型往往不知道对应的是哪一页。ChatGPT 等产品里有「附加浏览器页面」一类能力;DeepSeek Harness 社区插件 dsh-chrome-attach 做的是同类事:在对话编辑器的 + 菜单里选一次,就把当前 Chrome 标签页截成图放进当前草稿,并在同一草稿里写入该页的标题和 URL 一行文字。内容不会立刻发送,按 Enter 才会一起出去。

下面介绍插件定位、截图链路、安装方式与典型用法。事实以 GitHub 仓库 README 为准;社区目录页见 SkillHub 插件页。SkillHub 为独立社区站点,与 DeepSeek / 幻方无官方从属关系。

这是什么

dsh-chrome-attach 由维护者 deqingLv 发布,分类为联网工具,许可证 MIT(package.json 当前版本 0.2.8)。一句话:Attach the current Chrome tab to a DeepSeek Harness draft as a screenshot, with its title and URL written into the composer.

插件在 DSH 对话编辑器的 + 菜单增加一行 Attach Chrome(Chrome 标记),点击后对活跃标签页截图(或按链路降级),图片进入当前草稿,同时通过 composer 的输入门面写入页面信息行;不会自动发送。

核心功能

截图 + 页面信息行

点击菜单项或使用 /attach 后:

  1. 对当前 Chrome 活跃标签页尝试截图(bridge / cdp 仅标签内容;window 为整窗含标签栏与地址栏)。
  2. 截图作为图片附件进入当前可编辑草稿(与拖拽图片同一 intake)。
  3. 在同一草稿插入一行可编辑文本,格式示例:
Chrome tab: Kaboo — https://kaboo.bytedance.net/?section=team

附件文件名会带上页面标题,例如 DeepSeek-Harness-155812.png。

若草稿正在发送中、或没有可编辑草稿,则仍可能附上图片,但页面地址行会跳过,toast 会提示(如中文环境:已附上(页面地址未能写入输入框):…)。

三级截图链路(默认 auto)

插件按顺序尝试,第一个成功的 tier 生效;默认顺序为 bridge → cdp → window。响应里会标明 source;若为窗口级截图,会标注 window shot, browser UI included。

Tier 画面内容 依赖 说明
bridge 仅标签页内容 dsh-chrome-bridge 插件 + DSH Bridge Chrome 扩展 不抢焦点、无弹窗,支持整页截图 API
cdp 仅标签页内容 Chrome 自带 Remote debugging 开关 首次连接需批准一次,沿用正常配置文件
window 整个 Chrome 窗口(含 UI) macOS + 屏幕录制权限 无需扩展;会短暂把 Chrome 置前

README 写明:不需要自建 bridge、扩展或 Chrome 启动参数也能用——只是画质与裁剪范围因 tier 不同;链路差异主要在图像质量与是否包含浏览器 chrome。

整页截图在 API 层已存在(POST /api/chrome-attach/shot {"full":true}),但 README 说明尚未单独做菜单项。

与 DSH 版本的配合

安装说明要求 DSH 构建需带 commandUi 以及 session-slot 的 inputActions 属性(用于写入页面行)。较旧构建仍可附图,但会跳过文字行并在 toast 中说明。

安装与启用

插件以当前 DSH 进程权限在本地运行;安装前建议自行查看 源码与 LICENSE。Node 引擎要求 >=20。

从 npm 安装(推荐)

dsh plugin --profile desktop add dsh-chrome-attach   # "web" for the web profile

安装后需 刷新窗口(Cmd+R)或重启 DSH——新 bundle 不会热加载。

从 Release 压缩包

  1. 在 Releases 下载 dsh-chrome-attach-<version>.tgz。
  2. 在 DSH 中打开 Plugins → Add plugin,粘贴压缩包的绝对路径。
  3. 同样刷新或重启 DSH。

在 DSH 里用插件目录的绝对路径添加(安装为 link:,改代码后需重启生效)。README 示例路径形态:

/Users/you/WorkSpace/Github/dsh-chrome-attach

典型用法

  1. 在 Chrome 中打开要讨论的页面,并使其成为当前活跃标签。
  2. 在 DSH 对话编辑器点击 +,在 Add 区域、Add files 下方选择 Attach Chrome(副标题:Screenshot the page, plus its title and URL)。
  3. 等待截图与页面行写入草稿,继续输入说明或问题,确认无误后 Enter 发送。

也可在 composer 输入 /attach 触发同一流程。

截图环境配置(按需)

bridge:无额外系统权限

安装 DSH 插件 dsh-chrome-bridge 与 Chrome 扩展 DSH Bridge,连接一次。插件通过 cb CLI(默认 ~/.dsh/bin/cb)获取裸标签内容。

cdp:Chrome Remote debugging

  1. 打开 chrome://inspect/#remote-debugging,勾选 Remote debugging。
  2. 在 DSH 点 Attach Chrome;首次连接在 Chrome 中允许一次。
  3. 端口由 Chrome 写入 <profile>/DevToolsActivePort,插件读取。受管设备若策略 DevToolsRemoteDebuggingAllowed 关闭,复选框会变灰——改用 window 或 bridge。

若已用调试端口启动 Chrome,插件还会探测 9222/9223 以及环境变量 DSH_CHROME_DEBUG_PORT 指定的端口。README 给出独立 user-data-dir 的启动示例(路径按本机调整)。

window:macOS 屏幕录制

  1. 系统设置 → 隐私与安全性 → 屏幕录制,为 DeepSeek Harness 开启权限。
  2. 退出并重新打开 DSH(macOS 改权限后需重启进程)。
  3. 从 + 菜单选择 Attach Chrome;截图为最前 Google Chrome 窗口整窗,长边约缩至 2200px。若其他窗口挡住 Chrome,插件会短暂置前 Chrome 再切回 DSH。

window tier 仅 Google Chrome;chrome:// 与 Chrome Web Store 等页面无法经 chrome.debugger 捕获,window tier 不受影响。

配置项

变量 默认 含义
DSH_CHROME_ATTACH_MODE auto 固定某一 tier:bridge、cdp、window
DSH_CHROME_DEBUG_PORT — 额外探测的 CDP 端口
DSH_CHROME_BRIDGE_CB — 显式指定 cb CLI 路径
DSH_OSASCRIPT_BIN / DSH_SCREENCAPTURE_BIN 系统路径 测试用覆盖

适用场景与注意

适合:在 DSH 里基于正在看的网页做问答、对照 UI、或让模型同时看到截图与 canonical URL/标题;希望草稿里可删改页面行再发送。

限制(README Limitations 摘要):

  • bridge/cdp 只截活跃标签;window 只截最前 Chrome 窗口,URL/标题仍来自该窗口最前标签。
  • 页面行依赖可编辑 composer;发送过程中可能只有图没有行。
  • 图像经 loopback 传递,不上传外网(README 截断处说明意图为本地处理)。
  • Host 侧仅使用 Node 内置模块,不依赖 DSH profile 可能解析不到的 npm 包。

结尾

dsh-chrome-attach 把「当前 Chrome 页」变成 DSH 草稿里的一张图加一行标题 URL,并沿用 DSH「一切皆插件」的安装方式。需要更好画质且无焦点干扰时,可优先配好 bridge;无扩展时可开 Chrome Remote debugging;macOS 上还可降级为整窗屏幕录制。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜