DSH Plugins Marketplace

DSH Plugins

Plugins

/

dsh-turn-music

r

dsh-turn-music

Manifest valid

DSH Round Reminder Music Plugin: Automatically plays music to call you back when the conversation ends, with a built-in bell ring, customizable/uploadable audio, and pause anytime

UI (client)hasBundlePatchMachine translated

dsh-turn-music

DeepSeek Harness 的回合提醒音乐:对话(回合)结束时自动响起音乐,把离开屏幕的你叫回来。内置电话「叮铃铃」铃声,可在设置里开关、改路径或直接上传音频,右下角浮标随时暂停。

Turn-finished music reminder for DeepSeek Harness Web: a chime/ringtone (bundled telephone ring, or any local audio file, or an upload) plays when the agent finishes a turn, with an in-page chip to pause/dismiss.


它解决什么问题

Agent 跑长任务时你走开了,回来才发现它十分钟前就答完了。这个插件在回合结束的那一刻播放一段音乐,一直响到你点暂停;声音在浏览器里播,所以手机、笔记本、远程访问的页面都能听见。

回合开始 → (你走开)→ 回合结束 → 🔊 叮铃铃 + 右下角浮标「⏸ 暂停 / ✕」

特性

  • 回合结束自动响:监听会话状态(running 由 true 变 false),不依赖模型自我提醒,也不占用 API 调用。
  • 设置里开关:设置 → 内置插件 → 回合提醒音乐,同一张卡片也出现在左侧插件面板里。
  • 自定义音乐:填宿主机绝对路径(支持 ~),或直接在卡片里选文件上传(远程访问也能用)。
  • 内置默认铃声:随包分发的电话「叮铃铃」(6.5 秒,52 KB,纯合成、CC0,见 scripts/make-ringtone.py),装完即响,不需要准备任何音频。
  • 暂停 / 继续 / 关闭:右下角浮标,点击暂停,再点继续,✕ 关掉这一次。
  • 全局默认配置:默认值可以写进 profile 的 cordis.patch.yml(部署级),个人设置在设置页覆盖,所有会话、所有项目共用一份。
  • 不吵人:默认忽略子代理会话(子代理只是父对话的一步);可选「只提醒当前正在看的会话」;默认响 120 秒自动停,可设 0 = 不限。
  • 单文件、无构建:host half 是普通 ESM,browser half 是 shell 模块表里的一份 CJS 风格 bundle,npm i 即用。

安装

dsh plugin --profile web add dsh-turn-music

装完重启一次 dsh web(或在插件面板里触发一次重载),刷新页面即可。

从 GitHub 装(未发布到 npm 时的备用来源):

dsh plugin --profile web add github:ramwin/dsh-turn-music

使用

  1. 打开 设置 → 内置插件 → 回合提醒音乐(或左侧栏「插件」面板里的同名卡片)。
  2. 「启用」默认已开;点试听确认音量和音源。
  3. 想要自己的音乐:填路径,或点文件框选一个 mp3 上传。
  4. 回合结束时音乐响起,右下角浮标可暂停 / 继续 / 关闭。

浏览器自动播放:浏览器要求页面至少被点过一次才允许出声。你正常用 GUI 打字/点按钮就已经满足;如果第一时间没声音,浮标会显示「浏览器拦截了自动播放,点一下播放」,点它即可。

设置项

设置默认说明
启用开回合结束时是否播放
音乐文件空留空 = 内置叮铃铃;填 ~ 或绝对路径;也可上传
音量800–100,只影响本插件的播放
循环播放开一直响到你手动暂停/关闭(关掉则播完一遍就停)
最长响多久120 秒循环时的安全上限,0 = 不限
只提醒当前会话关开:只对屏幕上正在看的会话响
忽略子代理会话开子代理的回合结束不响

设置存在 ~/.dsh/turn-music.json(全局,不分项目/会话);上传的音频存在 ~/.dsh/turn-music/。

部署级默认值(全局)

在 profile 的 cordis.patch.yml 里给插件条目写 config,它成为默认值(个人设置仍可覆盖,「恢复默认」回到这里):

- id: turn-music
  name: 'dsh-turn-music'
  config:
    enabled: true
    file: /srv/sounds/ring.mp3
    volume: 80
    loop: true
    maxSeconds: 120
    onlyCurrent: false
    muteSubagent: true

工作原理

浏览器                                    宿主进程
────────────────────────────────────      ─────────────────────────────
sessions.list 快照
  running: true → false  ──┐
                           ├─► <audio src=/dsh-turn-music/audio>
GET /dsh-turn-music/config ┘                 ├─ 读 ~/.dsh/turn-music.json
POST /dsh-turn-music/config ────────────────►├─ 校验并落盘
POST /dsh-turn-music/upload ────────────────►└─ 存 ~/.dsh/turn-music/ringtone.*
  • 为什么触发在浏览器:回合结束这个「边界」只有页面能看见(sessions.list 是客户端会话列表 store,每行带 running);也只有页面能把声音放出来。宿主进程在服务器上,没有扬声器。
  • 为什么要宿主 half:浏览器读不到宿主机的绝对路径。音频由宿主经 HTTP 流式下发(支持 Range),所以远程打开页面、甚至手机访问,都能播出本机上的那个文件。
  • 不回放历史:页面打开时的第一份快照只做基线,已经在跑的会话不会因为刷新就误响。

常见问题

没声音? 先看浮标:显示「浏览器拦截了自动播放」就点一下;否则检查设置里的音量与「启用」,以及文件路径是否还存在(宿主会自动回退到内置铃声)。

多个标签页同时开着? 每个页面都会响一次。需要单窗口行为的话,关掉其他标签页即可(这点与音乐播放器不同,后续可按需加跨窗口去重)。

刷新/重启后设置还在吗? 在。设置在宿主侧 ~/.dsh/turn-music.json,不依赖浏览器 localStorage。

能不能播放网络音频? 目前只支持本机文件与上传。在线电台/音乐建议配 dsh-music-player。

安全边界:/dsh-turn-music/* 走 dsh 自己的登录态;能读到的只是被配置的那一个音频文件(或上传目录),不做任意路径列举。

开发与验证

npm test          # host 侧校验逻辑 + 浏览器侧回合检测逻辑(无 jsdom)

需要一个独立实例做端到端验证(会真的跑一轮模型回复,别对着正在用的宿主跑):

dsh web --port 3099 --no-open --host 127.0.0.1 > /tmp/boot.log 2>&1 &
TOKEN=$(grep -o 'token=[A-Za-z0-9_-]*' /tmp/boot.log | head -1 | cut -d= -f2)
node scripts/verify-browser.mjs "http://127.0.0.1:3099/?token=$TOKEN"   # 客户端 half 是否加载、浮标是否创建
node scripts/verify-turn.mjs    "http://127.0.0.1:3099/?token=$TOKEN"   # 真发一条消息,等回合结束,断言浮标亮起+暂停可用

重新生成内置铃声(需要 ffmpeg):

python3 scripts/make-ringtone.py assets/ringtone.mp3

许可

MIT。内置铃声由 scripts/make-ringtone.py 纯数学合成,不涉第三方素材,随包按 CC0 使用。

Comments

Loading…

Similar plugins

dsh-turn-chime

by AGImentu

DSH (DeepSeek Harness) Web 插件:任务完成后播放提示音(可开关、可调音量、可上传自己的音频;内置提示音由脚本合成)

Development & InfrastructureManifest valid

★ 0

MIT

TypeScript

Sep 12, 2026

dsh plugin --profile web add dsh-turn-chime

by xxxxxxxyu

DSH (DeepSeek Harness) web plugin: plays a sound when the agent finishes replying (turn/end). Sound, volume and on/off configurable in Settings.

Manifest valid

★ 3

↓ 45/wk

MIT

TypeScript

Aug 14, 2026

dsh plugin --profile web add dsh-notify-sound

by Whale-Zhang

DSH plugin: play a chime when a conversation turn finishes. Built-in tones plus custom upload in Settings → Plugins.

Notifications & IntegrationsDevelopment & InfrastructureManifest valid

★ 2

MIT

JavaScript

Aug 23, 2026

dsh plugin --profile web add @dsh-external/dsh-complete-chime

by YUsaltyfish

在弹出选项卡提问、请求工具权限、一轮对话结束时播放提示音;支持自定义音频。

Notifications & IntegrationsManifest valid

★ 0

MIT

JavaScript

Oct 1, 2026

dsh plugin --profile web add dsh-notification-sound

by anne43983959

DSH 宿主插件:审批询问与一轮对话结束时播放声音提示(含两次实测事故复盘)

Tools & CapabilitiesManifest valid

★ 0

MIT

JavaScript

Oct 2, 2026

dsh plugin --profile web add dsh-audio-cue

by AI-Galaxy-GPU

DeepSeek Harness(DSH)Web 端插件:回合完成、审批、提问、计划评审、目标受阻、任务失败各有独立提示音与音量,内置合成音 / 静音 / 本地音频文件,Web 设置面板可配置。

Notifications & IntegrationsManifest valid

★ 14

↓ 3/wk

MIT

JavaScript

Sep 15, 2026

dsh plugin --profile web add dsh-sound