dsh-screenshot-win:DSH 下的 Windows 屏幕截图(GUI 与 Agent 共用一套采集)

前言

在 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。

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

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

小夜