dsh-widget:Windows 桌面上的 DSH 任务进度悬浮鱼

前言

用 DeepSeek Harness(DSH)跑智能体会话时,进度往往只在主窗口里:阶段切换、工具调用、todo 完成情况要切回 DSH 才能看清。窗口最小化或暂时关掉界面后,更难判断「现在是在排队、思考还是在跑工具」。下面介绍社区插件 dsh-widget(大肥鱼桌面挂件):在 Windows 桌面上单独开一条置顶、透明背景的可拖拽鱼娘,实时读 Host 写出的进度快照;可选在 DSH 退出后仍留在桌面,并在需要审批时用气泡和角标提醒你。

这是什么

dsh-widget 由维护者 oioiphainon 发布,在 SkillHub 等社区目录中归类为客户端插件。它不做 DSH 内的网页浮层(旧版 legacy/ 已停用),而是 Host(index.js)配合 PowerShell + WinForms 桌面进程(desktop/FatFishDesktop.ps1),通过 %LOCALAPPDATA%\dsh-fat-fish\state.json 与 DSH 解耦:关掉 DSH 窗口甚至退出 DSH 程序后,鱼仍可留在桌面上(超过约 7 秒无新数据时气泡会显示「DSH 未运行」类文案,DSH 再启动会自动接上)。

核心功能

进度与上下文

Host 监听会话与 agent 状态,折叠出 progress / approvals,并以约 800 ms 心跳(及事件后 120 ms 补写)原子写入 state.json;挂件约每 180 ms 读取该文件并绘制。气泡与详情面板可展示:

  • 阶段:排队、思考、输出、执行工具、完成、出错等,以及轮次、步骤、工具次数、用时;
  • 当前工具名与目标(如 grep、pwsh 等,部分工具有中文别名);
  • todo 完成度、进度条与逐条清单状态;
  • 后台任务、会话目标(第 n/m 轮)、团队任务,以及其它正在跑的会话数量。

调试时 Host 还提供 GET /api/fat-fish/progress(需浏览器认证),结构与落盘数据一致。

桌面交互

  • 透明 PNG 素材(desktop/fish.png),无白底圆盘;整鱼可拖,位置与 UI 状态写入 %LOCALAPPDATA%\dsh-fat-fish\widget.json。
  • 单击在气泡与详情面板间切换;右键可展开/收起、大小(小/中/大)、归位(默认右下角,并避开 dsh-whale-widget 鲸鱼位置)、退出。
  • 隐藏悬浮窗:右键一键隐藏(不持久化,避免下次登录误以为故障);恢复可点系统托盘小鱼图标,或再次运行 desktop\launch-widget.vbs(单实例锁会通过 show-request 唤醒隐藏实例)。
  • 开机自启(可选,默认关):在启动文件夹创建指向 launch-widget.vbs 的快捷方式;DSH 退出后保留悬浮窗(可选,默认开):写入 widget.json 的 keepAfterExit;关闭后 Host 停止写快照约 30 秒宽限后挂件自行退出。

审批提醒

Host 从会话日志读取 approval/asked / approval/decided,不拦截 approval/request 瀑布。有待审批时气泡变琥珀色「需要你审批」,鱼挂 ! 角标并可选提示音(widget.json 的 alertSound);点击卡片将 DSH 窗口提到最前。处理结果会约 6 秒显示「已允许 / 已拒绝」等映射文案。右键可关审批提示音。

随 DSH 启动

插件加载后 Host 在约 1.5 秒内通过 desktop\launch-widget.vbs(VBS 静默启动,避免子进程随 Host 作业对象一起被带走)拉起桌面挂件,单实例互斥,重复拉起不会叠出第二条鱼。

安装与启用

环境:Windows 10/11 + DeepSeek Harness;系统自带 PowerShell 5.1,无需管理员;挂件不联网、不上传数据。

推荐用官方文档中的命令安装(--profile desktop 请换成你实际 profile,可先 dsh profile list):

dsh plugin --profile desktop add github:oioiphainon/dsh-widget

需要固定版本时可钉 tag,例如 README 中的:

dsh plugin --profile desktop add github:oioiphainon/dsh-widget#v0.4.2

装好后 DSH 加载插件时会自动拉起挂件;也可手动双击插件目录下 desktop\launch-widget.vbs。验证:桌面右下角出现鱼与气泡,任务栏托盘(可能在溢出面板)有小鱼图标。

卸载示例:

dsh plugin --profile desktop remove @local/dsh-fat-fish-widget

再右键鱼 → 退出;配置目录 %LOCALAPPDATA%\dsh-fat-fish 可手动删除以清空本地状态。

典型用法

  1. 安装并打开 DSH,等待桌面右下角出现大肥鱼;会话运行时观察气泡中的阶段与当前工具。
  2. 需要看 todo、后台任务或团队任务时,单击鱼展开详情面板;拖鱼到习惯位置,位置会自动记住。
  3. DSH 弹出工具审批时,看琥珀色气泡与 ! 角标,点卡片切回 DSH 处理;若不想被打扰,右键关闭「审批提示音」。
  4. 只想用 DSH 时出现挂件:右键关闭「DSH 退出后保留悬浮窗」;希望登录就有鱼、DSH 未开也显示「DSH 未运行」:右键开启「开机自启」。
  5. 临时不想看到鱼:右键「隐藏悬浮窗」,再从托盘小鱼左键恢复。

全局 UI 缩放可在 desktop/FatFishDesktop.ps1 中调整 $script:UiScale(默认 1.12),改完需右键退出挂件后重新启动生效。

适用场景与注意

适合在 Windows 上长期开 DSH、希望任务进度始终贴在桌面上、且关心审批是否 pending 的开发者。与「只在 DSH 窗口内看日志」相比,挂件独立进程、置顶透明窗,最小化 DSH 不影响看进度。

使用前请注意:

  • 插件以当前 DSH 进程及其拉起的 Host 逻辑运行;桌面脚本来源为 GitHub 仓库,安装前建议浏览源码与仓库声明的许可与版本(package.json 当前版本为 0.4.2,包名 @local/dsh-fat-fish-widget)。
  • 仅支持 Windows;Linux/macOS 不适用。
  • 社区目录(如 SkillHub 插件页)由社区维护,与 DeepSeek / 幻方无官方从属关系;DSH 生态是「一切皆插件」,本插件是其中一条客户端向扩展。

结尾

dsh-widget 把 DSH 最近活跃会话的进度、todo 与审批状态,通过本地 state.json 喂给桌面置顶鱼娘,并可选开机自启、DSH 退出后保留与一键隐藏。若你在 Windows 上跑 Harness,又希望「打开 DSH 就有一条鱼在桌上报进度」,可按上文命令安装并在托盘与右键菜单里按需调节行为。

  • 目录页:https://www.skillhub.cn/plugins/oioiphainon/dsh-widget
  • 源码与完整说明:https://github.com/oioiphainon/dsh-widget
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye