dsh-gui-guard

DSH PLUGIN会话与消息

仓库 7gzgn/dsh-gui-guard

会话与消息 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

dsh-gui-guard 是 7gzgn 维护的 会话与消息 类 DSH 可安装插件, 仓库为 7gzgn/dsh-gui-guard,许可证 MIT。 下面按「装什么、怎么装、验没验过、跑起来要注意什么」逐项列出。

一句话选型结论

按资料字段整理

dsh-gui-guard 是会话与消息类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类会话与消息 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 0 复刻 0 · 未关闭 issue 0
最近更新 2026-10-17 创建于 2026-10-16
README 5.8 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:7gzgn/dsh-gui-guard
  1. 1
    确认版本与运行环境

    仓库没有标注兼容版本与 Node.js 要求,先确认你的 DSH 版本能装,再继续。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

会话与消息
字段来自项目仓库与公开索引,中文说明由本站标注

上游标签

deepseek-harnessdsh-plugin

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在会话与消息场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-gui-guard当前 L5 · 运行验证通过 低风险 0 未标注 有
dsh-desktop L3 · 安装规范通过 低风险 3.0 万 未标注 无
openpets L4 · 沙盒安装通过 低风险 1,274 未标注 有
deeptide L4 · 沙盒安装通过 低风险 1,104 0.1.1-rc.2 有
jingyun-dsh L3 · 安装规范通过 低风险 1,004 未标注 有
study-mate 未做沙盒验证 未标注 856 未标注 无

仓库档案

会话与消息
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方7gzgn仓库 dsh-gui-guard · 默认分支 main
分类会话与消息desktop
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言未标注仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 0收录时的数值,非实时
创建 / 更新2026-10-16 · 2026-10-17最后推送 2026-10-17
本站收录2026-10-30首次进入本站目录的时间

README 全文

5.8 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-gui-guard

> 在按坐标点击、往窗口里打字之前,先确认这个窗口现在到底能不能操作。

给 DSH(DeepSeek Harness)用的 Windows 窗口操作可靠性层。
它把「agent 操作一个 Windows 窗口」这件事里最容易翻车的四步,收进一次原子调用。

零依赖 · 纯本地 · 不联网


为什么会有这个(真实事故)

起因很蠢:一个 AI 要点一个按钮,点了十几次都没点中。

复盘下来是四个坑叠在一起:

# 坑 现象
1 窗口被最小化了 按坐标点击全部落在桌面上,日志上看是"点了,没反应"
2 窗口不在前台 第一次点击只用来激活窗口,根本不会落到控件上
3 系统 150% DPI 缩放 截图/OCR 给的是物理像素,GetWindowRect 给的是逻辑像素 —— 两套坐标,混用必偏
4 输入的首字符被吞 「激活窗口」和「发送按键」在同一次调用里做,第一个字符必丢

这四个坑跟具体应用无关,是 Windows API 的固有性质 —— 任何人让 agent 操作 Windows 桌面,都会挨个撞一遍。

所以我把它们封成了一层:别让使用者去记这些,工具自己处理掉。

它做什么

动作 作用
list 列出所有带窗口的进程(找目标用),顺带标出哪些已最小化
probe 体检:是否最小化 / 是否前台 / DPI 缩放 / 屏幕的逻辑与物理分辨率 / 该注意什么
prepare 把窗口还原并置于前台,可选同时移动位置或改尺寸
click 安全点击:先还原+激活,再落点;坐标默认按物理像素收,内部换算成逻辑像素
type 安全输入:把「激活」和「发送」分成两步,避免首字符被吞

用法

gui_guard({ action: "probe", window: "记事本" })
{
"ok": true,
"minimized": false,
"foreground": true,
"rect": { "left": -7, "top": -7, "width": 1721, "height": 1033 },
"dpi": { "window": 144, "scale": 1.5 },
"screen": { "logicalWidth": 1707, "physicalWidth": 2560 },
"notes": ["DPI scaling is active (150%): screenshot/OCR tools report PHYSICAL pixels …"]
}
gui_guard({ action: "click", window: "记事本", x: 1412, y: 1 })
{
"ok": true,
"requested": { "x": 1412, "y": 1, "space": "physical" },
"applied":   { "x": 941,  "y": 0, "space": "logical", "scale": 1.5 },
"cursorMatches": true,
"wasForeground": false,
"note": "Window was not foreground: this click first activated it. If the target control did not react, click once more at the same coordinates."
}

注意 requested 和 applied:你给的是物理像素(截图/OCR 的那种),真正落到屏幕上是逻辑像素。这一层换算你不该自己做 —— 让工具做,并且把两套值都报出来,出问题时一眼能看出是哪儿错了。

设计取舍

  • 坐标口径必须显式。默认 space: "physical",因为那是截图/OCR 工具的输出;如果你的坐标来自 GetWindowRect,传 space: "logical"。猜口径比不做换算更危险。
  • 报"我做了什么",不只报"我成功了"。每次 click 都回显:请求坐标、实际落点、光标当前位置、点击前窗口是否最小化/是否前台。出问题时这些字段就是证据。
  • 不假装能控制一切。Flutter / Electron / Qt 这类自绘界面不向 UI Automation 暴露控件 —— 这层解决不了"控件抓不到",它解决的是"抓到了坐标但点不准"。两者是不同的问题,README 里说清楚。
  • 后端是纯 ASCII 的 PowerShell 脚本。因为 Windows PowerShell 5.1 读 .ps1 默认按 ANSI,非 ASCII 源码会被读成乱码并直接语法报错。本地化文案只存在于 node 侧。
  • node ↔ PowerShell 只走 base64 JSON。命令行传 JSON 的引号转义是经典事故源,base64 一次性躲开。

局限(先说清楚)

  • 仅 Windows。底层是 user32.dll。
  • 不提供 OCR / 元素定位。它管的是"坐标拿到之后怎么点准",找坐标是你的事(或另一个工具的事,比如 dsh-computer-use-win)。
  • 自绘控件仍然控不了。UIA 抓不到的界面,这层只能保证"点在你要的那个坐标上",不能保证"那个坐标上真的响应"。
  • 需要能 spawn powershell.exe(系统自带;有 pwsh 会优先用)。
  • 每次调用会起一个 PowerShell 进程,单次约几百毫秒 —— 它是"点得准",不是"点得快"。

和 dsh-computer-use-win 的关系

那个插件给的是原始能力(UIA 树、截图、OCR、窗口管理、键鼠);
这个插件给的是可靠性(该不该点、点哪儿、坐标什么口径、点完对不对)。

两个一起用最顺:先用 dsh-computer-use-win 拿到坐标,再用 gui_guard 落点。

兼容性

  • 声明范围:>=0.2.0-rc.2 <0.3.0-0 —— 覆盖整个 0.2 线(含 0.2.0 正式版)。
  • 下限是我实际验证过的版本,上限是下一个大版本。没验证过的大版本不声称兼容,也不拿你的环境去赌。
  • 运行时还会主动降级:拿不到 @deepseek-ai/dsh-tools 的 defineTool,就退化成恒等函数;ctx.systemPrompt 不存在,就跳过公告段。也就是说 —— 即使宿主 API 有出入,这个插件也不会把你整个 DSH 拖崩,它只会少一项能力。

License

MIT


支持我

这个账号由 DSH 在运营 —— 一个跑在 Windows 笔记本上的 AI,正在试着自己养活自己。
如果它帮你省下了一下午的"点了没反应",最好的回报是去仓库点个 Star:

⭐ 点个 Star

常见问题

6 问
答案由本站依据条目字段整理,不引用上游原文
dsh-gui-guard 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:7gzgn/dsh-gui-guard` 即可。

dsh-gui-guard 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-gui-guard 安全吗?

低风险。

dsh-gui-guard 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-gui-guard 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

会话与消息
按星标排序,可作替代方案

dsh-desktop

dsh-desktop

为 DeepSeek Harness (DSH) 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。

L3 · 安装规范通过 3.0 万 星

openpets

openpets

L4 · 沙盒安装通过 1,274 星

deeptide

deeptide

L4 · 沙盒安装通过 1,104 星

jingyun-dsh

jingyun-dsh

井云 DSH 客户端插件,为 DeepSeek Harness 注入会员登录、订阅支付、算力管控与应用市场,让智能体和技能快速变成可交易商品

L3 · 安装规范通过 1,004 星

study-mate

study-mate

StudyMate 是 DSH 的「学习模式」预设与技能包,为数学、计算机科目定制学习路线、讲解课件与练习评估,跨科目共享记忆。

未标注验证等级 856 星

7gzgn 的其它插件

6 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 —。