DeepSeek Harness 社区插件 · MIT 开源

给 Agent 配一套可自定义的铃声通知

每个生命周期环节都有专属铃声,右下角一个会呼吸的状态点随时告诉你 Agent 在干嘛。不用任何音频文件——所有铃声都是 Web Audio 实时合成的,还能换成你自己的声音。

dsh-bell-notify 在 dsh 页面右下角的铃声与状态点运行截图

右下角:会「呼吸」的状态点;每个环节:专属铃声。

它能干什么

一个小插件,三件小事:专属铃声、自定义音源、呼吸状态点。

🎵 每个环节都有专属铃声

启动、思考、工具调用、命令完成、等待确认……每一个事件的声音都不一样,用耳朵就能分辨进度。

🎛️ 每个声音都能自己换

点右下角小圆点,试听、上传自己的音频文件、一键还原。换上的声音会记住,刷新不丢。

🎼 声音是「活」的

全部由 Web Audio 实时合成:零音频资源、包体极轻、可离线用、可随时调音高节奏。

🔴 一个会「呼吸」的状态点

它不抢戏、不弹窗、不加字,只是用颜色和动作安静地陪着你。

🔵 蓝色脉动 · 正在思考
🟠 橙色律动 · 正在干活(工具/命令)
🟡 黄色闪烁 · 在等你确认
🟢 绿色扩散 · 这一轮完成

🎧 在线试听全部铃声

与插件运行时使用同一份配方与渲染逻辑(Web Audio 振荡器实时合成,无音频文件)。音量 0.7,即默认 masterVolume。

🔊 点一下任意铃声即可解锁声音(浏览器自动播放策略)。

安装

从 DeepSeek Harness 源码仓库安装:

pnpm dsh plugin --profile bell add github:Laplace-bit/dsh-bell-notify

如果 PATH 上已经有 dsh

dsh plugin --profile bell add github:Laplace-bit/dsh-bell-notify

第一次 add 失败是正常的:git 安装要跑 prepare 脚本,pnpm ≥10 会拦截。打开 ~/.dsh/profiles/bell/pnpm-workspace.yaml 加上 pnpm 打印的 onlyBuiltDependencies,再重跑同一条命令。

启动:

pnpm dsh --profile bell

打开页面后先点一下页面任意位置(浏览器音频自动播放策略,点一次即可解锁声音),然后随便跑一个任务,声音和状态点就会一起动起来。

卸载:

pnpm dsh plugin --profile bell remove dsh-bell-notify

🎵 每个环节的默认铃声

Agent 的一举一动都会「响一声」,而且每个环节的声音都不一样。全部可在线试听(见上)。

环节默认铃声听起来像
会话启动startup一声轻柔的上扬,像开机
开始执行click短促的一声「叮」,出发了
开始思考notify温柔的单音,进入状态
工具调用tick清脆的「哒哒」两声,金属质感
工具完成drop低低地落定,收尾
命令执行beep一声短促的哔,有终端味
命令完成rise上扬的双音,搞定
等待确认alert高频三连,叫你看一眼
本轮完成success上行大三和弦,成就感拉满
回到空闲confirm单音缓缓落下,安静了

error / failure 两个音效也内置好了,默认没启用,可在配置里按需接上。

配置

在 profile 的 cordis.patch.yml 里改(Cordis 加载时会校验并补默认值):

选项默认说明
enabledtrue总开关
masterVolume0.7总音量 0-1
muteAllfalse静音,但状态点照常工作
maxQueue8等待队列容量
maxConcurrent3同时播放的声音数(1 = 串行)
defaultCooldown1000规则默认节流窗口(毫秒)
statusRevertMs1000瞬态状态自动回归时长
showStatusIndicatortrue是否显示右下角状态点

声音开关、自定义音源替换与文件名都持久化在浏览器本地(localStorage + IndexedDB),点小圆点就能改,刷新不丢。

常见问题

这是 DeepSeek 官方插件吗?

不是。它是 DeepSeek Harness(dsh)的社区插件,MIT 协议开源,不属于官方发行。

为什么点了没声音?

大概率是浏览器的自动播放策略——插件首次加载后需要你先在页面上点击一次,声音才会解锁。

能只开声音、不要那个圆点吗?

可以。showStatusIndicator: false 关掉状态点,声音照常。

自定义的声音存在哪?

文件字节存在浏览器 IndexedDB,事件到文件的映射存在 localStorage。都在本地,不会上传到任何地方。