前言¶
在 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 后:
- 对当前 Chrome 活跃标签页尝试截图(
bridge/cdp仅标签内容;window为整窗含标签栏与地址栏)。 - 截图作为图片附件进入当前可编辑草稿(与拖拽图片同一 intake)。
- 在同一草稿插入一行可编辑文本,格式示例:
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 压缩包¶
- 在 Releases 下载
dsh-chrome-attach-<version>.tgz。 - 在 DSH 中打开 Plugins → Add plugin,粘贴压缩包的绝对路径。
- 同样刷新或重启 DSH。
从源码目录(link 安装)¶
在 DSH 里用插件目录的绝对路径添加(安装为 link:,改代码后需重启生效)。README 示例路径形态:
/Users/you/WorkSpace/Github/dsh-chrome-attach
典型用法¶
- 在 Chrome 中打开要讨论的页面,并使其成为当前活跃标签。
- 在 DSH 对话编辑器点击
+,在 Add 区域、Add files 下方选择 Attach Chrome(副标题:Screenshot the page, plus its title and URL)。 - 等待截图与页面行写入草稿,继续输入说明或问题,确认无误后 Enter 发送。
也可在 composer 输入 /attach 触发同一流程。
截图环境配置(按需)¶
bridge:无额外系统权限¶
安装 DSH 插件 dsh-chrome-bridge 与 Chrome 扩展 DSH Bridge,连接一次。插件通过 cb CLI(默认 ~/.dsh/bin/cb)获取裸标签内容。
cdp:Chrome Remote debugging¶
- 打开
chrome://inspect/#remote-debugging,勾选 Remote debugging。 - 在 DSH 点 Attach Chrome;首次连接在 Chrome 中允许一次。
- 端口由 Chrome 写入
<profile>/DevToolsActivePort,插件读取。受管设备若策略DevToolsRemoteDebuggingAllowed关闭,复选框会变灰——改用window或bridge。
若已用调试端口启动 Chrome,插件还会探测 9222/9223 以及环境变量 DSH_CHROME_DEBUG_PORT 指定的端口。README 给出独立 user-data-dir 的启动示例(路径按本机调整)。
window:macOS 屏幕录制¶
- 系统设置 → 隐私与安全性 → 屏幕录制,为 DeepSeek Harness 开启权限。
- 退出并重新打开 DSH(macOS 改权限后需重启进程)。
- 从
+菜单选择 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 上还可降级为整窗屏幕录制。