前言¶
在 DeepSeek Harness(DSH)里和模型协作时,经常要把屏幕上的内容交给对话:报错窗口、设置项、长列表、录屏说明。浏览器渲染进程拿不到整屏像素,官方主会话也没有放行 getDisplayMedia() 的通路,单靠「让模型自己猜」或手工切到别的截图工具,链路长、还容易漏上下文。
下面介绍社区插件 dsh-screenshot(维护者 JHboy203):把框选、标注、离线 OCR、贴图、录屏和长截图收进 DSH 客户端,入口挂在对话输入框「语音」键旁边,并给智能体提供不抢前台的 screenshot 宿主工具。实现面向 Windows(PowerShell / .NET),当前为 开发版(0.1.x),功能与界面可能随版本调整。
这是什么¶
dsh-screenshot 是 DSH 生态里的客户端类插件(SkillHub 分类:客户端)。包版本在 package.json 中为 0.1.0,许可证 MIT。
它解决的核心问题是:在 DSH 桌面 profile 内完成「从屏幕到对话」的闭环——用户侧用 QQ 风格的覆盖层框选与标注;模型侧可通过宿主工具静默抓图拿文件路径。抓屏、覆盖层、OCR、录屏均在宿主进程侧完成,经 Typert Remote 把图像交给浏览器半边渲染,而不是在渲染进程里调用 getDisplayMedia()。
声明的 DSH 版本区间为 >=0.1.2-rc.1 <0.3.0(见仓库 package.json 的 engines.dsh);文档记载在 Windows 11、desktop profile 下于 0.2.1-rc.2 / 0.2.1-rc.3 实测通过。SkillHub 简介写「支持 DSH 0.2.1–0.2.x」与上述声明一致;换宿主大版本前,文档建议先跑 shot_health。
核心功能¶
对话旁的菜单能力¶
按钮注入槽位为 conversation.input.left,order 为 -90(紧挨「语音」键)。菜单项与行为如下(与仓库 README 一致):
| 菜单 | 作用 |
|---|---|
| 截图 | 在原生全屏覆盖层里框选 → 标注 → 结果贴进输入框并复制到剪贴板 |
| 录屏 | ffmpeg + gdigrab,H.264 + faststart;默认先框区域再录,红框标边界,右上角计时胶囊停止;可选录音(默认关) |
| 提取文字 | 框选后 Windows 自带 OCR,离线、不出本机;文本可复制或贴进输入框 |
| 屏幕翻译 | OCR 后将带翻译指令前缀的文本贴进输入框,由 DSH 模型翻译 |
| 长截图 | 框选区域 → 宿主滚轮逐格抓帧 → 重叠区对齐拼接(无法对齐则报错,不猜测)→ 回到标注界面 |
| 截图时隐藏 DSH 界面 | 冻结桌面前隐藏 DSH 窗口(默认关,在「更多设置」勾选) |
自 R33 起,插件只保留原生覆盖层一条抓屏路径;覆盖层不可用时会明确提示(例如需重启 DSH),不再降级到只能在 DSH 窗口内框选的老方案。
标注、贴图与热键¶
标注工具包括矩形、椭圆、箭头、画笔、文字、马赛克;八色与粗细滑杆;撤销/重做(游标模型)。常用键:Enter 完成、Esc 取消、Ctrl+Z/Y、Ctrl+C/S/A,双击全屏。贴图可钉在界面上,拖动移动,Ctrl+滚轮缩放。
全局热键:Ctrl+Alt+A 截图,Ctrl+Alt+O 提取文字。
给智能体用的宿主工具¶
除 UI 外,插件在宿主侧注册多组工具,便于自动化与自检。日常与模型相关的典型入口:
screenshot/screenshot_windows:不弹覆盖层、不抢前台,返回抓图文件路径。shot_health:换会话后第一条建议执行的检查,根据文件时间与进程/实例时间判断是否需要重启 DSH。shot_bridge:驱动运行中的客户端(state、eval、click、menu 等)。
交付与改代码后的自检还有 shot_gate、shot_preflight、shot_pixels 等;详见 GitHub README 的「宿主工具」与「自检」章节。
为什么抓屏在宿主半边¶
渲染进程拿不到屏幕:官方主会话没有 setDisplayMediaRequestHandler,getDisplayMedia() 无法获得桌面源。因此宿主侧使用 PowerShell / .NET,例如:
System.Drawing.Graphics.CopyFromScreen— 整屏(含多显示器虚拟屏)PrintWindow(PW_RENDERFULLCONTENT)— 单窗口Windows.Media.Ocr— 离线 OCRffmpeg -f gdigrab— 录屏- 滚轮合成 + Python/PIL 对齐 — 长截图
理解这一点有助于区分「工具沙箱里测不通」与「产品 bug」:DSH 工具沙箱为 Low integrity,ShowWindow / SetForegroundWindow 等可能被 UIPI 静默拒绝;隐藏窗口、覆盖层等必须在插件宿主进程里起的 pwsh 中才有效。
安装与启用¶
插件面向 DSH 的 desktop profile。平台为 Windows 专有;macOS / Linux 无抓屏实现,安装后按钮可能无实际能力。
官方文档不建议使用 dsh plugin add / pnpm add:说明中指出 pnpm 会重算依赖树并可能 hoist 一份 @deepseek-ai/dsh-tools 遮蔽宿主,导致工具调用报错。推荐按下列三步手动链接(<profile> 默认 desktop,路径请替换为本机实际值):
# 0) 核对 DSH 版本
dsh --version
# 1) 将仓库放到工作区(不要直接 clone 进 profile/node_modules)
git clone https://github.com/JHboy203/dsh-screenshot.git "<你的工作区>/DSH-Plugin/dsh-screenshot"
# 2) 链进 profile(普通 cmd,无需管理员)
mklink /J "%USERPROFILE%\.dsh\profiles\<profile>\node_modules\dsh-screenshot" "<你的工作区>\DSH-Plugin\dsh-screenshot"
- 修改
%USERPROFILE%\.dsh\profiles\<profile>\package.json两处后完全退出并重启 DSH:
{
"dependencies": {
"dsh-screenshot": "link:<你的工作区>/DSH-Plugin/dsh-screenshot"
},
"dsh": {
"profile": {
"bundles": [ /* …原有条目…, "dsh-screenshot" */ ]
}
}
}
cordis.patch.yml 为 bundle patch;包进入 dsh.profile.bundles 后宿主会自动 insert,无需手工复制 patch 内容。重启后输入框「语音」旁出现截图按钮,或按 Ctrl+Alt+A 验证。
外部依赖:录屏需要本机已安装 ffmpeg;无 ffmpeg 时录屏会明确报错,其余功能不受影响。OCR 与抓屏依赖 Windows 自带能力,无需额外安装 OCR 引擎。
SkillHub 目录页提供「发送给 DeepSeek Harness 安装」文案,可把安装说明交给 DSH 会话按步骤执行;社区目录站点 SkillHub 与 DeepSeek / 幻方无官方从属关系,属于社区整理的插件索引。
典型用法¶
在对话里截图并发送¶
- 点击输入框旁截图按钮,或按
Ctrl+Alt+A。 - 在原生覆盖层中拖动框选区域,使用工具条标注(矩形、箭头、马赛克等)。
- Enter 确认:图像进入输入框并写入剪贴板,可直接发送给模型。
需要 OCR 时选「提取文字」或按 Ctrl+Alt+O,在文本面板复制或贴入输入框;「屏幕翻译」会在 OCR 后把带指令前缀的文本放进输入框。
让模型静默抓图¶
在宿主工具可用、且会话已加载该插件 bundle 的前提下,模型可调用:
screenshot({})
或 Windows 专用别名 screenshot_windows:不弹出覆盖层、不抢前台,返回保存路径,便于后续读图分析。
升级或改插件后的健康检查¶
换 DSH 版本或更新插件文件后,文档建议先执行:
shot_health({})
根据返回判断是否需要重启 DSH,避免仍用旧进程内的工具表。
开发者在改完宿主侧代码、尚未重启 DSH 时,可用 shot_preflight({}) 在磁盘代码上跑探针与闸门;交付前 README 给出 shot_gate({full:true}) 等命令,详见仓库「自检」一节。
适用场景与注意¶
适合谁
- 在 Windows 上使用 DSH desktop profile,希望在同一窗口内完成截图、标注、OCR、长截图、录屏并贴进对话的用户。
- 需要让智能体通过
screenshot工具获取屏幕证据、又不想每次手动框选的开发者。
务必知晓的限制
- 仅 Windows:抓屏、覆盖层、OCR、录屏均依赖 PowerShell / .NET 与 Windows API。
- 开发版:README 标明 0.1.x 非最终版,界面与行为可能变动;GitHub 星标当前为 0,不代表功能完整度,使用前请阅读源码与 MIT 许可证。
- 权限与沙箱:插件以当前 DSH 进程及 profile 配置运行;安装前应自行审查 GitHub 仓库 源码。Low integrity 工具沙箱中部分窗口操作必然失败,不代表宿主侧行为错误。
- DPI:宿主脚本需正确处理 DPI,否则高缩放比例下坐标与清晰度会异常(README「三个必须记住的坑」第一节)。
- 含中文的
.ps1需 UTF-8 BOM,否则 Windows PowerShell 5.1 可能误解析脚本。
结尾¶
dsh-screenshot 把 QQ 式覆盖层截图、离线 OCR、录屏和长截图接到 DSH 对话输入侧,并用宿主工具补上「模型静默抓图」与一整套可验证的自检入口。若你在 Windows desktop 环境做 Harness 日常协作或插件开发,可以从目录页与仓库 README 对照版本与安装步骤。