deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
为 DeepSeek Harness(dsh)准备的 Windows 桌面通知组件:在对话完成、等待你授权、需要你回答这三个时刻,于系统托盘弹出气泡提醒,确保你不会错过任何需要操作的瞬间。
整个项目由少量纯脚本构成,不引入任何第三方包,也不需要编译或额外的运行环境——拿到代码就能直接跑起来。设计上刻意保持小巧:一个插件文件、一个托盘脚本、两个图标,没有安装包、没有后台服务、没有配置文件。
dsh web(用于生成 profile);git clone <仓库地址>
cd dsh-notice
也可以下载 ZIP 后解压,进入目录即可。
powershell -ExecutionPolicy Bypass -File .\setup.ps1
这一步会自动完成三件事:
dsh-notice.mjs 与兜底脚本 show-toast.ps1 复制到 ~/.dsh/profiles/web/plugins/,并在该 profile 的 cordis.patch.yml 中注册;HKCU\...\CurrentVersion\Run);配置成功后,任务栏右下角会出现一个蓝色铃铛图标,并弹出一条「通知服务已启动」的气泡。
taskkill /F /IM node.exe # 结束旧的 dsh 进程
dsh web # 重新启动
回到浏览器刷新页面即可。此后每当对话完成、等待授权或等待回答时,右下角都会弹出通知。
注意:请保留本仓库目录。托盘程序是从这里启动的,删除目录会导致托盘失效。
不习惯一键脚本的话,也可以分步进行:
.\install.ps1;start-tray.vbs;使用非 web profile 时,给脚本加 -Profile <名字>。
通知必须出现在你的交互桌面,而 dsh 沙箱内的进程无法可靠地把窗口投到桌面,因此拆成两段:
[dsh 宿主进程] ──写 JSON 触发文件──> [dsh-notice-tray(托盘常驻)] ──> 系统托盘气泡
dsh-notice.mjs:宿主端插件,监听会话事件并判断该不该提醒,把通知内容写成 %APPDATA%\dsh-notice\triggers\ 下的一个 JSON 文件;dsh-notice-tray.ps1:托盘常驻程序,每秒轮询触发目录,发现新文件就弹出气泡;show-toast.ps1:兜底方案,托盘未运行时由插件直接调用。插件监听的三个事件:
| 场景 | 会话事件 | 默认提示 |
|---|---|---|
| 对话完成 | turn/end |
会话已完成(有标题时拼成「标题 · 会话已完成」) |
| 等待授权 | approval/asked |
需要你允许执行操作(工具名) |
| 等待回答 | tool/call(ask_user_question) |
需要你回答一个问题 |
插件配置位于 profile 的 cordis.patch.yml:
| 键 | 默认值 | 说明 |
|---|---|---|
enabled |
true |
总开关 |
onlyTopLevel |
true |
只提示顶层会话,跳过子代理 / fork |
title |
"DeepSeek Harness" |
通知标题 |
cooldownMs |
0 |
两次提示的最小间隔 |
triggerDir |
%APPDATA%\dsh-notice\triggers |
触发文件目录(与托盘程序一致) |
notifyComplete |
true |
是否在对话完成时提醒 |
completeMessage |
"会话已完成" |
完成提醒的正文 |
includeTitle |
true |
完成提醒是否拼接会话标题 |
skipReasons |
["interrupted", "aborted"] |
视为「非完成」的结束原因 |
notifyApproval |
true |
是否在等待授权时提醒 |
approvalMessage |
"需要你允许执行操作" |
授权提醒的正文 |
notifyQuestion |
true |
是否在等待回答时提醒 |
questionMessage |
"需要你回答一个问题" |
提问提醒的正文 |
测试通知:立即弹一条测试气泡,随当前提示模式联动;
提示模式:三选一的全局设置——
当前模式会被记住,重启托盘程序后依然生效。
显示时长:气泡自动消失的时间,可选 1 / 3 / 5 / 10 秒(默认 5 秒),设置会被记住;
开机启动:勾选后随 Windows 登录自动运行;
退出:关闭托盘程序。
.\uninstall.ps1
托盘程序:右键图标 → 「退出」;若之前勾选了「开机启动」,先取消勾选再退出。
^ 里),并确认已重启 dsh web。cordis.patch.yml 里把对应的 notifyComplete / notifyApproval / notifyQuestion 设为 false。make-icon.ps1 顶部的颜色值后重新运行生成。CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。