🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

macOS 通知中心 ihodorchenko/dsh-macos-notifications

DeepSeek Harness
ihodorchenko14 天前有提交已提供中文文档扫描:含敏感能力

在对话结束、需要审批或提问时推送系统通知

29.7/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/24 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add ihodorchenko/dsh-macos-notifications
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · other
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 14 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令
查看扫描证据(共 1 处,展示前 1 条)
  • 执行外部命令固定命令
    index.js:160
    execFile(
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

README

由 DeepSeek 最新模型翻译生成
dsh-macos-notifications 一个 DeepSeek Harness 的 Host 插件,通过通知中心发送 macOS 原生通知。应用本身只通知自己的更新,不通知智能体的工作进展,这个插件补上了这块空白。 插件跑在 Host 进程里(Desktop 应用背后的 Node 运行时),监听持久化的 session/event 事件流,每条提醒都调用 osascript 发出。它从不写会话日志,也从不与模型通信。 什么情况会触发通知 | 时机 | 默认 | 通知内容 | | 一轮对话结束 | 开 | Turn finished / Ход завершён | | 一轮对话失败 | 开 | Turn failed + 错误信息 | | 一轮对话触及 token 上限 | 开 | Token limit reached | | 请求审批 | 开 | Approval needed · <tool> | | 智能体提问(ask_user_question、exit_plan_mode) | 开 | Your answer is needed · <question> | 用户主动取消的轮次(aborted)、分叉的轮次、被中断的轮次都不发通知。子代理会话一律忽略,只有你真正看得见的会话才会响铃。通知正文带上会话标题;标题还没生成时,用工作区文件夹名。
展开完整文档(README 剩余 1 节)
dsh-macos-notifications

一个 DeepSeek Harness 的 Host 插件,通过通知中心发送 macOS 原生通知。应用本身只通知自己的更新,不通知智能体的工作进展,这个插件补上了这块空白。

插件跑在 Host 进程里(Desktop 应用背后的 Node 运行时),监听持久化的 session/event 事件流,每条提醒都调用 osascript 发出。它从不写会话日志,也从不与模型通信。

什么情况会触发通知

| 时机 | 默认 | 通知内容 |
| 一轮对话结束 | 开 | Turn finished / Ход завершён |
| 一轮对话失败 | 开 | Turn failed + 错误信息 |
| 一轮对话触及 token 上限 | 开 | Token limit reached |
| 请求审批 | 开 | Approval needed · <tool> |
| 智能体提问(ask_user_question、exit_plan_mode) | 开 | Your answer is needed · <question> |

用户主动取消的轮次(aborted)、分叉的轮次、被中断的轮次都不发通知。子代理会话一律忽略,只有你真正看得见的会话才会响铃。通知正文带上会话标题;标题还没生成时,用工作区文件夹名。

配置

每个字段都可选;插件行的 config 映射会覆盖这些默认值。

| 字段 | 默认值 | 含义 |
| language | auto | en、ru 或 auto(跟随宿主语言环境)。 |
| sound | Glass | 任意 macOS 声音名,设为 null 则静音横幅。 |
| notifyOnTurnEnd | true | 一轮对话完成、失败或被阻塞时通知。 |
| notifyOnApproval | true | 智能体等待审批决定时通知。 |
| notifyOnQuestion | true | 智能体向用户提问时通知。 |

- id: macos-notifications
name: dsh-macos-notifications
config:
language: ru
sound: Ping
notifyOnTurnEnd: true
notifyOnApproval: true
notifyOnQuestion: true

安装

从 GitHub 安装(Plugins 页面管理的就是这种方式)。 让智能体安装这个 bundle,或者在 Plugins 页面使用下面的 spec:

git+https://github.com/ihodorchenko/dsh-macos-notifications.git

plugin_manager 工具的 install_bundle.target 接受同样的 spec。bundle 补丁会插入 macos-notifications 行;包本身自带 dsh.bundle.patch、语言环境元数据和图标。

从本地检出安装。 把 install_bundle 指向包的绝对目录,或者给配置档的包管理器传 link:<absolute directory>。

不用 Plugin Manager。 Loader 也接受直接写文件 URL 的插件行。把下面这段加到 $DSH_HOME/profiles/desktop/cordis.patch.yml(或你配置档的补丁文件):

- insert:
- id: macos-notifications
name: 'file:///absolute/path/to/dsh-macos-notifications/index.js'
config:
language: ru
应用运行时直接保存文件即可:配置档的 HMR 监听器会重新组合已加载的插件,新行随即出现,无需重启。YAML 出错会被拒绝,原有配置继续运行。

macOS 权限

第一条通知会触发系统弹窗,询问是否允许发送通知的进程(实际是 osascript / Script Editor)。如果没弹出,打开 System Settings → Notifications,为 Script Editor(或 macOS 提示的那个条目)开启通知权限。这是脚本驱动通知的平台限制:没有 bundle identifier 可供注册,所以点击横幅不会让 Harness 窗口获得焦点。

更新与移动

file: 行不受 HMR 监听,因为文件位于配置档目录之外。修改 index.js 后,touch 一下 cordis.patch.yml,或重启应用,让模块重新导入。移动或删除 checkout 会让 file: 或 link: 安装失效;请从新路径重新安装 bundle。

文件

| 文件 | 作用 |
| index.js | 宿主插件:会话事件监听、消息渲染、osascript 调用 |
| cordis.patch.yml | Bundle 补丁,插入 macos-notifications 行 |
| locale/en.json、locale/ru.json | Plugin Manager 显示元数据 |
| icon.svg | 插件图标 |
预览分享卡片长什么样 ↓ihodorchenko/dsh-macos-notifications
分享 · DeepSeek Harness Hub
ihodorchenko/dsh-macos-notifications

在对话结束、需要审批或提问时推送系统通知

这是你的仓库?认领条目

回到顶部