dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
模型输出时演奏生成式背景音乐,完成、审批与等待操作各有独立提示音:不盯屏幕也能听出 Agent 在思考、仍在工作还是在等你。
中文(默认) · English
DeepSeek Harness(DSH)声音插件:用声音盯住 Agent。模型输出时演奏生成式背景音乐,完成、审批/等待、思考与工具执行各有可配置的提示音——不盯着屏幕,也能凭声音知道它是在思考、还在干活、还是卡在等你。
关键词:DeepSeek Harness 声音插件 · 背景音乐 · 提示音 · 完成提醒 · 审批提醒 · 通知音效 · 声音反馈 · 专注 · 注意力 · 效率 · AI 助手声音提醒
background music · notification sound · completion chime · approval alert · focus · attention · productivity · dsh sound plugin
| 方式 | 适用场景 | 插件安装位置 |
|---|---|---|
Web(dsh web,浏览器打开) | 在浏览器里使用、远程机器 | web profile |
桌面端 DSH Desktop(dsh-app://) | 日常使用,推荐 | desktop profile,由桌面端管理 |
client.js 已预构建,macOS / Windows / Linux 行为一致。dsh plugin --profile web add dsh-coding-sound
dsh --profile web
dsh --profile web 会打印带 token 的地址;如果服务已经在运行,安装后重启它,再硬刷新页面。
在联网机器打包,或从 GitHub Release 下载 .tgz,拷到目标机器:
# 联网机器
npm pack dsh-coding-sound
# 目标机器:.tgz 绝对路径
dsh plugin --profile web add /absolute/path/dsh-coding-sound-<version>.tgz
# 或者解压后安装目录
dsh plugin --profile web add /absolute/path/dsh-coding-sound
dsh --profile web
lib/client.js,通常不需要再构建。目录根下必须能直接看到 package.json。dsh-coding-sound 并安装;或进入 插件 → 添加插件 → 安装第三方插件,填入包名。dsh-coding-sound。桌面端的
desktopprofile 由 Electron 应用独占管理。不要在终端执行dsh plugin --profile desktop add ...,该命令会被拒绝;桌面端请用插件市场 / 添加插件界面。
npm pack dsh-coding-sound,或从 Release 下载 .tgz,拷到目标机器。.tgz 的绝对路径(安装器识别为「压缩包」);.tgz,再填解压后的目录(根下要有 package.json)。dsh-coding-sound 已启用;桌面端完整重启,Web 端重启 dsh web 并刷新。Generative background music and notification chimes for DeepSeek Harness: hear whether the agent is thinking, still working, or waiting for you, without watching the screen. Every sound is synthesized in the browser with Web Audio — the package ships no audio assets.
设置页新增一页「声音与提醒」,卡片与参考桌面版的声音设置同构:
🔊 声音与提醒 [已自定义] ⌃
背景音乐与完成/等待提示音
─────────────────────────────────────────────────────────
生成式背景音乐 [数字 ⌄] ▶
通知音量 ────────────● 100%
生成完成 [合成音效 ⌄] ▶
等待操作 [合成音效 ⌄] ▶
当前会话音量 ────────────● 100%
其他会话音量 ──────────●── 80%
🔊 阶段声音
思考 / 回答 / 工具执行,可分别关闭、调频率与音高
─────────────────────────────────────────────────────────
思考 [●] [2 字/拍 ⌄] [标准 ⌄] ▶
回答正文 [●] [4 字/拍 ⌄] [标准 ⌄] ▶
工具执行 [●] [0.9 秒 ⌄] [标准 ⌄] ▶
左侧设置导航的「声音与提醒」使用扬声器图标:宿主对未知 section id 只提供齿轮兜底,插件在 section 的 label 里带自己的图标,并用一条只命中本行的样式隐藏兜底齿轮(宿主若改结构,最坏退回齿轮 + 扬声器两个图标,不影响功能)。
| 场景 | 行为 |
|---|---|
| 某个会话开始输出 | 该会话的音乐淡入(0.25 s);按当前阶段的密度取拍(回答默认每 4 字、思考默认每 2 字),且两拍间隔 = max(100 ms, 60 + 30 × 密度) ms——密度同时决定「几字一拍」和最快出音速度,所以试听听得到的快慢就是实际运行的速度,C 大调五声音阶随机取音,15% 概率低八度,±5% 随机 detune |
| 输出中 | 节拍跟随真实字符增量,不是固定循环;整段挂载/重渲染/换会话不会被误当打字 |
| 思考(reasoning) | 有:思考段和回答正文一样逐 token 出音符;可在「阶段声音 → 思考」里改密度(1/2/3/4/6/8 字一拍)、音高(低/标准/高)或关闭 |
| 工具执行 | 有:工具行本身不出音符;当前会话空闲约 1.2 s 后进入「工作脉冲」,频率可选 0.1 / 0.15 / 0.2 / 0.3 / 0.4 / 0.6 / 0.9 / 1.2 / 1.6 / 2.0 s 一拍(最快与思考密度 1 的 100 ms 相同),音高可选低/标准/高,或关闭。相邻两拍的间隔在设定值上下随机浮动(三角分布,约 ±35%;另有约 15% 概率拉长到 1.6–2.4 倍),听感更像打字机而不是节拍器;行内「随机」开关可以关闭浮动、回到固定节拍。音量与文字拍一致。等待审批时暂停并响「等待操作」 |
| 某个会话进入等待操作 | 只停这个会话的音乐(0.25 s 淡出),并响「等待操作」;其他会话照常 |
| 一轮结束 | 当前会话 320 ms 防抖后响「生成完成」;子代理会话不响 |
| 切会话 | 当前会话按「当前会话音量」、其他会话按「其他会话音量」,0.25 s 交叉过渡 |
| 其他会话在后台工作 | 以「其他会话音量」播放缓慢的环境脉冲(约 0.7–1.1 s 一拍);切到该会话后改为逐字节拍 |
| 窗口在后台 | 继续发声;回到前台恢复,不补放积压音符 |
turn + prompt 身份去重(上限 512),断线重连/重放不会重复响;打开页面时已经存在的等待状态不会补响。AudioContext 挂起时不再排新音符,恢复后从当前节奏继续。否则挂起期间的所有音符会共用同一个时间戳,恢复瞬间同时发声——听感上就是一声爆音或「沙沙/嗡嗡」的杂音。| 项 | 默认 |
|---|---|
| 生成式背景音乐 | 数字(digital) |
| 通知音量 | 100% |
| 生成完成 | 合成音效(synth) |
| 等待操作 | 合成音效(synth) |
| 当前会话音量 | 100% |
| 其他会话音量 | 80% |
| 思考声音 | 开,每 2 字一拍,音高「标准」 |
| 回答声音 | 开,每 4 字一拍,音高「标准」 |
| 工具执行 | 开,脉冲频率 0.9 s(十档:0.1 / 0.15 / 0.2 / 0.3 / 0.4 / 0.6 / 0.9 / 1.2 / 1.6 / 2.0 s),间隔随机浮动(可关闭),音高「标准」 |
| 卡片展开状态 | 展开(持久化) |
设置按浏览器保存(localStorage),刷新页面、重启 DSH 后仍在;换一个浏览器是另一套设置。
所有值在读取时都会夹紧/校验,损坏或被手改的存储不会让页面报错。
| 预设 | 波形 | attack | decay | sustain | release | 低通 | 混响 decay | wet | 主增益 |
|---|---|---|---|---|---|---|---|---|---|
| 空灵 | sine | .1 | .4 | .4 | .8 | 3000 | .8 | .35 | .07 |
| 经典 | triangle | .01 | .2 | .2 | .3 | 2000 | .3 | .2 | .08 |
| 数字 | square | .005 | .1 | .1 | .1 | 5000 | .05 | .05 | .06 |
| 复古 | sawtooth | .02 | .3 | .3 | .4 | 1500 | .35 | .25 | .08 |
信号链:每会话 gain → 共享低通(Q=1) → 主增益 → 输出,低通同时旁路 卷积混响 → wet → 主增益。
一个页面只有一个 AudioContext(浏览器同时只允许少量),切换预设就地重建链路并重新挂接所有会话声部。
6 个选项:关闭 / 合成音效 / 正面通知 / 正确提示 / 界面启动 / 界面返回。全部由 Web Audio 实时合成,包内不含任何第三方音频素材。
每个音是正弦主音 + 4 倍频 shimmer(12% 电平,衰减到 0.6× 时长):
| 选项 | 音型 |
|---|---|
| 合成音效 | 完成:1318.5 → 1568 → 2093 Hz;等待:1760 → 1318.5 Hz |
| 正面通知 | 上行二音 1318.5 → 1760 Hz |
| 正确提示 | 确认二音 1046.5 → 1568 Hz |
| 界面启动 | 上行琶音 523.25 → 659.25 → 783.99 → 1046.5 Hz |
| 界面返回 | 下行二音 783.99 → 523.25 Hz |
通知音量 / 100 × 选项电平;四个命名选项沿用原素材的响度比例(正面 .62 / 正确 .85 / 启动 1 / 返回 .70),切换时不会忽大忽小。设置保存在浏览器 localStorage(键 dsh:coding-sound:v1),刷新、重启后仍在;不同浏览器各自独立。Safari 首次出声需要点一下页面,这是浏览器的自动播放策略,插件已处理恢复。
dsh-typewriter-blip、ui-beep 等声音插件可以并存:不共享 DOM 节点,也不改写彼此的 DOM。插件不包含任何第三方音频素材:6 个通知音效全部由 Web Audio 实时合成。源代码以 MIT 许可发布,见 LICENSE。
中文简介:用声音盯住 Agent——模型输出时演奏生成式背景音乐,完成、等待操作、思考与工具执行各有提示音。
Generative background music and notification chimes for DeepSeek Harness (DSH): hear whether the agent is thinking, still working, or waiting for you, without watching the screen.
Pick where to run it: Web (dsh web, browser, web profile) or DSH Desktop
(dsh-app://, desktop profile managed by the app). DSH 0.2.0 / 0.2.1 are
supported; this build targets 0.2.1-rc.2. The package ships a prebuilt
client.js, has no native modules or install scripts, and makes no runtime
network requests.
Web: online install
dsh plugin --profile web add dsh-coding-sound
dsh --profile web
Web: offline install — pack on a connected machine (npm pack dsh-coding-sound) or download the .tgz from a Release, copy it over, then:
dsh plugin --profile web add /absolute/path/dsh-coding-sound-<version>.tgz
# or, after extracting:
dsh plugin --profile web add /absolute/path/dsh-coding-sound
dsh --profile web
For a source ZIP, extract it first; the package root must contain package.json
(release tarballs already include lib/client.js). The target machine needs
neither npm nor GitHub access.
Desktop: online install
dsh-coding-sound,
install it. Or Plugins → Add plugin → Install a third-party plugin and
enter the package name.dsh-coding-sound.The
desktopprofile is owned by the Electron app. Do not rundsh plugin --profile desktop add ...in a terminal; it is rejected. Use the in-app plugin market / Add plugin UI.
Desktop: offline install
npm pack dsh-coding-sound, or download the
.tgz from a Release, and copy it to the target..tgz (recognised as a tarball); if that
build only accepts directories, extract it and enter the folder (its root
must contain package.json).Enable and verify
dsh-coding-sound enabled. Restart Desktop
completely, or restart dsh web and refresh for Web.Defaults: Digital preset, notification volume 100%, "Synth" completion and waiting chimes, current session 100%, other sessions 80%, thinking every 2 characters, answer every 4, tool pulse 0.9 s with the random jitter on.
All sounds are synthesized in the browser with Web Audio — the package ships no audio files. Settings live in the browser's localStorage (dsh:coding-sound:v1), so each browser keeps its own. MIT.
dsh-split-workspace)— 把 DSH 会话区拆成任意数量的原生窗格:左右、上下、田字 2×2 与自动网格,每个窗格都是独立会话。
dsh-split-workspace) — Split the DSH conversation area into unlimited native panes — side by side, stacked, 2×2 and an automatic grid — each a real session with its own composer and streaming.如果这个项目帮你省下了盯屏幕的时间,欢迎请作者喝杯咖啡 ☕,或者给作者「充充电」⚡。金额随意,心意最重要。
If this project saved you some screen time, you can buy the author a coffee ☕ or top up the author's battery ⚡. Any amount is welcome — the thought counts.
支付宝 · 微信支付 / Alipay · WeChat Pay