回合结束时自动响铃,把你叫回屏幕前
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/17 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add ramwin/dsh-turn-music该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 25 处,展示前 18 条)
- 读取本地文件lib/index.js:113
const parsed = JSON.parse(readFileSync(positionPath(), 'utf8')) - 写入本地文件lib/index.js:131
mkdirSync(dirname(file), { recursive: true }) - 写入本地文件lib/index.js:132
writeFileSync(file, JSON.stringify(entry) + '\n', 'utf8') - 读取本地文件lib/index.js:157
if (!existsSync(file)) return {} - 读取本地文件lib/index.js:159
const parsed = JSON.parse(readFileSync(file, 'utf8')) - 写入本地文件lib/index.js:170
mkdirSync(dirname(file), { recursive: true }) - 写入本地文件lib/index.js:171
writeFileSync(file, JSON.stringify(overrides, null, 2) + '\n', 'utf8') - 读取本地文件lib/index.js:214
if (!existsSync(expanded) || !statSync(expanded).isFile()) { - 读取本地文件lib/index.js:214
if (!existsSync(expanded) || !statSync(expanded).isFile()) { - 读取本地文件lib/index.js:232
if (existsSync(custom) && statSync(custom).isFile()) { - 写入本地文件lib/index.js:435
mkdirSync(uploadDir(), { recursive: true }) - 写入本地文件lib/index.js:436
writeFileSync(target, buffer) - 发起网络请求lib/client.js:147
var response = await fetch(API + '/config', { headers: { accept: 'application/json' } }) - 发起网络请求lib/client.js:154
var response = await fetch(API + '/config', { - 发起网络请求lib/client.js:165
var response = await fetch(API + '/reset', { method: 'POST' }) - 发起网络请求lib/client.js:172
var response = await fetch(API + '/upload?name=' + encodeURIComponent(file.name || 'ringtone.mp3'), { - 发起网络请求lib/client.js:265
fetch(API + '/position', { - 发起网络请求lib/client.js:532
teamStateDetection = fetch(TEAM_STATE_URL, { cache: 'no-store' })
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
DSH 回合提醒音乐插件:对话结束时自动播放音乐叫你回来,内置叮铃铃铃声,可自定义/上传音频并随时暂停
README
由 DeepSeek 最新模型翻译生成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.
它解决什么问题
智能体跑长任务时你走开了,回来才发现它十分钟前就答完了。这个插件在回合结束的那一刻播放一段音乐,一直响到你点暂停;声音在浏览器里播,所以手机、笔记本、远程访问的页面都能听见。
回合开始 → (你走开)→ 回合结束 → 🔊 叮铃铃 + 右下角浮标「⏸ 暂停 / ✕」
特性
- 回合结束自动响:监听会话状态(running 由 true 变 false),不依赖模型自我提醒,也不占用 API 调用。
- 设置里开关:设置 → 内置插件 → 回合提醒音乐,同一张卡片也出现在左侧插件面板里。
展开完整文档(README 剩余 1 节)
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. 它解决什么问题 智能体跑长任务时你走开了,回来才发现它十分钟前就答完了。这个插件在回合结束的那一刻播放一段音乐,一直响到你点暂停;声音在浏览器里播,所以手机、笔记本、远程访问的页面都能听见。 回合开始 → (你走开)→ 回合结束 → 🔊 叮铃铃 + 右下角浮标「⏸ 暂停 / ✕」 特性 - 回合结束自动响:监听会话状态(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 打字/点按钮就已经满足;如果第一时间没声音,浮标会显示「浏览器拦截了自动播放,点一下播放」,点它即可。 设置项 | 设置 | 默认 | 说明 | | 启用 | 开 | 回合结束时是否播放 | | 音乐文件 | 空 | 留空 = 内置叮铃铃;填 ~ 或绝对路径;也可上传 | | 音量 | 80 | 0–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 ──┐ ├─► 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 使用。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
ramwin/dsh-turn-music
回合结束时自动响铃,把你叫回屏幕前
相关插件 · 其他
模型破甲清洗YuJunZhiXue/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 14,822已汉化DeepSeek 客户端
73
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 718已汉化DSH
71.2
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,261已汉化DSH
70.7
破甲评测WoYun520/dsh-purge
在本机分离宿主拦截与模型拒绝,做受控红队评测
★ 199已汉化DSH
69.7