SingleOne/dsh-notify-center

DeepSeek Harness 的桌面和 Webhook 通知。

Project Overview项目介绍

This is a purpose-built native notification plugin for DeepSeek Harness (DSH). It triggers local system notifications and remote Webhook alerts when a top-level agent finishes a task turn or pauses to wait for user approval, and it operates without modifying any model prompts, tool calls, or session logs. It supports native notifications across Windows, macOS, and Linux, with built-in compatibility for Webhooks from Feishu, WeChat Work, DingTalk, Slack, Discord, and custom endpoints. You can install it directly via DSH’s CLI from the GitHub repository, or build it locally and add it to your DSH web profile manually.

The plugin tracks accurate session turn data and task end reasons, and only dispatches notifications after the top-level agent enters an idle state. It also actively listens for approval request events to alert users without interfering with the existing DSH approval workflow. By default, it filters out all notifications from sub-agents, and delivers notifications sequentially for multiple consecutive turns from the same agent. Users can set up custom notification rules including include/exclude keyword filters, different event type toggles, and body length limits to tailor the plugin to their common workflow.

The plugin is released under the permissive MIT open source license. After installation, you will need to restart your dsh web process, and you can configure all settings visually via the built-in settings page inside the DSH Web UI. Webhook URLs are stored securely as secrets and never sent back to the browser. Currently, only desktop-bridged notifications support clicking to jump to the target session, and Linux users must have notify-send installed for local notifications to work. Unprocessed retries are not persisted across DSH process restarts, as the delivery queue is stored only in memory.

dsh-notify-center 是专为 DeepSeek Harness 开发的原生统一通知插件。当顶层 Agent 完成一轮任务或等待用户审批时,它会触发操作系统本机通知和自定义远程 Webhook,全程不会修改模型提示词、工具调用或会话日志。它支持 Windows、macOS、Linux 三大平台的系统原生通知,也兼容飞书、企业微信、钉钉、Slack、Discord 等办公工具的自定义 Webhook 推送。

该插件会精准记录会话轮次和结束原因,在顶层 Agent 进入 idle 状态后派发通知,同时监听审批请求事件提醒用户处理,不影响原有审批流程。默认过滤子 Agent 通知,同一 Agent 连续多轮任务会按顺序逐轮通知,用户可通过关键词包含排除规则、结果开关等自定义通知策略。

本插件采用 MIT 开源许可,可直接通过 DSH CLI 从 GitHub 安装,也支持本地开发构建后安装到 DSH web 配置文件。安装后需重启 dsh web,可在 DSH Web UI 的内置设置页可视化配置,Webhook URL 会以密文存储不会回传浏览器。已知仅桌面桥接通知支持点击定位会话,Linux 需提前安装 notify-send 工具。

Pre-install check安装前体检Compatibility · Security兼容性 · 安全性 2 warnings2 项注意
  • Only 6 stars - very few users, little community feedback星标只有 6,几乎没人在用,遇到问题缺少社区反馈
  • Desktop client: installation downloads an executable - verify the publisher and checksums桌面客户端:安装会下载可执行文件,请核对发布者与校验和
DSH walks through these 9 checksDSH 会逐条核对这 9 项

Compatibility兼容性

  • DSH, Node, OS and profile requirementsDSH 版本 / Node 版本 / 操作系统 / profile 是否满足要求
  • External dependencies and runtimes (Electron / Python / Docker, ...)外部依赖与运行时(Electron / Python / Docker 等)是否齐备
  • Conflicts with installed plugins: command names, skill / tool names, ports, duplicate MCP registration与已装插件是否冲突:命令名、skill / tool 重名、端口占用、重复 MCP 注册

Security安全性

  • Repo matches the facts registered here; archived or abandoned?仓库是否与页面登记一致,是否归档或长期停更
  • Safety of preinstall / install / postinstall and install.sh / setup.ps1preinstall / install / postinstall 与 install.sh、setup.ps1 是否安全
  • curl|bash, download-then-execute, obfuscation, unrelated domains → stop immediatelycurl|bash、下载即执行、混淆代码、无关域名 → 立刻停止
  • Typosquatting or unmaintained packages among the new dependencies新增依赖里有没有 typosquatting 或无人维护的包
  • Requested permissions vs. what the feature actually needs申请了哪些权限、是否超出功能所需(filesystem / network / shell / clipboard)
  • Any sudo / admin requirement, plus uninstall and rollback是否要求 sudo / 管理员权限,以及卸载与回滚方式

Anything uncertain must be marked unknown with a note on how to confirm it. This site's signal screen is a static snapshot, not a security audit.拿不准的必须标「未知」并说明要我怎么确认。本站的信号筛查是静态快照,不能替代安全审计。

Or use CLI install (for developers)或使用命令行安装(适合开发者)

CLI Install命令行安装

dsh plugin --profile web add github:SingleOne/dsh-notify-center

把 SingleOne/dsh-notify-center 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

dsh-notify-center

DeepSeek Harness 的统一通知插件。顶层 Agent 完成一轮任务或等待审批时,同时支持操作系统本机通知和远程 Webhook,不修改模型提示词、工具或会话日志。

功能

  • 以 session/event → turn/end 保存准确的结束原因,在顶层 Agent 进入 idle 后派发完成通知。
  • 监听持久的 approval/asked 审计事件,提醒用户处理审批,不接管审批 waterfall。
  • 默认过滤子 Agent;同一 Agent 连续完成多轮时按顺序逐轮通知。
  • Windows 原生 Toast(失败时降级 NotifyIcon 气泡)、macOS osascript、Linux notify-send。
  • 飞书、企业微信、钉钉、Slack、Discord 和自定义 JSON Webhook。
  • 按完成结果开关、关键词/正则包含与排除规则、正文长度上限。
  • 每个 Webhook 可独立选择事件和摘要权限;默认不向远程通道发送回复摘要。
  • Webhook 超时和指数退避重试;投递不阻塞 Agent,日志不会输出 Webhook URL。
  • 每条本机通知使用 session + turn/event 唯一标识,避免 Windows 因复用 tag 静默吞掉后续通知。
  • DSH Web UI 内置可视化设置页,Webhook URL 以 secret 字段持久化且不会回传浏览器。
  • 可选的认证回环桥接优先交给桌面 App 展示通知;桥接缺失或失败时自动回退系统原生通知。

当前阶段

第二阶段包含 Host 通知服务和随包发布的浏览器设置页。插件仍可独立运行:没有桌面 App 时直接使用 Windows、macOS 或 Linux 的系统通知;桌面 App 只提供更可靠的 Electron 通知和点击会话定位。

本地开发安装

在插件仓库根目录构建:

npm install
npm run check

安装到 DSH web profile:

dsh plugin --profile web add .

也可以直接从 GitHub 安装:

dsh plugin --profile web add github:SingleOne/dsh-notify-center

仓库提交预构建的 dist,GitHub 安装不需要放开 pnpm 的依赖构建权限;npm 发布时由 prepack 重新构建。

安装后重启 dsh web。在 DSH 左侧设置入口中选择“通知中心”即可修改设置,保存后实时生效。

配置

推荐通过 DSH Web UI 的“通知中心”页面配置。也可以在 ~/.dsh/profiles/web/cordis.patch.yml 中为插件行添加 config 作为组合基础值;可视化页面保存的用户层设置会覆盖基础值:

- id: dsh-notify-center
  config:
    locale: zh
    notifySubagents: false

    events:
      completed: true
      error: true
      aborted: false
      blocked: true
      maxTokens: true
      interrupted: true
      approval: true

    local:
      enabled: true
      sound: true

    rules:
      - mode: exclude
        pattern: 测试
        regex: false
        caseSensitive: false
      - mode: include
        pattern: '部署|发布'
        regex: true
        caseSensitive: false

    webhooks:
      feishu:
        url: 'https://open.feishu.cn/open-apis/bot/v2/hook/REPLACE_ME'
        events: [completed, error, approval]
        includeSummary: false
      custom:
        url: 'https://example.com/dsh-hook'
        events: [completed, error]
        includeSummary: true

    delivery:
      timeoutMs: 5000
      retries: 2
      retryBaseMs: 500
      maxBodyChars: 400

Showing the opening section of the README — the full document lives in the repository以上为 README 开头摘要,完整文档在仓库内 · View the full README on GitHub →在 GitHub 查看完整 README →

← 上一个 Prev dsh-billing 下一个 Next dsh-feng-gu →