对话完成或出错时弹出系统通知,并按事件区分提示音
27.9/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/26 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/CrombastiC/dsh-macos-notify.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 36 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件
查看扫描证据(共 21 处,展示前 21 条)
- 读取本地文件index.js:102
const parsed = JSON.parse(await readFile(soundRegistryPath(), 'utf8')) - 写入本地文件index.js:112
await mkdir(resolve(path, '..'), { recursive: true }) - 写入本地文件index.js:113
await writeFile(path, `${JSON.stringify(entries, null, 2)}\n`, { mode: 0o600 }) - 读取本地文件index.js:124
const info = await stat(path) - 写入本地文件index.js:159
await mkdir(dir, { recursive: true }) - 读取本地文件index.js:160
const existing = new Set((await readdir(dir)).map((item) => item.toLowerCase())) - 写入本地文件index.js:216
await writeFile(input, bytes) - 读取本地文件index.js:220
const outputInfo = await stat(output) - 写入本地文件index.js:229
await copyFile(output, destination.path, fsConstants.COPYFILE_EXCL) - 写入本地文件index.js:230
await chmod(destination.path, 0o644) - 删除本地文件index.js:240
await rm(destination.path, { force: true }) - 删除本地文件递归index.js:245
await rm(tempDir, { recursive: true, force: true }) - 删除本地文件index.js:260
await unlink(target) - 读取本地文件index.js:281
const info = await stat(candidate) - 读取本地文件index.js:302
const entries = await readdir(dir, { withFileTypes: true }) - 执行外部命令固定命令index.js:330
execFile('osascript', ['-e', buildNotificationScript(title, body, sound)], (err) => { - 执行外部命令固定命令index.js:371
execFile('ioreg', ['-c', 'IOHIDSystem', '-d', '1'], (err, stdout) => { - 读取本地文件src/state.js:44
return sanitizeState(JSON.parse(readFileSync(file, 'utf8'))) - 写入本地文件src/state.js:55
await mkdir(dirname(file), { recursive: true }) - 写入本地文件src/state.js:56
await writeFile(temp, payload, { mode: 0o600 }) - 写入本地文件src/state.js:57
await rename(temp, file)
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
README
由 DeepSeek 最新模型翻译生成dsh-macos-notify
为 DeepSeek Harness 提供原生 macOS 通知,支持按事件区分提示音、通知过滤、多任务合并,并在 DSH Web UI 中提供一级设置页。
功能
- 一轮对话完成、失败、被阻塞或等待审批时,通过通知中心弹出提醒。
- 完成、错误、中止、审批四类事件各有独立提示音;任一事件都可静音。
- 支持系统提示音选择器、在页面内用 afplay 试听,并可在 Web 设置页导入和删除自定义提示音。
- 导入的自定义提示音会转成 AIFF,限制为 5 MB、10 秒,最多管理 20 个文件 / 总计 50 MB,存放在 ~/Library/Sounds。
- 1.5 秒合并窗口和可选的摘要模式,避免并行任务刷屏通知中心。
- 最近通知诊断会说明事件是已发送、已排队、已抑制还是失败;重启后仍然保留。
- 六事件测试矩阵,覆盖完成、错误、审批、中止、合并、摘要六类通知。
- 支持每日免打扰时段,以及自定义时长的临时暂停,并显示剩余时间。
- 常用开关和提示音选择器在只读视图下即时保存;数字输入会自动限制在安全范围内。
- 重复错误抑制,支持配置冷却窗口,并对易变片段做归一化。
- 项目路径规则:可静音、只提醒错误,或让重要项目绕过限制。
- 最短轮次时长过滤,避免近乎即时的回复也触发通知。
展开完整文档(README 剩余 1 节)
dsh-macos-notify 为 DeepSeek Harness 提供原生 macOS 通知,支持按事件区分提示音、通知过滤、多任务合并,并在 DSH Web UI 中提供一级设置页。 功能 - 一轮对话完成、失败、被阻塞或等待审批时,通过通知中心弹出提醒。 - 完成、错误、中止、审批四类事件各有独立提示音;任一事件都可静音。 - 支持系统提示音选择器、在页面内用 afplay 试听,并可在 Web 设置页导入和删除自定义提示音。 - 导入的自定义提示音会转成 AIFF,限制为 5 MB、10 秒,最多管理 20 个文件 / 总计 50 MB,存放在 ~/Library/Sounds。 - 1.5 秒合并窗口和可选的摘要模式,避免并行任务刷屏通知中心。 - 最近通知诊断会说明事件是已发送、已排队、已抑制还是失败;重启后仍然保留。 - 六事件测试矩阵,覆盖完成、错误、审批、中止、合并、摘要六类通知。 - 支持每日免打扰时段,以及自定义时长的临时暂停,并显示剩余时间。 - 常用开关和提示音选择器在只读视图下即时保存;数字输入会自动限制在安全范围内。 - 重复错误抑制,支持配置冷却窗口,并对易变片段做归一化。 - 项目路径规则:可静音、只提醒错误,或让重要项目绕过限制。 - 最短轮次时长过滤,避免近乎即时的回复也触发通知。 - 可选在 Web 标签页获得焦点时抑制通知,以及按 macOS HID 空闲时间决定是否提醒。 - 针对 API 速率限制提供专门措辞,并在可用时给出服务商的重试时间。 - 为支持的终端提供 OSC 9 通知,包括 tmux DCS passthrough。 - 设置实时生效,无需重启 DSH。 环境要求 - macOS - Node.js 22 或更高版本 - 带 web 配置档的 DeepSeek Harness 安装 安装已发布的 npm 包: npx -y @deepseek-ai/dsh plugin --profile web add dsh-macos-notify npx -y @deepseek-ai/dsh web 也可以直接从 GitHub 安装最新源码: npx -y @deepseek-ai/dsh plugin --profile web add github:CrombastiC/dsh-macos-notify 完整 git URL 写法效果相同(安装 main 的快照): npx -y @deepseek-ai/dsh plugin --profile web add https://github.com/CrombastiC/dsh-macos-notify 然后从一级设置导航打开 Settings → macOS notifications。 卸载插件: npx -y @deepseek-ai/dsh plugin --profile web remove dsh-macos-notify 本地开发安装 在本仓库的检出目录中执行: npx -y @deepseek-ai/dsh plugin --profile web add . npx -y @deepseek-ai/dsh web dsh plugin 把相对路径锚定到调用目录,并把安装转发给所选配置档里的 pnpm。不要在 cordis.dev.yml 里用绝对路径做 bundle 覆盖;改用 plugin add 安装本地包。 配置 设置命名空间是 macos-notify。从 Web 卡片改动的值会实时生效。 | 选项 | 默认值 | 说明 | | onCompleted | true | 一轮正常完成时通知。 | | onError | true | 出错和被阻塞的轮次也通知。这类提醒绕过完成门槛和摘要合并。 | | onAborted | false | 用户中止一轮时通知。 | | onApproval | true | 工具等待审批时立即通知。 | | minDurationSec | 30 | 完成通知的时长低于这个秒数就不发;0 关闭该阈值。 | | onlyWhenIdleSec | 0 | 完成通知要求键盘/鼠标空闲达到这个秒数;0 关闭空闲门槛。 | | onlyWhenUnfocused | true | 任一 DSH Web 标签页处于聚焦状态时,不发完成通知。 | | digestMinutes | 0 | 把完成通知汇总成周期性摘要;0 表示立即发送。 | | includeSubagents | false | 把子代理会话也纳入通知,而不是只通知顶层会话。 | | channel | auto | auto、osascript 或 osc9。 | | sounds.completed | Glass | 完成轮次的提示音。 | | sounds.error | Basso | 错误、被阻塞的轮次和限流的提示音。 | | sounds.aborted | 空 | 中止轮次的提示音;留空表示静音。 | | sounds.approval | Ping | 审批请求的提示音。 | | coalesceMs | 1500 | 合并同时到达的轮次结果的时间窗口;0 关闭合并。 | | quietHoursEnabled | false | 启用每日本地时间免打扰时段。 | | quietStart | 23:00 | 免打扰开始时间,本地 HH:mm 格式。 | | quietEnd | 08:00 | 免打扰结束时间,本地 HH:mm 格式。支持跨夜区间。 | | quietAllowCritical | true | 免打扰时段内继续发送错误、阻塞和审批提醒。 | | pauseUntil | 0 | 临时暂停的截止时间,Unix 毫秒;由 Web 卡片里的快捷操作管理。 | | duplicateWindowSec | 300 | 同一会话在这个窗口内的相同错误只发一次;0 关闭该限制。 | | projectRulesJson | [] | 由 Web 卡片管理的项目规则。更具体的后代路径优先。 | 项目规则模式 - mute —— 屏蔽配置的项目路径下的所有通知。 - errors —— 只放行错误、阻塞事件和审批请求。 - important —— 绕过最短时长、聚焦、空闲、免打扰时段和临时暂停这几道过滤。 设置页保留最近 50 条决策、重复错误冷却状态和最近的会话标题,持久化到 ~/Library/Application Support/dsh-macos-notify/state.json,DSH 重启后依然存在。每行记录事件是已发送、已排队、已抑制还是失败,并附上原因。这段历史不含消息内容。 通知渠道 auto 在终端被识别为支持 OSC 9 时使用 OSC 9,否则回退到 osascript。 已识别的 OSC 9 终端包括 iTerm2、WezTerm、Kitty、Ghostty 和 Warp。tmux 会话会自动包进 DCS passthrough。 声音选择只对 osascript 渠道生效。用 OSC 9 时,是否播放通知声音、怎么播放,都由终端决定。 自定义声音 在设置页选择 Edit → Import sound。支持的输入格式包括 AAC、AIFF、CAF、FLAC、M4A、MP3、OGG、Opus 和 WAV。 写入用户声音目录之前,宿主会校验扩展名、解码后大小、转换后时长、受管文件数量和受管总大小。导入的文件用 macOS afconvert 转成 44.1 kHz 单声道 AIFF;afconvert 解不了的格式回退用 ffmpeg。已有文件绝不覆盖,改为追加数字后缀。 新导入的文件记录在 ~/Library/Application Support/dsh-macos-notify/sounds.json,可在设置页删除。如果某个声音正在使用,删除时会要求确认,并把受影响的事件改为静音。如果移除插件前没有先删除文件,文件会留在 ~/Library/Sounds。 已知限制 - 插件仅支持 macOS。原生通知用 osascript,自定义导入用 macOS 音频工具。 - OSC 9 的声音行为由终端决定,会忽略按事件选择的声音。 - Web 设置页走受信任的 /macos-notify RPC 通道,因为当前 DSH Web 设置代理对内置设置设有命名空间允许列表。 - 只有 v0.2.0 及以后版本导入的声音才会被当作受管声音跟踪。更早手动复制或导入的文件仍可选用,但必须手动从 ~/Library/Sounds 删除。 开发 这个包刻意做成免构建: - index.js —— 宿主插件,负责事件处理、通知投递、设置 RPC 和声音导入。 - client.js —— 手写的 DSH 客户端模块,负责焦点上报和一级 Web 设置页。 - src/policy.js —— 纯策略辅助函数(免打扰时段、项目规则、重复合并),有单元测试覆盖。 - src/state.js —— 带校验的原子持久化,用于诊断信息、重复状态和会话标题。 - cordis.patch.yml —— 配置档捆绑补丁。 运行发布检查: node --check index.js node --check client.js npm test npm pack --dry-run 中文说明 这是一个仅支持 macOS 的 DeepSeek Harness 通知插件。任务完成、出错、等待审批时,它会发送系统通知。它还支持通知诊断(跨重启持久化)、afplay 本地试听、测试矩阵、每日勿扰、自定义时长的临时暂停、自定义声音管理与导入指派、常用开关即时保存、重复错误抑制、项目路径自动补全、焦点抑制、合并通知和定时汇总。推荐从 npm 安装,也可以直接从 GitHub 安装最新版源码。 License MIT © 2026 CrombastiC
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
CrombastiC/dsh-macos-notify
对话完成或出错时弹出系统通知,并按事件区分提示音
相关插件 · 其他
模型破甲清洗YuJunZhiXue/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 16,148已汉化DeepSeek 客户端
73
女娲蒸馏alchaincyf/nuwa-skill
输入名人名字,提炼其思维模型与决策方式供你调用
★ 37,308已汉化DSH
72
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 888已汉化DSH
71.6
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,266已汉化DSH
70.7
这是你的仓库?认领条目