前言¶
在 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,插件主要做以下几件事:
- 在对话输入区左侧增加 Annotate 按钮。
- 指针悬停时高亮元素;单击标注元素,或按住主键拖拽选择矩形区域(无模式切换)。
- 截图仅包含所选可见矩形,PNG 中不包含标注控件本身。
- 可添加多条批注,通过编号 pin 编辑或删除。
- Send 时向当前会话提交:编号批注列表,以及每个选择对应的一张裁剪 PNG。元素类批注附带 CSS 选择器;任意区域附带视口坐标(CSS 像素)。
- 在 Desktop 的 Browser 面板中,当 Electron
webview暴露executeJavaScript与capturePage时,支持在访客页面内选择元素。
依赖 Harness 的 conversation.createDrafts、sendSession 等图片草稿 API;不支持的版本会报错,不会静默只发文字。截图依赖内置的 html-to-image,无需单独捕获服务或 API Key。
安装与启用¶
npm 发布不是必需步骤;仓库已包含构建好的 client.js,直接从 GitHub 安装即可。
Desktop 配置档:
- 先启动一次 DeepSeek Harness Desktop,以初始化 profile。
- 通过 Desktop 的 Manage dsh Command… 使用随 Desktop 安装的
dsh命令(仅用 npm 全局安装的dsh无法管理 Desktop profile)。如需安装或修复命令,完成后新开终端。 - 等活跃任务结束并完全退出 Desktop(仅关窗口不够),再执行:
dsh plugin --profile desktop add github:Meatware-Engineering/DSH-AnnotateAnything
- 重新打开 Desktop,在 Plugins 中按需启用 AnnotateAnything;若 Harness 提示重启,按说明操作。
若使用独立管理的 Web profile,将上述命令中的 --profile desktop 改为 --profile web。Desktop 与 Web 的插件安装相互独立。更多 CLI 说明见 Desktop 官方文档。
插件以当前 dsh 进程及 Desktop/Web 配置档权限安装第三方代码;执行 add 前请确认来源为上述 GitHub 仓库。
典型用法¶
- 打开要接收截图的会话。
- 点击 Annotate。对高亮元素单击,或在任意方向拖拽可见矩形;Desktop Browser 中手势需从页面内开始。
- 等待区域截图出现后填写批注并点击 Add;可对多个元素或区域重复操作,同一轮提交可混合两种类型。
- 点击编号 pin 可编辑或删除对应批注。
- 点击 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。