DSH Plugins Marketplace

DSH Plugins

Plugins

/

dsh-session-chime

n

dsh-session-chime

Discovered

DeepSeek Harness plugin: a desktop chime when a session finishes its work, and a different two-pip ping when it is waiting for your answer or approval.

会话提示音 (@local/session-chime)

给这台桌面加两种声音,让你可以离开屏幕去玩游戏或忙别的:

时机声音含义
会话把一段活儿干完(running → idle)1 秒的双音铃声"干完了,来下一条指令"
会话停下来等你回答 / 等你批准时两声短促高音(约 0.5 秒)"我在等你,回来确认一下"

两种声音明显不同,闭着眼也能听出是"完成"还是"要你确认"。

安装

git clone https://github.com/neil-ji/dsh-session-chime.git

然后在 Harness 里把这个目录作为本地 bundle 装进你的 profile(Plugin Manager 的本地安装,或者让 Agent 用 install_bundle 指向该目录的绝对路径)。装好后输入 /chime test 应听到一声完成铃声,/chime test waiting 是"等你确认"的两声短音。

  • 平台:Windows(声音经 System.Media.SoundPlayer 播放),DSH 0.2.x。
  • 依赖:无。不需要 pnpm 安装任何东西,也没有构建步骤。
  • 自测:node test/selftest.mjs(用静音 WAV 跑完整链路,不会打扰你)。

它解决的问题

在网页里放一个 <audio>,人一走开就不可靠:标签页被切到后台会被节流、浏览器还有自动播放限制,页面关掉更是什么都没有。所以这个插件放在 Host 进程里:它监听 Agent 状态与 Session 事件,直接从操作系统音频设备出声,网页在后台、窗口最小化、甚至浏览器页面关掉都不受影响。

怎么判断"完成"

依据 agent/status 的 running → idle。Agent 在干活期间一直是 running,把这一批输入全部处理完才回到 idle,所以这是"一段工作结束",而不是"一次模型调用结束"。两道保护:

  • settleMs:回到 idle 后再等一下。如果马上又变成 running(比如排队的后续消息),这次就不响,避免半截提示。
  • cooldownMs:多次完成挤在一起时只响一次,避免变成机关枪。

怎么判断"在等我"

只依赖 Session 里已经落盘的事实,因此与哪个应答器抢到请求无关:

  • tool/call 里出现 ask_user_question / exit_plan_mode,且对应的 tool/result 还没出现 —— Agent 正卡在"等人回答"上(计划评审也是这个通道)。
  • approval/asked / approval/decided 审计事件 —— 工具要人批准(只有 approval 策略是 ask 的会话才会出现;本机默认 danger-full-access 是 never,所以一般不会响)。
  • 另外还旁听 user-questions/request 与 approval/request 两个 waterfall 事件作为第二条通道,只观察、不抢答。

waitingDelayMs(默认 400ms)用于过滤"立刻就被解决"的请求:自动批准的、马上被取消的提问,不会响。

配置

在 cordis.patch.yml 的 session-chime 行里改,改完重启 Harness 生效:

- insert:
    - id: session-chime
      name: '@local/session-chime'
      config:
        enabled: true
        mode: chime
        volume: 0.8
        cooldownMs: 2500
        settleMs: 1200
        minRunMs: 500
        notifyWaiting: true
        waitingDelayMs: 400
        waitingDedupeMs: 3000
        includeSubagents: false
字段默认含义
enabledtrue总开关;false 时两种声音都不响
modechimechime 播放合成的声音;speak 用系统语音播报
volume0.8音量,0.05 ~ 1(对 wavPath 指定的文件无效)
speakText任务完成mode: speak 时"完成"念的文本
waitingSpeakText需要你确认mode: speak 时"等你确认"念的文本
wavPath空改成播放你自己的 .wav;留空使用内置声音(两种声音会用同一个文件)
cooldownMs2500两次"完成"提示之间的最小间隔,0 表示不限制
settleMs1200回到 idle 后等待多久确认真的结束
minRunMs500短于这个时长的运行不提示(过滤一闪而过的状态变化)
notifyWaitingtrue是否在"等你回答 / 等你批准"时响
waitingDelayMs400请求出现后等多久才响(过滤立即被解决的请求)
waitingDedupeMs3000同一段时间内重复的等待请求只响一次
includeSubagentsfalse是否也为子代理(subagent / workflow 子会话)的完成而响;子代理本来就不能开人工交互,所以不会有"等待"提示
logFile空填一个路径可记录每次响/跳过的原因,排查用(超过 256 KB 自动清空)

命令

在输入框里直接输入,不用发消息给模型:

命令作用
/chime 或 /chime status看当前设置和上一次响的时间
/chime on / /chime off临时开关(只影响当前 Host 进程,重启后回到配置值)
/chime test立刻响一次"完成"声
/chime test waiting立刻响一次"等你确认"声
/chime volume 0.4临时改音量
/chime mode chime / /chime mode speak切换声音 / 语音播报
/chime waiting on / /chime waiting off要不要"等你确认"的提示
/chime subagents on / /chime subagents off是否包含子代理

实现

  • index.js:Host 插件本体。监听 agent/status(并旁听 api-session/status)、session/event、user-questions/request、approval/request;用 ctx.get('sessions').get(id).header.origin 判断子代理;用 ctx.get('commands').register() 注册 /chime。
  • audio.js:合成两种声音(44.1 kHz / 16-bit / 单声道 WAV,写到系统临时目录并按音量缓存)并驱动一个常驻的 powershell.exe 助手进程。助手只在第一次出声时启动,之后每声只写一行 ASCII 命令(路径和中文文本以 base64 传递,避免 5.1 的管道编码问题),助手退出后自动重建;插件卸载时关闭它的 stdin。

不依赖任何 npm 包,也不使用 ctx.subprocess 之类的工具沙箱服务:它需要的是这台机器的音频设备,而不是一个被沙箱约束的子进程。

许可

MIT © 2026 Neil Ji

Comments

Loading…

Similar plugins

dsh-plugin-notify

by GooDAnDReaDY

DSH plugin: audio chimes, cross-session toasts, desktop push, and IM webhooks for turn completion, errors, and approvals.

Development & InfrastructureTerminal & ClientsManifest valid

★ 0

MIT

JavaScript

Sep 25, 2026

dsh plugin --profile web add @goodandready/dsh-plugin-notify

by Ruiming-cn

DSH (DeepSeek Harness) plugin — Windows toast + chime the moment the agent needs you: turn done, blocked, error, approval, question, plan review.

Tools & CapabilitiesManifest valid

★ 0

MIT

JavaScript

Aug 25, 2026

dsh plugin --profile web add dsh-turn-notify

by MacilyDots

Conversation-completion chime for DeepSeek Harness: plays a sound when a user-initiated task actually finishes, not when it is interrupted.

Manifest valid

★ 0

MIT

JavaScript

Oct 18, 2026

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

by ChuxueTeam

DeepSeek Harness 插件 · 需要你本人回到电脑前时弹窗并出声喊你,提示音一直响到你亲手关掉。 | DSH plugin: pops a card and rings on loop until you dismiss it.

Terminal & ClientsManifest valid

★ 0

MIT

JavaScript

Oct 5, 2026

dsh plugin --profile web add dsh-caller

by KKUCODES

Desktop plugin for DeepSeek Harness that connects DSHM to computer sessions, with device pairing, access control, and synchronized chat.

Tools & CapabilitiesManifest valid

★ 0

MIT

JavaScript

Oct 15, 2026

dsh plugin --profile web add @dsh-mobile/plugin

by AK-blank

Unofficial DSH (DeepSeek Harness) plugin: macOS Notification Center alerts when a session finishes or needs you — the banner carries the last reply, plays your system alert sound, and clicking it jumps back to the DSH page.

Tools & CapabilitiesNotifications & IntegrationsDevelopment & InfrastructureManifest valid

★ 1

MIT

JavaScript

Oct 3, 2026

dsh plugin --profile web add dsh-plugin-mac-notify