dsh-status-box:DSH 菜單欄狀態與全局快速發任務

前言

在 DeepSeek Harness(DSH)裏,想看清「哪些會話在跑、哪個在等我」,往往要打開面板、逐個工作區點進去;要發新任務,又要走一遍「找會話 → 輸入」。窗口一直留在 DSH 裏時還算順手,一旦切到別的應用,這兩件事都會被打斷。

dsh-status-box(倉庫內亦稱「狀態盒」)把「看全局狀態」和「從任意前臺 App 丟任務進工作區」拆到系統菜單欄/任務欄和全局熱鍵上,由 DSH 插件客戶端與原生小助手通過本機迴環協作。下面介紹它是什麼、能做什麼、如何安裝與日常使用。

這是什麼

dsh-status-box 是面向 DSH 桌面端的客戶端類插件,維護者爲 GitHub 用戶 Nuke0519(倉庫 Nuke0519/dsh-status-box)。一句話定位:macOS 菜單欄 / Windows 任務欄常駐小鯨魚顯示各工作區運行與等待數量,全局熱鍵彈出 Spotlight 風格輸入框,在選定工作區新建會話併發送任務,無需切回 DSH 主窗口。

插件在 DSH 窗口頂部保留「狀態膠囊」;macOS 與 Windows 另需安裝對應的原生小助手(菜單欄或托盤 + 本地 HTTP 服務)。協議兩端共用,插件側不改平臺分支。Linux 上目前僅有窗口頂部膠囊,無菜單欄小助手。

社區目錄頁:skillhub.cn 上的 dsh-status-box。DSH 生態以「一切皆插件」爲方向;SkillHub 等爲獨立社區索引,與 DeepSeek / 幻方無官方從屬關係。

核心功能

看狀態

  • DSH 窗口內:工作欄最左側膠囊顯示彙總,例如 ● 運行中、◉ 待處理,點擊可召喚與熱鍵相同的原生輸入窗。
  • macOS 菜單欄:DeepSeek 小鯨魚 + 數字,顏色隨狀態變化;點開展開按工作區分組的明細與最近會話列表。
  • Windows:任務欄托盤同樣展示小鯨魚與計數(資料稱 WinForms/.NET 8 實現;托盤與熱鍵 UI 在 Windows 實機驗證尚待社區反饋,協議層冒煙測試已通過)。

狀態含義(與 README 一致):

  • ◉ 橙色:有會話在等你(審批 / 提問 / 計劃確認)
  • ● 綠色:有會話正在運行
  • ✓ 藍色:有會話剛完成(未讀)
  • ○ 灰色:空閒,或 DSH 已退出約 90 秒無心跳

發任務

全局熱鍵打開單輸入框,輸入後 Enter 即在目標工作區發起真實會話:

平臺 熱鍵 備用
macOS ⌥⌘⇧D ⌥⌘⇧K(部分 Mac 上 D 被其它 App 全局鉤子佔用時)
Windows 10/11 Ctrl+Alt+Shift+D —

行爲要點:

  • 再按一次熱鍵可收起(toggle);窗口出現在鼠標所在屏幕居中偏上。
  • Tab 切換目標工作區,會記住上次選擇。
  • DSH 未啓動時任務寫入本地隊列,啓動後約 2 秒內自動發出。
  • 發送失敗時輸入窗會重新彈出,保留原文並紅字說明原因,可回車重試。
  • macOS 使用 Carbon 全局熱鍵,README 寫明不需要輔助功能授權。

設置

DSH → 設置 → 狀態盒:開關「發送後打開對話頁」。

  • 開:發完後將 DSH 拉到前臺並打開新會話。
  • 關(默認):任務照常開跑,不搶當前窗口。

配置經小助手寫入 ~/Library/Application Support/DSHStatusBox/config.json(字段含 openOnSend)。配置頁需能連上本機 127.0.0.1:59421 上的小助手服務。

架構(便於排錯)

插件 client.js 聚合工作區與會話狀態,POST 到 http://127.0.0.1:59421/status;小助手輪詢 GET /command 取隊列任務,客戶端用 DSH 槽位在目標工作區 session.prompt 發送後 POST /command/ack。僅本機迴環,不上傳、不讀 DSH 數據庫。帶 Origin 的請求限制爲 dsh-app:// 或本機 localhost,其它來源 403。

安裝與啓用

前置:macOS 11+、Xcode 命令行工具(xcode-select --install)、已安裝 DSH 桌面端;Windows 側見倉庫 windows/README.md。

插件以 bundle 形式裝進當前 DSH profile(插件市場 / 插件管理器選擇本倉庫目錄,或使用 dsh 的 install_bundle 指向倉庫根目錄)。不要憑倉庫名自行拼接未在文檔出現的 dsh plugin add 命令。

macOS:菜單欄小助手

在倉庫 menubar 目錄執行安裝腳本(編譯、註冊登錄項一步完成):

cd menubar
./install.sh

裝完菜單欄出現小鯨魚,⌥⌘⇧D 即可用;登錄後自動啓動。卸載:

cd menubar
./uninstall.sh

常見路徑:

  • 應用:~/Library/Application Support/DSHStatusBox/DSHStatusBox.app
  • 登錄項:~/Library/LaunchAgents/com.dsh.statusbox.menubar.plist
  • 隊列與狀態:~/Library/Application Support/DSHStatusBox/{queue.json,status.json,config.json}

Windows

# 使用 Releases 中的 DSHStatusBox-win-x64.zip 解壓後
pwsh -File install.ps1

# 或本地構建(需 .NET 8 SDK)
pwsh -File windows\build.ps1
pwsh -File windows\dist\win-x64\install.ps1

裝完後任務欄右下角出現小鯨魚,Ctrl+Alt+Shift+D 打開輸入窗。

權限說明:插件在 DSH 進程內運行,小助手以本機用戶權限監聽熱鍵與本地端口。安裝前請自行查看倉庫源碼與許可證(package.json 標明 MIT)。

典型用法

  1. 只看彙總:DSH 在前臺時看頂部膠囊;最小化或切到其它 App 時看菜單欄/托盤小鯨魚。
  2. 看明細:點菜單欄圖標,按工作區查看 名稱 · N 待 · N 運行 及最近會話(點會話條目會把 DSH 主窗口帶到前臺,README 說明目前無法 deep link 到具體會話)。
  3. 快速發任務:任意 App 前臺按 ⌥⌘⇧D(或 Windows 對應熱鍵)→ 輸入需求 → Enter;需要旁觀新會話時在設置裏打開「發送後打開對話頁」。
  4. DSH 內等價操作:DSH 內 ⌘⇧K 或點頂部膠囊,與召喚原生輸入窗相同。

DSH 完全關閉時,懸浮窗會提示 DSH 未運行;任務仍可按上述方式入隊。

適用場景與注意

適合:經常在多個 App 與 DSH 之間切換、需要一眼看到全工作區等待/運行數、希望用全局熱鍵把想法立刻丟進某個工作區新會話的桌面用戶。

注意:

  • DSH 仍開着時,菜單欄會保持最後已知狀態,不會自動變灰;僅 DSH 退出約 90 秒後顯示灰色空閒。
  • macOS 全屏空間下,其它 App 窗口無法蓋在全屏 App 之上,熱鍵召喚的懸浮窗可能不出現;可先退出全屏或切到普通桌面空間。
  • 設置頁顯示未連上小助手時,多爲瀏覽器對本機 127.0.0.1:59421 的訪問策略問題;升級小助手後重開設置頁,或點「重試」。熱鍵無響應時確認 com.dsh.statusbox.menubar 登錄項在運行且已通過 menubar/install.sh 打包進 .app。
  • 修改 menubar/main.m 後需重跑 menubar/install.sh;僅改 client.js 時客戶端可熱更新。開發期偶發「召喚被舊實例喫掉」,重啓 DSH 即可。

倉庫提供 ./scripts/verify.sh(macOS/Linux)與 node --test tests/*.cjs 等自測入口,無 npm 依賴。

結尾

dsh-status-box 把 DSH 的全局會話狀態搬到菜單欄/托盤,並用一條全局熱鍵完成跨工作區的快速發任務,本地隊列保證 DSH 晚開也能投遞。若你要在桌面工作流裏少切一次 DSH 窗口,可從社區目錄或 GitHub 倉庫按文檔安裝 bundle 與原生小助手。

  • 目錄頁:https://www.skillhub.cn/plugins/Nuke0519/dsh-status-box
  • GitHub:https://github.com/Nuke0519/dsh-status-box
羽毛球分组比赛记分
小程序二维码

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

小夜