前言¶
在 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 插件頁。