前言¶
在 DeepSeek Harness(DSH)裏寫提示詞、跑命令時,若還要在瀏覽器另開一頁跟同事「一起聽」,窗口和注意力會來回切換;把聽歌、點歌、聊天塞進模型上下文,又會白白消耗 token。社區插件 dsh-desk-listen(維護者 luyang950)的做法是:在會話流裏用 /listen 拉起一張像普通回覆的卡片,與工位股市房間同步播放與聊天,不進模型上下文、不產生 token,遊戲服務器側也無需改代碼。下面介紹它是什麼、能做什麼,以及如何安裝與使用。
這是什麼¶
dsh-desk-listen 歸類爲 DSH 客戶端插件,當前版本 0.1.3,許可證 MIT。它把工位股市的「一起聽」搬進 DSH 的 Web 會話界面:卡片是自定義 chat node,掛在輸入 /listen 的那一輪上;平時只顯示一行歌名、一行當前歌詞和聊天記錄,鼠標移上去纔出現操作按鈕。
適配 DSH 版本範圍爲 >=0.2.1-0 <0.3.0-0;README 註明在桌面版 0.2.2-rc.1 運行時的 Web UI 上做過實測。
核心功能¶
長在會話裏,零 token¶
/listen 只產生只寫日誌的 command/run / command/done,結果裏只有房間號和房間名,不把聽歌狀態送進大模型。插件在本機 DSH 進程裏完成登錄與 API 轉發,前端通過 ModuleLoader bundle 渲染卡片(僅依賴 React)。
與房間時鐘同步¶
播放位置按遊戲服務器時鐘對齊:偏差超過約 1 秒才 seek,等聲音真正出來後再校準,並記錄本機 seek 要提前多少;偏差較小時用約 0.94~1.06 倍速追趕。半分鐘內最多跳轉 3 次,避免在同一段裏反覆跳。桌面版頁面經 dsh-app:// 轉發時拿不到音頻長度、無法流式跳轉,因此會先把整首歌取下來再播放;其他環境若發現無法跳轉,也會自動採用同樣策略。
全頁單一播放器,切會話不斷歌¶
播放器歸屬整個頁面,不綁定某張卡片。切換到別的會話仍繼續播放,回到原會話卡片仍顯示當前狀態。插件在 DSH 不刷新頁面就熱換代碼時,新版本會接手正在放的房間,舊版播放器自動停止。
卡片內交互¶
在卡片輸入框中可直接操作房間:
- 直接打字回車:在房間裏發言
/點 歌名或/搜:搜歌,在結果裏點「點歌」或「下一首」/切:切歌(房主或點歌者)/停//放:暫停 / 繼續(房主)/隊列:查看隊列(可置頂、刪除自己點的)/靜音、/離開
老闆鍵與會話名¶
默認老闆鍵爲 Ctrl + Alt + M(可在設置中修改):所有卡片摺疊成一行 ···,內容從 DOM 移除;設置裏可讓老闆鍵同時靜音,刷新後仍保持。在新會話裏 /listen 後,會話默認標題爲「隨手記」(可改成「整理週報」等),並通過常駐側邊欄機制(跑一個被拒掉的空輪次、不調用模型)保持入口可見。側邊欄 More 菜單頂部有「繼續聽 · 房間名」,可快速回到該會話;老闆鍵模式下該項隱藏。
登錄與訪問範圍¶
首次使用需在卡片內或 設置 → 一起聽 填寫遊戲服務器地址(http://地址:端口)、賬號、密碼。插件在本機替你登錄,只保存遊戲下發的會話 cookie($DSH_HOME/dsh-desk-listen/account.json,權限 0600),密碼不落盤;退出登錄會同步註銷遊戲側 cookie。
轉發範圍限定爲遊戲的 /api/mods/listen/* 與 /api/mod-media/listen/*;寫操作需帶插件請求頭 x-dsh-desk-listen: 1,並校驗 Origin,其他網站無法借你的登錄在房間發言。遊戲 HTTPS 使用內網 CA、Node 默認不信任,請使用 http 地址(README 示例端口爲 30418)。
安裝與啓用¶
Web 版 profile(命令行):
dsh plugin --profile web add github:luyang950/dsh-desk-listen
本地開發可使用 add link:/絕對路徑/dsh-desk-listen。安裝後需重啓 dsh web。
桌面版: 在左側 Plugins 頁用 GitHub spec 安裝,按提示重啓。
README 說明:無預構建分發腳本、項目未使用 TypeScript;運行時要求 Node >=22.13。
典型用法¶
在會話中輸入:
/listen # 打開卡片:已在房間則繼續聽,否則列出房間(也可開新房間)
/listen 3 # 進入 3 號房間
/listen 摸魚 # 進入名稱包含「摸魚」的房間
第一次使用前完成遊戲服務器登錄與配置即可。
插件還提供前綴爲 /dsh-desk-listen/ 的 HTTP 接口(統一返回 { ok, ... } 或 { ok: false, error }),包括 api/status、api/config、api/login、api/logout、api/sessions、api/game/<路徑> 轉發及 media/<歌曲 id> 音頻 Range 訪問等,供設置頁與卡片前端調用。
適用場景與注意¶
適合已在工位股市使用「一起聽」、又希望把聽歌與 DSH 日常工作放在同一 Web 界面、且不希望聽歌聊天佔用模型 token 的開發者。老闆鍵適合需要快速隱藏卡片內容的辦公場景。
安裝前建議閱讀 GitHub 倉庫 源碼與 MIT 許可證。插件以當前 DSH 進程的權限在本機登錄遊戲並保存 cookie,只應安裝你信任的版本。社區目錄 skillhub.cn 與 DeepSeek / 幻方無官方從屬關係,屬 DSH「一切皆插件」生態中的第三方條目。
開發者可在倉庫根目錄執行 npm test(node --test,零依賴)驗證登錄、轉發與 /listen 解析等行爲。
結尾¶
dsh-desk-listen 把工位股市一起聽做成會話內嵌卡片:同步播放、點歌聊天、老闆鍵與會話側欄入口,且不增加模型 token 成本。安裝命令與細節以倉庫 README 爲準。
- 目錄頁:https://www.skillhub.cn/plugins/luyang950/dsh-desk-listen
- GitHub:https://github.com/luyang950/dsh-desk-listen