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

macOS 完成通知 apodemakeles/dsh-macos-notify

DeepSeek Harness
apodemakeles14 天前有提交已提供中文文档扫描:未发现敏感能力

窗口不在前台时,每轮结束弹出系统通知并标记未读

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · desktop
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 14 天前
档位由哪些信号合成

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

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

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

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

README

由 DeepSeek 最新模型翻译生成
@apodemakeles/dsh-macos-notify DeepSeek Harness(DSH)插件:每轮对话结束时,如果 Harness 窗口不在前台,弹一条 macOS 系统通知;同时给“完成时你不在电脑前”的会话留一个应用内未读绿点。 状态:v0.1.2,通过 GitHub 分发。npm 上未加 scope 的 dsh-macos-notify 已被别的包占用,所以本插件只从 @apodemakeles scope 经 GitHub 安装。 截图 通知设置 通知设置 未读完成绿点 未读完成绿点 行为 | 结束原因 | 通知 | | completed、max-tokens、blocked | 标题=会话名,正文「处理完成」 | | error | 标题=会话名,正文「处理失败」 | | aborted、interrupted、未知 | 静默 | | 子代理会话 | 静默 | - 只在该轮不在前台焦点时弹(document.hasFocus() === false)。 - 点击通知聚焦窗口并打开对应会话。 - 窗口失焦完成时,在会话行左侧留一个未读点(成功绿色、失败红色),即使完成时你仍停在该会话;点击该会话行、重新运行该会话或点击通知后清除。官方 UI 已显示自己的“后台会话完成”绿点时,本插件不重复渲染。
展开完整文档(README 剩余 1 节)
@apodemakeles/dsh-macos-notify

DeepSeek Harness(DSH)插件:每轮对话结束时,如果 Harness 窗口不在前台,弹一条 macOS 系统通知;同时给“完成时你不在电脑前”的会话留一个应用内未读绿点。

状态:v0.1.2,通过 GitHub 分发。npm 上未加 scope 的 dsh-macos-notify 已被别的包占用,所以本插件只从 @apodemakeles scope 经 GitHub 安装。

截图

通知设置

通知设置

未读完成绿点

未读完成绿点

行为

| 结束原因 | 通知 |
| completed、max-tokens、blocked | 标题=会话名,正文「处理完成」 |
| error | 标题=会话名,正文「处理失败」 |
| aborted、interrupted、未知 | 静默 |
| 子代理会话 | 静默 |

- 只在该轮不在前台焦点时弹(document.hasFocus() === false)。
- 点击通知聚焦窗口并打开对应会话。
- 窗口失焦完成时,在会话行左侧留一个未读点(成功绿色、失败红色),即使完成时你仍停在该会话;点击该会话行、重新运行该会话或点击通知后清除。官方 UI 已显示自己的“后台会话完成”绿点时,本插件不重复渲染。
- 不补弹历史:插件启动或重连时第一次看到某会话的投影只建立基线。
- 设置 → 通知 提供总开关(默认开启)、权限状态、请求权限和测试通知;开关存在浏览器 localStorage。

安装

官方桌面 App

desktop profile 由 Electron App 管理,dsh plugin --profile desktop 会被拒绝。按 App 插件管理器的方式把依赖和 bundle 加进 profile:

DSH_HOME=${DSH_HOME:-$HOME/.dsh}
PROFILE="$DSH_HOME/profiles/desktop"

pnpm --dir "$PROFILE" add github:apodemakeles/dsh-macos-notify

然后把 @apodemakeles/dsh-macos-notify 加进 $PROFILE/package.json 的 dsh.profile.bundles:

{ "dsh": { "profile": { "bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"@apodemakeles/dsh-macos-notify"
] } } }

重启 App。插件 → 已安装 会列出该插件,设置 → 通知 里能看到开关。

Web profile

dsh plugin --profile web add github:apodemakeles/dsh-macos-notify
重启 dsh web

Release tarball

每个 GitHub Release 附带 apodemakeles-dsh-macos-notify-<version>.tgz:

dsh plugin --profile web add file:/path/to/apodemakeles-dsh-macos-notify-0.1.2.tgz

macOS 通知权限

首次通知需要授权:在 设置 → 通知 点「请求通知权限」或「发送测试通知」,然后到 系统设置 → 通知 → DeepSeek Harness 允许。

专注模式即使放行了 App 也可能把通知静音(delay delivery)。把 DeepSeek Harness 加进当前专注模式的「允许的 App」,或者关掉专注模式。应用内未读绿点不受专注模式影响。

实现

- 宿主半区(src/index.ts、src/projection.ts)注册 turn-notify session projection,折 turn/start 与 turn/end.reason,把 { turn, reason } 交给客户端。不再需要 webServer 路由、launch token 或 Electron 壳代码。
- 客户端半区(src/client/index.ts)订阅 session list,比较 projection 的 turn 号判断新完成;应用总开关、子代理过滤、reason 映射和焦点闸门;用浏览器 Notification 发系统通知,点击时 uiWorkspace.openSession(id) 打开会话。未读绿点通过官方 sidebar.session.row.leading 槽位渲染,只在官方状态点缺席时出现。
- 宿主打包 zod(投影 schema);客户端只外置 React,由壳的模块表提供。
- 没有网络请求:会话名和结束原因都留在本机。

兼容性

- DSH 0.2.x(engines.dsh:>=0.2.0-rc.1 <0.3.0);已在桌面 App 0.2.1-rc.2、CLI 0.2.0-rc.1 上验证。
- 通知面向 macOS(浏览器/Electron Notification API);未读绿点与平台无关。
- Node >=22。

开发

git clone https://github.com/apodemakeles/dsh-macos-notify.git
cd dsh-macos-notify
pnpm install
pnpm typecheck
pnpm test
pnpm build

pnpm build 产出:

- lib/index.js——宿主 ESM,注册投影。
- lib/client.js——浏览器 CJS bundle,带 window.__ModuleLoader__.load 工厂包装。
- lib/types/**——类型声明。

本地开发可以 dsh plugin --profile web add link:$(pwd)(桌面 profile 则用 pnpm --dir "$PROFILE" add link:$(pwd))。

License

MIT
预览分享卡片长什么样 ↓apodemakeles/dsh-macos-notify
分享 · DeepSeek Harness Hub
apodemakeles/dsh-macos-notify

窗口不在前台时,每轮结束弹出系统通知并标记未读

这是你的仓库?认领条目

回到顶部