前言¶
在 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