前言¶
在 DeepSeek Harness(DSH)里跑带 computer-use 的智能体时,模型会间歇性调用 desktop_mouse、desktop_input 等工具,真的去动你的鼠标和键盘。若你同时切到其他窗口写文档或回消息,很难从余光判断「此刻是不是 AI 在控机」,误抢输入或误点确认的风险会上去。
生态里已有若干边缘光类插件(如 dsh-moon-light、dsh-rimlight、dsh-fleeting-light),它们多半画在 DSH 网页窗口内;一切到别的应用就看不见。维护者 Ravi666688 的 dsh-screen-glow 走另一条路:用 Electron 开 OS 级全屏透明置顶窗,盖在所有窗口之上,只在判定为「接管电脑」的工具调用时亮边,并在屏幕中上方显示当前在做什么。分类为客户端插件,仓库 Ravi666688/dsh-screen-glow,许可 MIT;社区目录页见 SkillHub。
这是什么¶
dsh-screen-glow 是挂在 DSH web profile 上的客户端插件:宿主根据 Cordis 工具名更新本地状态,独立覆盖层进程读 state.json,在主屏四边绘制多层内辉光与可选粒子,并浮一条提示条。读文件、bash、web 搜索、浏览器 CDP 自动化等 不会 点亮;只有匹配「点亮 / 续命」清单的工具才会触发或延长光效(清单可在 cordis.patch.yml 里改)。例如 desktop_mouse 且 action:"position" 只读光标位置时不算接管,不亮。
核心功能¶
三种光态¶
| 光态 | 触发 | 默认色 | 节奏 |
|---|---|---|---|
| 操控 | 接管鼠标/键盘(见默认 trigger 子串) | 星蓝 #4da3ff |
约 3.9s 呼吸 |
| 询问 | ask_user_question |
琥珀 #fbbf24 |
2.1s 脉冲 |
| 批准 | approval/request |
红 #f87171 |
1.4s 急脉冲 |
操控结束后约 1.6s 淡出(连续操作不会闪);询问态结束后会先回到操控色余晖,再按停留时长熄灭。工具切换时亮度会有小幅上顶,便于看出「刚点了一下」。
视觉与交互边界¶
- 只覆盖 主屏;
setIgnoreMouseEvents+showInactive,不抢焦点、不挡点击。 - 粒子默认沿四边生成向内飘散(蓝白、
lighter叠加);系统开启「减弱动效」时只画静态光,属预期行为。 - 五种粒子款式:
stream(默认)、spark、dust、orbit、none。
屏幕提示条¶
操控、询问、批准态在屏幕中心偏上显示圆角提示条(磨砂黑底 + 主色点 + 一句话)。开启 bannerAction 时,提示语后可追加「正在点击 / 正在看屏幕 / 正在输入文字」等动作文案;多会话时可显示会话工作目录名。亮着时每 7 秒从自定义句库随机换一句(操控 / 询问各最多 12 句、每句 60 字)。
设置页与数据通路¶
DSH 设置 → 屏幕边缘光:操控色 / 询问色 / 批准相关 look、粒子、厚度、数量、速度、停留时长等,带实时预览与「试一下(真机 3 秒)」。配置落在 ~/.dsh/screen-glow/settings.json,改完经宿主 HTTP 推给覆盖层,无需重开 DSH。
设置页 ──PUT /screen-glow/settings──▶ 宿主(落盘 + 改写 state.json 的 look)
──POST /screen-glow/preview──▶ 宿主强制试亮 N 秒
覆盖层 ──每 100ms 读 state.json──▶ 换色 / 厚度 / 粒子
本机路由还包括 GET /screen-glow/settings、POST /screen-glow/hide(紧急熄灯),仅监听宿主 webServer 同源地址,无对外遥测。
可靠性与自检¶
- 看门狗(0.3.0):每 5 秒检查覆盖层,异常时自动重拉(退避 5s→120s,最多 5 次),可在配置里关
watchdog。 - 紧急熄灯:全局快捷键
Ctrl+Alt+G隐藏 60 秒,或设置页「立即熄灯 60s」。 - 自检 CLI(0.5.0,当前包版本 0.5.2):安装后可执行
dsh-screen-glow,doctor检查 11 项(profile、数据目录、settings、覆盖层进程、Electron 路径、HTTP 连通等),失败时退出码 1。
安装与启用¶
在已安装 DSH 且使用 web profile 的机器上,按 README 原文执行:
dsh plugin --profile web add dsh-screen-glow
从指定 GitHub 仓库添加时,占位符需换成你的 fork 或维护者路径:
dsh plugin --profile web add github:<you>/dsh-screen-glow
覆盖层需要本机 Electron。查找顺序:overlay.electronPath → 环境变量 DSH_SCREEN_GLOW_ELECTRON / DSH_ELECTRON_PATH → $DSH_HOME/electron/electron[.exe] → ~/.dsh/electron/electron[.exe]。DSH 桌面端或装过 dsh-pet 的环境通常已有;找不到时插件其余逻辑仍工作,日志会出现 electron-not-found 类 warn,边缘光不显示。
Node 引擎要求 >=22.12.0(见 package.json)。插件声明与 DSH 0.2.1-rc.5 兼容。
宿主配置示例(字段以 README 为准,非法值会 clamp 或回落默认):
- id: dsh-screen-glow
name: 'dsh-screen-glow'
config:
enabled: true
holdMs: 1600
minOnMs: 420
maxOnMs: 300000
look:
color: '#4da3ff'
thickness: 1
intensity: 0.9
particles: 80
speed: 1
trigger: [desktop_mouse, desktop_input, ...]
extend: [desktop_screenshot, desktop_perceive, ...]
electronPath: ''
dataDir: ''
典型用法¶
装好后可直接用 CLI 做状态检查或试亮,无需等模型真正控机:
dsh-screen-glow doctor # 全量自检(人读)
dsh-screen-glow doctor --json # 机器读
dsh-screen-glow status # 一行 JSON 状态
dsh-screen-glow hide 60000 # 紧急熄灯 60 秒
dsh-screen-glow preview 3000 pending # 真机试亮 3 秒(control|ask|pending)
未加入 PATH 时:
node <插件目录>/lib/cli.mjs doctor
排障时可对照 README:无光是查 Electron;透明窗花屏可设 DSH_SCREEN_GLOW_SOFTWARE=1;状态可看 ~/.dsh/screen-glow/state.json 与 overlay.status.json。
适用场景与注意¶
适合经常在 DSH 里开 computer-use、又需要全桌面可见「谁在控机 / 谁在等你回复 / 谁在等批准」的开发者。插件与当前 DSH 进程同权限运行,会通过 spawn 拉起本机配置的 Electron 子进程绘制覆盖层;安装前建议通读仓库 lib/index.js 与安全边界说明,确认可接受 MIT 许可与本地 HTTP 路由范围。
隐私方面:README 写明不联网、无遥测、不截图、不读屏幕内容;覆盖层只读本地 state.json(布尔、工具名与少量数字)。社区目录 SkillHub 与 GitHub 无 DeepSeek / 幻方官方从属关系,属 DSH「一切皆插件」生态中的第三方条目。
结尾¶
dsh-screen-glow 把「模型真的在动鼠标键盘」和「在问你 / 等你批准」拆成蓝、琥珀、红三种 OS 级边缘反馈,并配上中上方提示条与设置页、看门狗、自检 CLI,弥补仅网页内边缘光切应用即不可见的问题。细节与截图见 GitHub README,安装与索引见 SkillHub 插件页。