在设置中新增卡片,对话轮次完成时弹出系统通知与可选提示音。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:NattoCB/dsh-plugin-notifications
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
一个 DSH bundle 插件:在「设置 → 通用」新增对话完成通知卡片。启用后,任意根会话(跳过 subagent 与 automation)一轮对话结束时,由 host 进程弹出 macOS 系统通知——标题为会话名、正文为助手回复(过长截断),并可选播放与卡片试听完全一致的合成提示音。接入:在 web profile 声明依赖与 bundle,重启
dsh web。A DSH bundle plugin that adds a Turn-complete notifications card to Settings → General. When any root session (subagents and automation runs skipped) finishes a turn, the host process pops a macOS notification — title = session name, body = the assistant reply (truncated) — with an optional chime identical to the in-card preview. Install by declaring it as a dependency and bundle in your web profile, then restart
dsh web.
✨ 功能一览 / Features
- 🔔 对话完成通知 — host 监听
agent/status,在根会话 running→idle 边沿用terminal-notifier弹系统通知:标题 = 会话名(session/title→ 首条用户消息 → agent id,UTF-8 安全截断 60B),正文 = 最新助手回复(截断 200B);GUI 关闭也照常。subagent 与 automation 驱动的回合不触发;通知仅提示,点击不打开任何窗口。 / Host fires on the running→idle edge of root sessions; subagent and automation-driven turns are skipped. Clicking the banner does nothing (no-activate). - 🔊 合成提示音 — 按音调(柔和 / 清脆 / 低沉)进程内合成 16-bit PCM 单声道 WAV(44.1kHz;20ms 线性起音 + 指数衰减;音符间隔 120ms),经
terminal-notifier -sound播放;与卡片「试听」的 Web Audio 波形参数完全一致,听到即所得。无音频资源,离线可用。 / Chime synthesized to WAV with the exact profiles the card previews in Web Audio — no asset files, works offline. - 🎛️ Settings 卡片 — 渲染进「设置 → 通用」的
settings.general.item插槽,提供启用 / 提示音开关、音调选择与「试听提示音」按钮(该按钮同时作为用户手势触发浏览器通知授权);UI 中英双语。 / Card in Settings → General (zh/en) with enable, sound, tone and a preview button that doubles as the browser's notification-permission gesture. - 💾 持久化与降级 — 配置写入
$DSH_HOME/settings.yaml(命名空间notifications),经自有 HTTP APIGET /notifications/status、POST /notifications/update(settings.mutateRPC 只放行内置命名空间,第三方走自有路由,与 petdex / wechat-bridge 同模式);host 半未加载时自动降级为浏览器 monitor + localStorage,host 加载后接管,避免双重通知。 / Persists via its own HTTP API into settings.yaml; before the host half loads, the browser monitor + localStorage takes over, then defers to the host.
Quick Start
前置 / Prerequisites
- macOS(host 使用 Homebrew 前缀路径
/opt/homebrew) - terminal-notifier:
brew install terminal-notifier(host 弹通知与播放提示音的二进制,路径硬编码/opt/homebrew/bin/terminal-notifier) - DSH web profile(
$DSH_HOME/profiles/web)
安装 / Install
- 在
$DSH_HOME/profiles/web/package.json:dependencies增加"dsh-plugin-notifications": "file:<本仓库路径>";dsh.profile.bundles增加"dsh-plugin-notifications"。
- 确保
node_modules/dsh-plugin-notifications可解析到本仓库。 - 重启 web profile(
dsh web)使 host 半生效——否则只有浏览器侧 monitor,GUI 关闭后收不到通知。
启用 / Enable
- 打开 Web GUI → 设置 → 通用 → 对话完成通知,开启「启用系统通知」。
- 可选:开启提示音、选择音调(柔和 / 清脆 / 低沉);点「试听提示音」试听。
- macOS 首次弹通知时,在系统提示中授予通知权限。
Configuration
写入 $DSH_HOME/settings.yaml(也可直接在设置卡片中修改):
notifications:
enabled: false # 一轮对话完成后弹系统通知 / pop a system notification on turn completion
sound: true # 同时播放提示音 / also play the chime
tone: soft # 提示音音调 / chime tone: soft | crisp | low
| Key | Default | Meaning |
|---|---|---|
notifications.enabled |
false |
一轮对话完成后弹 macOS 系统通知 |
notifications.sound |
true |
通知时同时播放合成提示音 |
notifications.tone |
soft |
音调:soft 柔和 / crisp 清脆 / low 低沉 |
链接
同类插件
xmanrui/dsh-im★ 1597
通过二维码或机器人凭据将 IM 机器人接入 DeepSeek Harness(支持飞书、微信、钉钉、企业微信、QQ、Slack、Telegram、Discord 和 WhatsApp 共 9 种渠道)。
shaobeichen/dsh-pocket★ 1521
手机远程访问 DSH Web 界面:扫码即用局域网或公网(cloudflared 隧道)访问,实时同屏、移动端适配布局,带设置页管理。
inclusionAI/Avernet#deepseek-harness-channel-bcn★ 658
通过 WebSocket V2 将 DeepSeek Harness 接入 Avernet Bot 协作网络,支持自动注册、Agent 会话隔离、工具调用事件和多 Bot 路由工具。
omdsh-dev/dsh-notification★ 85
回合完成桌面通知,按结果分控 + 关键词过滤。
whyihaveyou/dsh-suite#plugin-notify★ 56
回合完成、错误或待审批时推送 IM webhook(飞书/企微/钉钉/Slack/Discord/自定义)与本地通知。
omdsh-dev/dsh-lark★ 55
DeepSeek Harness 的飞书/Lark 机器人渠道:每个会话驱动独立 agent,工具审批、模型提问与计划审阅都以卡片回到聊天,点按钮或直接回复即可作答;聊天里用 `/cd`、`/model`、`/new` 切工作区、换模型、重开会话,多个机器人各自独立并可在同群交接回合。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。