WsttXm/DshNotice--packages-dsh-notice ↗★ 0
dsh-notice
Native macOS notifications for DeepSeek Harness: a banner when the agent needs you (approval, question, plan review) and when a turn finishes 适合macOS桌面端用户,在模型需要审批、提问或运行结束时接收系统提醒。
同名パッケージの別リポジトリ
インストール
検証済み bundle がないか、互換性チェックに失敗しています。先にリポジトリの説明を読んでください。 README 全文を読む ↗
ドキュメント
README 全文を読む ↗配置
所有偏好都存在渲染进程的 localStorage 里(键名 dsh-notice:prefs),改完立即生效,不需要刷新。
怎么改
在 Harness 窗口按 ⌥⌘I 打开控制台:
window.__DSH_NOTICE__.set({ sound: false }) // 静音,只留横幅
window.__DSH_NOTICE__.set({ onComplete: false }) // 只在需要我介入时提醒,跑完别打扰
window.__DSH_NOTICE__.set({ onlyWhenUnfocused: false }) // 前台也提醒(默认不提醒)
window.__DSH_NOTICE__.set({ language: "zh" }) // 锁定中文文案
window.__DSH_NOTICE__.set({ enabled: false }) // 全部关掉
window.__DSH_NOTICE__.prefs // 看当前配置
window.__DSH_NOTICE__.reset() // 恢复出厂默认
配置项
| 配置项 | 类型 | 默认 | 说明 |
|---|---|---|---|
enabled | boolean | true | 总开关。false 时以下所有通道全部静默 |
onInteraction | boolean | true | 请求授权 / 向你提问 / 计划待审时提醒 |
onComplete | boolean | true | 一轮任务结束时提醒 |
sound | boolean | true | 横幅是否带系统提示音 |
onlyWhenUnfocused | boolean | true | 窗口在前台、且当前显示的正是要通知的那个会话时不提醒 |
announceOnFirstRun | boolean | true | 首次安装时弹一条欢迎横幅(用来验证链路) |
language | "auto" | "zh" | "en" | "auto" | 通知文案语言。auto = 跟随应用界面语言 |
sound只决定本插件发出的通知要不要响,与「系统设置 → 通知 → DeepSeek Harness」里的 声音开关互不影响。
什么时候会提醒
插件把每个会话的状态折成一个索引,只对状态跃迁做出反应,不会因为刷新页面补发旧通知。
| 跃迁 | 横幅 |
|---|---|
| 出现待审批请求 | 需要你的授权 — 「会话名」想要执行 ,请回到应用确认。 |
| 出现待回答的问题 | 需要你的回答 — 直接显示问题正文 |
| 出现待审阅的计划 | 等待你审阅计划 — 「会话名」提交了一份计划,等待你确认。 |
| 一轮任务从运行中变为结束,且没有待处理交互 | 任务已完成 — 「会话名」已完成本轮任务。 |
| 一轮结束时正好又要你介入(比如收尾时向你提问) | 只发一条,且发「需要你…」那条 |
会话名只在有必要时出现:当横幅讲的就是你正盯着的那个会话时,标题不重复出现在正文里。
什么时候故意不提醒
命中任意一条就不发,这是设计,不是 bug:
enabled为false;- 对应通道被关掉(
onInteraction/onComplete); - 该会话是子代理或空白会话——你看不见的内部工作不该打扰你;
- 窗口在前台,且正显示着要通知的那个会话——输入框就在你眼前,再弹横幅是噪音。
把
onlyWhenUnfocused设为false可以关掉这条规则。
另外,macOS 本身在应用处于前台时通常也不画横幅(只静默进通知中心),这是系统行为, 不是插件能决定的。
语言
默认 language: "auto",跟随应用界面语言——auto 读的是 DSH 自己的语言设置,
而不是渲染进程的 navigator.language(桌面版里后者恒为 en-US,曾经导致中文应用弹出英文通知)。
想固定成某一种语言:
window.__DSH_NOTICE__.set({ language: "en" }) // 永远英文
window.__DSH_NOTICE__.set({ language: "auto" }) // 回到跟随应用
排查语言问题时,window.__DSH_NOTICE__.state() 里的 language 是实际生效的文案语言,
detectedLocale 是检测到的应用语言,两者对不上就能立刻定位。
手动安装(不想跑脚本时)
安装脚本只做两件简单的事,你完全可以自己来:
### 配置项
| 配置项 | 类型 | 默认 | 说明 |
|---|---|---|---|
| `enabled` | boolean | `true` | 总开关。`false` 时以下所有通道全部静默 |
| `onInteraction` | boolean | `true` | 请求授权 / 向你提问 / 计划待审时提醒 |
| `onComplete` | boolean | `true` | 一轮任务结束时提醒 |
| `sound` | boolean | `true` | 横幅是否带系统提示音 |
| `onlyWhenUnfocused` | boolean | `true` | 窗口在前台、且当前显示的正是要通知的那个会话时**不**提醒 |
| `announceOnFirstRun` | boolean | `true` | 首次安装时弹一条欢迎横幅(用来验证链路) |
| `language` | `"auto"` \| `"zh"` \| `"en"` | `"auto"` | 通知文案语言。`auto` = 跟随应用界面语言 |
> `sound` 只决定本插件发出的通知要不要响,与「系统设置 → 通知 → DeepSeek Harness」里的
> 声音开关互不影响。