DSH AnnotateAnything:在对话里标注界面并发送截图

前言

在 DeepSeek Harness(DSH)里和模型讨论界面问题时,纯文字描述按钮位置、样式或布局往往费时且容易歧义。截图能补充上下文,但裁剪、编号和说明通常要在 Harness 外完成,再贴回会话。DSH AnnotateAnything 是社区维护的客户端插件:在会话输入旁增加 Annotate,对界面元素或矩形区域加批注,并把裁剪后的 PNG 与编号说明一并发送到当前对话。下面按定位、功能、安装、用法与限制说明其用法。

这是什么

DSH AnnotateAnything(仓库 Meatware-Engineering/DSH-AnnotateAnything,目录页 SkillHub 条目)由 Meatware-Engineering 维护,分类为 客户端 插件。它是非官方的 DeepSeek Harness 小插件:在 Harness Web 客户端内运行,Host 入口为空,不是浏览器扩展,也不是独立截图工具。界面支持英文与俄文;许可证为 MIT(package.json 版本 0.1.0)。

插件以当前 Harness 客户端权限在页面内工作。安装或使用前,宜自行查看仓库源码与许可证;发送内容会经 Harness 进入所选会话及其配置的模型提供方。

核心功能

依据仓库 README,插件主要做以下几件事:

  1. 在对话输入区左侧增加 Annotate 按钮。
  2. 指针悬停时高亮元素;单击标注元素,或按住主键拖拽选择矩形区域(无模式切换)。
  3. 截图仅包含所选可见矩形,PNG 中不包含标注控件本身。
  4. 可添加多条批注,通过编号 pin 编辑或删除。
  5. Send 时向当前会话提交:编号批注列表,以及每个选择对应的一张裁剪 PNG。元素类批注附带 CSS 选择器;任意区域附带视口坐标(CSS 像素)。
  6. 在 Desktop 的 Browser 面板中,当 Electron webview 暴露 executeJavaScript 与 capturePage 时,支持在访客页面内选择元素。

依赖 Harness 的 conversation.createDrafts、sendSession 等图片草稿 API;不支持的版本会报错,不会静默只发文字。截图依赖内置的 html-to-image,无需单独捕获服务或 API Key。

安装与启用

npm 发布不是必需步骤;仓库已包含构建好的 client.js,直接从 GitHub 安装即可。

Desktop 配置档:

  1. 先启动一次 DeepSeek Harness Desktop,以初始化 profile。
  2. 通过 Desktop 的 Manage dsh Command… 使用随 Desktop 安装的 dsh 命令(仅用 npm 全局安装的 dsh 无法管理 Desktop profile)。如需安装或修复命令,完成后新开终端。
  3. 等活跃任务结束并完全退出 Desktop(仅关窗口不够),再执行:
dsh plugin --profile desktop add github:Meatware-Engineering/DSH-AnnotateAnything
  1. 重新打开 Desktop,在 Plugins 中按需启用 AnnotateAnything;若 Harness 提示重启,按说明操作。

若使用独立管理的 Web profile,将上述命令中的 --profile desktop 改为 --profile web。Desktop 与 Web 的插件安装相互独立。更多 CLI 说明见 Desktop 官方文档。

插件以当前 dsh 进程及 Desktop/Web 配置档权限安装第三方代码;执行 add 前请确认来源为上述 GitHub 仓库。

典型用法

  1. 打开要接收截图的会话。
  2. 点击 Annotate。对高亮元素单击,或在任意方向拖拽可见矩形;Desktop Browser 中手势需从页面内开始。
  3. 等待区域截图出现后填写批注并点击 Add;可对多个元素或区域重复操作,同一轮提交可混合两种类型。
  4. 点击编号 pin 可编辑或删除对应批注。
  5. 点击 Send,将批注与图片提交到当前会话。

Esc 的行为:先取消拖拽,再关闭当前编辑器,或在两者都未打开时退出标注模式。移动小于 4 CSS 像素视为元素点击;达到 4 像素则转为区域选择。任一维小于 4 像素的区域会被丢弃。切换会话前应先完成或丢弃未发送的标注;Close 会清空待发送的标注。

适用场景与注意

适合: 需要在 Harness 对话里用「带编号的局部截图 + 文字说明」讨论 Harness 自身 UI,或在 Desktop Browser 访客页内标注(在 API 可用时)的开发者与使用者。

限制与要求(摘自 README):

  • 需要 Harness Web 客户端及 slots、locale、conversation、sessions、conversation.input.left、shell.overlay 等能力。
  • Host 区域截图为 DOM 重建,不是系统级截屏;视频、受保护内容、跨域资源、canvas 或特殊 CSS 可能无法正确还原;受保护或跨域 canvas/视频会触发明确错误。字体不嵌入。Host 区域超过 250 万 CSS 像素会被拒绝;区域 PNG 长边上限 1600 像素。一次选择不能同时横跨 Harness 与访客页。
  • 区域在松手后立即截图,再保存批注;失败或失效须重新框选,Send 不会静默用新内容重拍。元素在 Add 时保留捕获,Send 时可重试;动态内容在渲染过程中仍可能变化。
  • 访客页选择限于主文档,不含嵌套跨域 frame;新开访客标签页需退出并重新进入标注模式。
  • 任一张截图失败则停止发送,批注仍保留;错误会区分尺寸、受保护像素、资源不可用等情况。
  • README 标明此为早期 0.1.0 插件,未声明广泛的 Harness 版本/操作系统兼容矩阵或完整 Desktop 认证。

隐私: 无独立分析后端。Send 会把所选截图、批注及元素标签/选择器经 Harness 提交到当前会话;可能包含页面私有内容,发送前请检查,避免密码、令牌等敏感信息。访客页元数据视为不可信页面内容,而非给助手的指令。

结尾

DSH AnnotateAnything 把「指哪打哪、编号批注、裁剪进对话」收进 Harness 客户端,减少在外部工具里截图再贴回的步骤。社区目录见 SkillHub:DSH-AnnotateAnything;源码与完整说明见 GitHub:Meatware-Engineering/DSH-AnnotateAnything。

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

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

小夜