前言¶
在 DeepSeek Harness(DSH)里长时间跑会话时,切到别的窗口后很难察觉任务已经跑完、在等审批,或中间报错。常见做法是盯着界面刷新,或自己写脚本去轮询状态。下面介绍的 dsh-session-sounds 由维护者 XinpengWei 提供,在 Host 侧监听会话与审批事件,在桌面用 Web Audio 合成提示音、弹出右下角提醒卡片,并可选把同样的事件推到微信(PushPlus / Server酱)或 ntfy。插件归类为社区目录中的「联网工具」;安装与运行依附于你当前的 DSH profile 与进程权限,使用前请自行核对仓库源码与 MIT 许可证。
这是什么¶
dsh-session-sounds(GitHub:XinpengWei/dsh-session-sounds)面向在 DSH Web 或桌面 App 中使用智能体会话的用户:用三种可区分的提示音区分「任务结束」「需要你确认或回答」「会话出错」,并支持手机推送,避免必须守在页面前。
核心功能¶
监听与提醒¶
Host 端订阅会话状态以及审批、用户提问相关事件;页面默认每秒轮询新提醒(同时保留 SSE 接口),桌面 App 与浏览器均可收到。
- 结束:
running从true变为false时才视为结束;插件启动时已在运行的会话不会误报。 - 需要输入:审批或提问事件会延迟约 900ms 再提醒,避免自动策略立即放行的请求打扰你。
- 出错:会话错误单独一类提示音。
三种提示音均由 Web Audio 实时合成(结束为上移两音、需要输入为三连音、出错为下行低音),不依赖音频文件。窗口右下角会短暂显示会话标题与原因,点击可关闭。
设置项¶
路径:设置 → 音效提醒。包含总开关、各事件类型开关、音量、是否包含子代理(默认子代理不提醒)、是否关闭提醒卡片、试听、发送测试提醒,以及手机推送配置。界面文案支持中文 / English,随 DSH 界面语言切换。
多标签页时通过 Web Locks(失败时回退到 localStorage 租约)只让一处播放音效,避免重叠。浏览器通常要求页面至少被点击一次后才允许发声;设置页会显示音效引擎状态。
手机推送¶
推送由 Host 直接发出,不依赖页面是否打开。配置保存在 $DSH_PROFILE_DIR/session-sounds.push.json;若未设置该环境变量,则使用 $DSH_HOME/session-sounds.push.json(本机一般为 ~/.dsh/session-sounds.push.json),权限为 0600。字段含 provider(ntfy / pushplus / serverchan)及对应凭据。推送失败不影响桌面音效;设置页会显示最近一次推送的 HTTP 状态或错误。
微信(推荐)
- PushPlus:在 pushplus.plus 微信登录并关注公众号,复制 token;在 设置 → 音效提醒 → 手机推送 选择「微信 · PushPlus」,粘贴 token,勾选事件后保存并「发送测试推送」。
- Server酱:在 sct.ftqq.com 获取 SendKey,在插件中选择「微信 · Server酱」并测试。
ntfy(可选)
手机安装 ntfy,订阅 topic;插件中推送方式选 ntfy,服务器默认 https://ntfy.sh,topic 与手机订阅名一致(可使用「随机生成」)。topic 相当于共享密钥,请使用不可猜测的名称;Android 省电策略可能断开常驻连接,若通知不及时可改用微信通道。
安装与启用¶
本插件以 bundle 形式安装到当前 profile,而非通过名称拼接的 dsh plugin add 命令。在 Harness 中使用 plugin_manager,action: install_bundle,target 指向本仓库目录;或将包加入 profile 的 dsh.profile.bundles 后重启。安装后新 bundle 可通过 HMR 生效。
若已安装开发版 @local/dsh-session-sounds,请先卸载或禁用:两者 patch id 均为 session-sounds,同时启用会冲突。替换已安装的同名包后,可在插件管理里禁用再启用以让 Host 重新加载,或直接重启 Host;客户端代码更新后刷新页面即可。
package.json 中当前版本为 0.3.0。
典型用法¶
- 完成 bundle 安装并刷新页面,打开 设置 → 音效提醒,开启总开关与需要的事件类型,在设置页试听三种音。
- 发起一条会结束的会话,切到其他应用;结束时应听到结束音并看到提醒卡片(若未关闭)。
- 若需离开电脑:在手机推送里配置 PushPlus 或 Server酱(或 ntfy),保存后点「发送测试推送」,在微信服务通知或 ntfy 客户端确认收到。
- 子代理会话若也要提醒,在设置中打开「包含子代理」(声音与推送分别过滤)。
Host 暴露的接口包括轮询 /api/session-sounds/poll、SSE /api/session-sounds/stream、测试与推送相关路径;页面侧负责轮询、发声与设置表单,细节见仓库 README「结构」一节。
适用场景与注意¶
适合长时间 unattended 跑 DSH 会话、需要听觉或手机通知代替盯屏的开发者。插件在当前 DSH Host 进程权限下运行并向外网发起推送请求,安装前应阅读 index.js / client.js 与 cordis.patch.yml,确认是否符合你的安全策略。
PushPlus 与 Server酱有免费额度;token 或 SendKey 失效时,设置页「最近一次手机推送」会显示失败原因。仅 PushPlus 渠道时,消息主要出现在微信服务号内,不一定有系统横幅;可按 README 说明通过 PushPlus 官方 App 转发。重复相同标题与内容可能触发 PushPlus 服务端校验错误,插件已为消息加毫秒时间戳以减轻该问题。
DSH 社区插件目录(如 SkillHub 上的条目)由社区维护,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-session-sounds 把会话结束、待你输入和报错三类事件统一到桌面音效、卡片提醒与可选手机推送,适合作为 DSH 日常开发的常驻 bundle。查阅说明与源码:
- 目录页:https://www.skillhub.cn/plugins/XinpengWei/dsh-session-sounds
- GitHub:https://github.com/XinpengWei/dsh-session-sounds