会话需关注时弹 Windows 通知,点击即可返回窗口
28.3/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add baobaolaodie/cc-dsh-notifier该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · desktop
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 73 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 23 处,展示前 23 条)
- 发起网络请求plugins/dsh-notifier/lib/forwarder.mjs:42
const req = http.request( - 发起网络请求plugins/dsh-notifier/lib/forwarder.mjs:62
const req = http.request( - 执行外部命令来自配置/变量plugins/dsh-notifier/lib/forwarder.mjs:73
const child = spawn(process.execPath, [DAEMON], { detached: true, stdio: 'ignore', windowsHide: true }); - 执行外部命令固定命令plugins/dsh-notifier/lib/forwarder.mjs:97
const child = spawn('python', args, { detached: true, windowsHide: true, stdio: 'ignore' }); - 执行外部命令来自配置/变量scripts/daemon.mjs:62
execFile(FG_EXE, [], { encoding: 'utf8', timeout: 3000, windowsHide: true }, (err, stdout) => { - 执行外部命令来自配置/变量scripts/daemon.mjs:198
child = spawn(py, args, { windowsHide: true }); - 发起网络请求scripts/daemon.mjs:232
const req = http.request( - 执行外部命令来自配置/变量scripts/daemon.mjs:304
const child = spawn(process.execPath, [self], { detached: true, stdio: 'ignore', windowsHide: true }); - 读取本地文件scripts/install-commit-hook.mjs:49
if (!fs.existsSync(path.join(ROOT, '.git'))) { - 写入本地文件scripts/install-commit-hook.mjs:53
fs.writeFileSync(HOOK, HOOK_BODY, 'utf8'); - 写入本地文件scripts/install-commit-hook.mjs:54
fs.chmodSync(HOOK, 0o755); - 执行外部命令固定命令scripts/install.mjs:43
execFileSync('python', ['--version'], { stdio: 'ignore' }); - 执行外部命令固定命令scripts/install.mjs:46
const resolved = execFileSync('where', ['python'], { encoding: 'utf8' }) - 执行外部命令来自配置/变量scripts/install.mjs:56
execFileSync(pythonPath, ['-c', winrtProbe], { stdio: 'ignore' }); - 执行外部命令固定命令scripts/install.mjs:83
execFileSync('reg', ['add', AUMID, '/v', 'DisplayName', '/t', 'REG_SZ', '/d', 'cc-notifier', '/f'], { stdio: 'ignore' }); - 执行外部命令固定命令scripts/install.mjs:84
execFileSync('reg', ['add', AUMID, '/v', 'IconUri', '/t', 'REG_SZ', '/d', ICON_URI, '/f'], { stdio: 'ignore' }); - 执行外部命令来自配置/变量scripts/notify-agent.mjs:47
const child = spawn(process.execPath, [DAEMON], { detached: true, stdio: 'ignore', windowsHide: true }); - 执行外部命令来自配置/变量scripts/notify-agent.mjs:65
const child = spawn(process.execPath, [DAEMON], { detached: true, stdio: 'ignore', windowsHide: true }); - 发起网络请求scripts/notify-agent.mjs:94
const req = http.request( - 发起网络请求scripts/notify-agent.mjs:112
const req = http.request( - 执行外部命令来自配置/变量scripts/notify-agent.mjs:153
const child = spawn(py, args, { detached: true, windowsHide: true, stdio: 'ignore' }); - 执行外部命令来自配置/变量scripts/test.mjs:28
const child = spawn(process.execPath, [AGENT, type], { stdio: ['pipe', 'inherit', 'inherit'] }); - 执行外部命令固定命令scripts/uninstall.mjs:31
execFileSync('reg', ['delete', AUMID, '/f'], { stdio: 'pipe' });
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 会话需关注时弹通知
- 点击通知返回窗口
- 支持多会话来源
Windows 桌面通知,支持 Claude Code 和 DeepSeek Harness 会话。点任意弹窗即可恢复会话窗口——同类工具只通知不聚焦。零外部 npm 依赖。
README
由 DeepSeek 最新模型翻译生成cc-dsh-notifier
为 Claude Code 和 DeepSeek Harness 会话提供 Windows 桌面通知
权限请求 · 提问 · 等待输入 · 点击返回
English · 中文
当智能体需要你关注、而你并未注视其窗口时,cc-dsh-notifier 会弹出带有声音的 Windows 原生通知。它通过钩子系统为 Claude Code 服务,并通过一个小型 bundle 插件为 DeepSeek Harness 服务,二者共享同一条守护进程流水线。点击通知即可返回会话窗口。零第三方 npm 依赖。
功能特性
| 功能 | 描述 |
| 中断事件 | 在权限请求、提问和等待输入时发出通知 |
| 焦点感知 | 当会话窗口处于焦点时抑制通知;仅在未聚焦时通知 |
| 点击返回 | SetForegroundWindow 定位到会话窗口;浏览器标签页通过 CDP 激活,并以 UIA 作为回退方案 |
| 多会话 | 每个会话绑定各自的窗口句柄;通知携带会话身份 |
| 本地化通知 | 通知文本遵循 Windows 显示语言(auto)或 language 设置(zh/en) |
| DeepSeek Harness | dsh-notifier 插件通过一次安装即可覆盖 web 和 tui 配置文件 |
快速开始
前置条件
展开完整文档(README 剩余 1 节)
cc-dsh-notifier
为 Claude Code 和 DeepSeek Harness 会话提供 Windows 桌面通知
权限请求 · 提问 · 等待输入 · 点击返回
English · 中文
当智能体需要你关注、而你并未注视其窗口时,cc-dsh-notifier 会弹出带有声音的 Windows 原生通知。它通过钩子系统为 Claude Code 服务,并通过一个小型 bundle 插件为 DeepSeek Harness 服务,二者共享同一条守护进程流水线。点击通知即可返回会话窗口。零第三方 npm 依赖。
功能特性
| 功能 | 描述 |
| 中断事件 | 在权限请求、提问和等待输入时发出通知 |
| 焦点感知 | 当会话窗口处于焦点时抑制通知;仅在未聚焦时通知 |
| 点击返回 | SetForegroundWindow 定位到会话窗口;浏览器标签页通过 CDP 激活,并以 UIA 作为回退方案 |
| 多会话 | 每个会话绑定各自的窗口句柄;通知携带会话身份 |
| 本地化通知 | 通知文本遵循 Windows 显示语言(auto)或 language 设置(zh/en) |
| DeepSeek Harness | dsh-notifier 插件通过一次安装即可覆盖 web 和 tui 配置文件 |
快速开始
前置条件
- Windows 10 或 11
- Node.js 18 或更高版本
- 安装了 winrt 包的 Python 3:pip install winrt-runtime winrt-Windows.UI.Notifications winrt-Windows.Data.Xml.Dom
安装(Claude Code)
node scripts/install.mjs
安装程序会备份 ~/.claude/settings.json,注入五个钩子,注册 cc-notifier AppUserModelID,并写入默认配置。之后请打开一个新的 Claude Code 会话。
安装(DeepSeek Harness)推荐 — 从最新发布下载 tarball 并安装(无需克隆仓库,无需凭据):
dsh plugin --profile web add ./baobaolaodie-cc-dsh-notifier-0.1.5.tgz
dsh plugin --profile dsh-tui add ./baobaolaodie-cc-dsh-notifier-0.1.5.tgz
版本说明 / Version note: 顶部徽章 0.1.2 是 root 包版本;上方 tarball 名 0.1.5 是 dsh 插件包版本,两者是两个独立的发布单元(en: top badge = root package, tarball = dsh plugin; independent release units). 备选方案 — git 安装(克隆整个仓库,零配置):
dsh plugin --profile web add github:baobaolaodie/cc-dsh-notifier
dsh plugin --profile dsh-tui add github:baobaolaodie/cc-dsh-notifier
GitHub Packages(@baobaolaodie/cc-dsh-notifier)仅作为维护者便利渠道存在:GitHub Packages 的 npm registry 下载时始终需要 read:packages token,即使是公开包也是如此(已验证)。请改用 tarball 或 git 安装。
已在 Windows 11 上针对 dsh 0.1.0-rc.6 验证(2026-08-16):web 和 tui 配置文件、权限/提问/等待输入通知、焦点感知静默、点击返回,以及 tarball 安装流程。
dsh-TUI · dsh-TUI 生态系统中的 Windows toast 通知插件。
验证
npm test
用法
Claude Code
启动一个会话并切换到其他窗口。当 Claude 请求权限、提出问题或完成一轮对话时,系统会发出通知。
claude
switch to another window; toasts appear when Claude needs you
DeepSeek Harness
该插件将 dsh 会话事件转发到同一管道中。Web 会话绑定到浏览器窗口;tui 会话绑定到终端窗口:
dsh web # or: dsh --profile web
dsh-tui # or: dsh --profile dsh-tui
手动触发(测试)
node scripts/test.mjs permission-request # permission-request | ask-user-question | stop | session-start
当目标窗口处于焦点状态时,toast 会被抑制,因此请切换到其他窗口以观察它们。
配置
编辑 ~/.cc-notifier/config.json(安装时创建):
| 键 | 默认值 | 描述 |
| enabled | true | 设为 false 以全局禁用通知 |
| dedupWindowMs | 0 | 去重窗口(毫秒);0 = 不去重;>0 按会话+类型合并 |
| pythonPath | 空 | toast 解释器的绝对路径(由安装程序写入);空 = 使用 PATH 中的 python |
| pollIntervalMs | 10000 | 守护进程窗口轮询周期(毫秒) |
| windowWhitelist | [] | 用于 dsh web 绑定/焦点的浏览器进程白名单(例如 chrome.exe/msedge.exe) |
| sound | true | 设为 false 以静音 toast 声音 |
| language | auto | Toast 语言:auto(系统显示语言,zh-→zh,en-→en,其他/失败→en)、zh 或 en |
架构事件驱动管道仅在会话活跃时运行。Claude Code hooks 和 dsh 插件都会产生相同的规范化载荷;常驻守护进程决定是否通知,Python 代理负责显示 toast:
%%{init: {'theme': 'base', 'themeVariables': {'fontSize': '14px'}}}%%
flowchart LR
CC["Claude Codehooks"] --> NA["notify-agent.mjsforwarder"]
DSH["dsh-notifierplugin · web/tui"] --> NA
NA -->|"HTTP · localhost"| DM["daemon.mjssessions · focus · lifecycle"]
DM --> TA["toast-agent.pywinrt toast"]
TA -->|"click"| WIN["session windowSetForegroundWindow · CDP/UIA tab"]
DM --> ST[("state · logs%LOCALAPPDATA%")]
classDef client fill:#3B82F6,stroke:#2563EB,color:#fff,stroke-width:2px
classDef service fill:#10B981,stroke:#059669,color:#fff,stroke-width:2px
classDef data fill:#8B5CF6,stroke:#7C3AED,color:#fff,stroke-width:2px
class CC,DSH,WIN client
class NA,DM,TA service
class ST data
守护进程为单实例:按需唤醒,在无会话 60 秒后退出,并在其代码变更时自动重启。会话会在守护进程重启后自动重新注册。
项目结构
├── scripts/ # Runtime pipeline
│ ├── notify-agent.mjs # Hook forwarder (Claude Code)
│ ├── daemon.mjs # Resident process: sessions, focus, dedup
│ ├── toast-agent.py # Python winrt toast + click handling
│ └── lib/ # Shared modules, win32 bridge, CDP/UIA helpers
├── plugins/
│ └── dsh-notifier/ # dsh bundle plugin (web + tui profiles)
├── test/ # node:test suite (explicit file list)
├── docs/ # Installation, usage, troubleshooting (bilingual)
├── dsh-plugin.json # dsh-ecosystem-spec Community v0.15 declaration manifest
└── package.json # Zero runtime dependencies
技术栈
| 层级 | 技术 | 用途 |
| 运行时 | Node.js 18+ (ESM) | 转发器、守护进程、插件 |
| 通知 | Python 3 + winrt | Windows toast 渲染与激活 |
| 窗口桥接 | PowerShell 5.1 + C# 辅助程序 | 窗口枚举、前台查询、CDP/UIA 标签页激活 |
| 测试 | node:test | 单元 + 集成测试 |
部署
CI 在 GitHub Actions 上运行(test × 6 矩阵,覆盖 Ubuntu 和 Windows 上的 Node 18/20/22,外加 quality、pr-policy、docs-links 和一个汇总任务)。参见 .github/workflows/ci.yml。
贡献
1. Fork 仓库
2. 创建功能分支(git checkout -b feature/your-change)
3. 使用 Conventional Commits 提交(feat:、fix:、docs:……)
4. 发起 Pull Request
PR 必须通过完整的 CI 套件,包括双语文档镜像检查和版本一致性检查。参见 CONTRIBUTING.md。
许可证
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
baobaolaodie/cc-dsh-notifier
会话需关注时弹 Windows 通知,点击即可返回窗口
相关插件 · 桌面端
Codex 任务面板chuspeeism/dashi-taskboard
现代化可灵活嵌入的任务面板,支持 Codex、DeepSeek Harness
★ 3,409已汉化DSH
71.7
多智能体自进化开发平台Prism-Shadow/penguin-harness
统一、稳定的 Agent 自进化框架全自动优化:任意模型 · 任意算法 · 任意 Benchmark
★ 3,125已汉化DSH
71.1
桌面宠物PC2005-cloud/dsh-pet
DSH 桌面宠物:一行命令装好即用的透明动画小桌宠,支持多开、大小位置随心配置;还内置 DIY 素材链,能用 AI…
★ 5,465已汉化DSH
71
多端 Agent 工作台GCWing/OpenBitFun
OpenBitFun 是一个高度可定制的开源 Agent 工作台,让任务按你的方式持续推进。
★ 3,457已汉化DSH
70.8
DSH Desktopanywhere-labs/dsh-desktop
为 DeepSeek Harness DSH 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。
★ 34,710已汉化DSH
70.7
桌面宠物伴侣OpenPetsHQ/openpets
桌面伴侣平台,带宠物、插件,还能选配本地智能体集成。
★ 1,378已汉化DSH
70.2
这是你的仓库?认领条目