前言¶
在 DeepSeek Harness(DSH)里和 Agent 协作时,经常需要把屏幕上的界面、报错或窗口状态交给模型看。纯靠文字描述容易漏细节;把图放进对话又希望文件同时落在当前会话工作区,方便后续引用。社区里已有多种截图类插件,侧重点各不相同。下面介绍维护者 lsnnn123 发布的 dsh-screenshot-win:面向 Windows,在聊天输入框提供相机按钮,并注册 Agent 可调用的 screenshot 工具,两种入口走同一套宿主逻辑。
这是什么¶
dsh-screenshot-win 是标准的 DSH bundle 插件:package.json 中声明 dsh.bundle.patch 与 dsh.client,可在插件页面启用、关闭或卸载,也可通过插件管理器从 GitHub 安装。分类为客户端;仓库 https://github.com/lsnnn123/dsh-screenshot-win,许可证 MIT,当前版本 0.1.0。插件目录页:https://www.skillhub.cn/plugins/lsnnn123/dsh-screenshot-win。
核心功能¶
插件分成两半,共用 /dsh-screenshot-win/capture 路由与同一批 PowerShell 采集脚本,不是两套实现。
GUI(浏览器半)
输入框左侧工具栏有相机图标。点开后可选:框选区域、整个屏幕、指定某个窗口。截图作为图片附件插入当前会话输入框(可直接发送),同时 PNG 落盘到会话工作区。
Agent 工具(宿主半)
注册名为 screenshot 的工具,模型可自行触发截图;图片作为工具结果进入对话(模型可见),文件同样落盘。
窗口采集使用 PrintWindow 与 PW_RENDERFULLCONTENT,被遮挡的窗口(含 Electron 窗口)也可截取;少数 GPU 直绘失败时可回退屏幕拷贝(screen_fallback)。界面语言跟随 DSH:ctx.locale.active 为 zh* 时显示中文,否则英文。
安装与启用¶
推荐通过插件管理器 / 插件市场安装。资料中的安装命令为:
plugin_manager action=install_bundle target="github:lsnnn123/dsh-screenshot-win"
装好后在 DSH「插件」页面出现对应卡片:开关为启用/关闭,详情页卸载会从 profile 的 dependencies 中移除,由插件管理器改 profile,无需手工编辑。
若本机 profile 安装策略或 CLI 限制导致无法走管理器,README 描述了与插件管理器相同数据结构的手工 bundle 接线(目录联接、package.json 的 dependencies 与 dsh.profile.bundles 等);一般用户以方式 A 为准。改动 lib/index.js 需重启应用;改动 client/client.js 刷新页面即可。
配置¶
在 profile 或用户级 cordis.patch.yml 的插件行中可配置(bundle 自带 cordis.patch.yml 会插入插件行;用户级与用户 bundle 重复插入会挂载两次,需避免):
- insert:
- id: dsh-screenshot-win
name: dsh-screenshot-win
config:
saveDir: screenshots # 相对会话工作区
maxWidth: 1600 # 超过则等比缩小(0 表示不缩放)
format: png # png | jpeg
quality: 88 # jpeg 质量
timeoutMs: 300000 # 单次采集脚本超时
regionTimeoutSec: 180 # 框选覆盖层的自动取消时间
tool: true # 是否注册 screenshot 工具
routes: true # 是否挂载浏览器半用的 HTTP 路由
典型用法¶
手动截图
在对话输入框点相机,按提示选择框选、整屏或指定窗口,确认后发送或继续编辑消息。
Agent 调用 screenshot
常用参数如下(完整表见仓库 README):
| 参数 | 说明 |
|---|---|
mode |
region(默认)/ screen / window |
out |
输出路径;默认 <工作区>/screenshots/shot-<时间戳>.png |
hwnd / window / process / active |
指定窗口 |
list_windows |
仅列出可截取窗口(便于模型选目标) |
框选模式需要真人拖拽;纯自动化环境可配合超时参数观察取消路径。
运行中自检宿主状态(资料示例端口):
Invoke-WebRequest http://127.0.0.1:19387/dsh-screenshot-win/status
返回版本、默认保存目录及浏览器半登记状态。
适用场景与注意¶
- 适合:在 Windows 上使用 DSH,需要把屏幕内容快速放进对话,并保留工作区副本的开发者或日常用户。
- 环境:仅 Windows(GDI /
PrintWindow、PowerShell 7);package.json要求 Node^22.19.0 || >=24.0.0,os为win32。 - 安全:插件以当前 DSH 进程权限运行,可截屏、写工作区、执行采集脚本。安装前应阅读源码与 MIT 许可证,确认符合你的环境策略。
- 生态:DSH 采用「一切皆插件」思路;社区精选目录独立于 DeepSeek / 幻方,市场列表来自 awesome-dsh-plugin 等社区维护的目录,并非官方应用商店。
结尾¶
dsh-screenshot-win 把输入框相机与 screenshot 工具接到同一套 Windows 采集链路上,支持框选、整屏与指定窗口,截图进对话并写入工作区。详情与源码:https://www.skillhub.cn/plugins/lsnnn123/dsh-screenshot-win,https://github.com/lsnnn123/dsh-screenshot-win。