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

思考状态悬浮窗 6-debug-6/dsh-thinking-notifier

DeepSeek Harness
6-debug-627 天前有提交已提供中文文档扫描:含敏感能力

一个 DeepSeek Harness DSH 插件:在屏幕右下角显示一个置顶桌面悬浮窗,实时显示 AI 思考状态;当…

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

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

自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add 6-debug-6/dsh-thinking-notifier
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

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

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

未发布到 npm registry,仅可从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-thinking-notifier(未发布到 npm,仅可源码安装)
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/22 04:37:29

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件
查看扫描证据(共 5 处,展示前 5 条)
  • 写入本地文件
    lib/index.js:51
    mkdirSync(dir, { recursive: true })
  • 写入本地文件
    lib/index.js:52
    appendFileSync(logJoin(dir, 'tn-plugin.log'), `[${new Date().toISOString()}] ${msg}
  • 执行外部命令固定命令
    lib/index.js:496
    spawnSync('powershell.exe', [
  • 执行外部命令固定命令
    lib/index.js:526
    popupProcess = spawn('powershell.exe', [
  • 执行外部命令来自配置/变量
    lib/index.js:534
    popupProcess = spawn(python, [POPUP_PY, '--port', String(port)], { stdio: 'ignore' })
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

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

功能亮点

  • 右下角置顶悬浮窗
  • 实时显示思考状态
  • 提示完成或请求授权

一个简单弹窗,分屏时能快速提示 DeepSeek 思考完成或正在请求授权。

README

由 DeepSeek 最新模型翻译生成
dsh-thinking-notifier 一个 DeepSeek Harness (DSH) 插件:在屏幕右下角显示一个置顶桌面悬浮窗,实时显示 AI 思考状态;当 AI 请求权限、等你做选择或完成思考时提醒你。即使你切到其它网页、桌面或桌面应用,也能看到统一风格的弹窗。 English version: README.md 功能 | 状态 | 悬浮窗 | 声音 | | AI 正在思考 | DeepSeek 蓝呼吸点 + AI 正在思考… + 计时;5 秒后自动收起为右侧 25 像素边缘状态条,悬停或点击可展开 | 无 | | AI 等你做选择 | 紫色呼吸点 + AI 正在等待你的选择 + 问题标题、第一个问题的选项(选项:A / B,可多选时显示(可多选),一次问多个问题时显示(共 N 问))与已等待时长;保持展开直到你回答 | 系统 Question | | AI 请求权限 | 琥珀色呼吸点 + AI 请求权限 + 会话/工具名;保持展开直到你处理 | 系统 Exclamation | | AI 完成思考 | 绿色点 + AI 已完成思考,12 秒后自动隐藏 | 系统 Asterisk | | 空闲 | 自动隐藏 | 无 | - DeepSeek 风格深色卡片(#1E2235 / #4D6BFE)。 - 无边框置顶窗口,右下角显示,覆盖所有应用。
展开完整文档(README 剩余 1 节)
dsh-thinking-notifier

一个 DeepSeek Harness (DSH) 插件:在屏幕右下角显示一个置顶桌面悬浮窗,实时显示 AI 思考状态;当 AI 请求权限、等你做选择或完成思考时提醒你。即使你切到其它网页、桌面或桌面应用,也能看到统一风格的弹窗。

English version: README.md

功能

| 状态 | 悬浮窗 | 声音 |
| AI 正在思考 | DeepSeek 蓝呼吸点 + AI 正在思考… + 计时;5 秒后自动收起为右侧 25 像素边缘状态条,悬停或点击可展开 | 无 |
| AI 等你做选择 | 紫色呼吸点 + AI 正在等待你的选择 + 问题标题、第一个问题的选项(选项:A / B,可多选时显示(可多选),一次问多个问题时显示(共 N 问))与已等待时长;保持展开直到你回答 | 系统 Question |
| AI 请求权限 | 琥珀色呼吸点 + AI 请求权限 + 会话/工具名;保持展开直到你处理 | 系统 Exclamation |
| AI 完成思考 | 绿色点 + AI 已完成思考,12 秒后自动隐藏 | 系统 Asterisk |
| 空闲 | 自动隐藏 | 无 |

- DeepSeek 风格深色卡片(#1E2235 / #4D6BFE)。
- 无边框置顶窗口,右下角显示,覆盖所有应用。
- 思考中显示 5 秒后自动收起为右侧 25 像素边缘状态条,既保持可见又不遮挡桌面按键。
- 鼠标悬停或点击边缘状态条可手动展开;新的思考、提问、权限请求或完成状态会自动展开。
- 点击右上角 X 可提前关闭当前弹窗;后续新的思考、提问、权限请求或完成状态会重新显示。
- 提问会连选项一起显示,因此不必切回窗口就能知道 AI 在问你什么;回答仍然在 DSH Web UI 里完成(悬浮窗是只读提示)。
- 多个会话自动汇总显示。
- 弹窗进程在 DSH 运行期间常驻;状态服务不可达约 15 秒后自动退出。
- 不需要浏览器扩展,弹窗是原生桌面窗口。

工作原理

DSH 进程 └─ lib/index.js(主机插件) ├─ 监听 session/event:turn/start、turn/end、approval/asked、approval/decided、session/title ├─ 启动时从 ctx.sessions.list() 重建已有会话状态 │ (日志停在未闭合 turn 里的会话按“没在思考”处理,避免崩溃遗留导致永久误报) ├─ 包装 ctx.userQuestions.ask 以观测 ask_user_question │ (该状态不产生 session 事件,且只允许一个 UI provider,无法再注册一个) ├─ 在 http://127.0.0.1:7389/status 提供本地状态 JSON └─ 拉起桌面弹窗进程 ├─ Windows: desktop-popup.ps1(PowerShell + WPF) └─ macOS/Linux: desktop-popup.py(Python 3 + tkinter)

桌面弹窗 ├─ 每 1 秒轮询 /status ├─ 渲染 DeepSeek 风格卡片(question/pending/running/done/idle) ├─ question/pending/done 状态切换时播放系统提示音 ├─ 思考中自动收起为右侧 25 像素边缘状态条;等你操作时保持展开 └─ 空闲时隐藏,进程保持运行

状态 JSON

GET http://127.0.0.1:7389/status 返回:

{
"ok": true,
"mode": "question",
"statusText": "AI 正在等待你的选择", "sessionText": "Choose Mode", "detailText": "选项:样式 A / 样式 B(可多选)", "timeText": "已等待 00:12", "pendingKind": "question", "pendingTool": null, "runningSince": null, "doneAt": null, "questionCount": 1, "questionSince": 1791374946369, "appUrl": "http://127.0.0.1:3080", "now": 1791374946369 }

mode 优先级:pending(等权限)> question(等选择)> running > done(显示 12 秒)> idle。
pendingKind 为 approval 或 question。timeText 在 running 时是思考计时、在 question 时是已等待时长;detailText 携带选项摘要。

安装

本地安装

cd dsh-thinking-notifier
dsh plugin --profile web add .

重启 DSH Web 以加载主机插件
dsh web

发布到 npm 后安装

dsh plugin --profile web add dsh-thinking-notifier
dsh web

卸载

dsh plugin --profile web remove dsh-thinking-notifier

配置

| 环境变量 | 默认值 | 说明 |
| DSH_THINKING_NOTIFIER_PORT | 7389 | 本地状态服务端口,被占用时自动顺延 10 个端口 |
| DSH_THINKING_NOTIFIER_NO_POPUP | 未设置 | 设为 1 时只跑状态服务、不拉起桌面弹窗(无桌面环境/测试用) |

环境要求

- DeepSeek Harness Web UI(dsh web)
- Node.js ^22.19.0 || >=24.0.0
- Windows:Win10/11 自带 PowerShell 5.1+
- macOS/Linux:Python 3 + tkinter

验证情况(如实说明)

| 项目 | 状态 |
| 思考中/已完成状态、弹窗几何、提示音、单实例 | 已在 Windows 10/11(PowerShell 5.1 + WPF)实测 |
| 提问状态(ask_user_question) | 已在真实 DSH 会话里端到端验证(真实提问让弹窗进入等待态,作答后自动清除),并在真实 cordis 上下文对真实 ctx.userQuestions 服务验证、有冒烟测试覆盖 |
| 权限提醒(琥珀色) | 仅用模拟状态服务验证过。 当前 Windows 部署下 bash 没有 confining sandbox,越界写入不会被拦截,运行时不会自发产生审批;只有工具显式请求 sandbox_permissions 升级,或 pre-execute 钩子返回 ask 时才会出现该状态 |
| desktop-popup.py(macOS/Linux) | 从未在真实机器上运行,只做过语法检查 |
| 反复重启 dsh web 后的弹窗叠加 | 启动前会先清理同端口的旧弹窗进程;已覆盖单次重启场景 |

开发

状态机冒烟测试(假 cordis 上下文、不拉弹窗、端口 17389)
npm test

用模拟状态服务看弹窗渲染,用空闲端口
node tools/mock-status.mjs question --port 17389
powershell -NoProfile -ExecutionPolicy Bypass -File desktop-popup.ps1 -Port 17389 # Windows
python3 desktop-popup.py --port 17389 # macOS/Linux

做弹窗实验请用空闲端口:插件只会清理自己端口的弹窗进程,7389 上真正在用的弹窗不会被影响。

项目结构

dsh-thinking-notifier/
├── lib/
│ └── index.js # 主机插件:状态机 + 状态服务 + 弹窗拉起 ├── desktop-popup.ps1 # Windows 原生弹窗(PowerShell + WPF) ├── desktop-popup.py # macOS/Linux 原生弹窗(Python 3 + tkinter) ├── cordis.patch.yml # DSH bundle patch,用于持久挂载 ├── test/ │ └── status-smoke.mjs # 状态机冒烟测试 ├── tools/ │ └── mock-status.mjs # 模拟状态服务,用于离线看弹窗 ├── package.json # npm 包 + dsh.bundle 声明 ├── README.md # 英文说明 ├── README.zh.md # 中文说明 ├── CHANGELOG.md ├── CONTRIBUTING.md └── LICENSE

排错

调试日志位置:

- ~/.dsh/tn-plugin.log — 主机插件生命周期、弹窗启动器、提问包装。
- ~/.dsh/tn-launcher.log — 启动器创建的弹窗进程 PID。
- ~/.dsh/tn-popup-debug.log — 弹窗脚本生命周期与轮询错误。

重启 dsh web 后如果看不到弹窗,请先查看以上日志。
注意 tn-plugin.log 里的 popup launcher exit: code=0 是正常的:插件先启动一个一次性启动器,由它创建真正常驻的弹窗进程然后退出。

License

MIT
预览分享卡片长什么样 ↓6-debug-6/dsh-thinking-notifier
分享 · DeepSeek Harness Hub
6-debug-6/dsh-thinking-notifier

一个 DeepSeek Harness DSH 插件:在屏幕右下角显示一个置顶桌面悬浮窗,实时显示 AI 思考状态;当…

这是你的仓库?认领条目

回到顶部