dsh-no-long-sit:DSH Web 界面里的猫猫桌宠与久坐喝水提醒

前言

在 DeepSeek Harness(DSH)里写智能体、调插件,往往一屏就是几小时:计时器在别处、健康提醒靠自觉,页面一关就断了上下文。社区插件 dsh-no-long-sit(维护者 wangzhanchao883)把提醒嵌进 DSH 的 Web GUI:右下角一只可拖动的猫猫桌宠,专注周期到点居中弹窗加三声提示音,「再等会」给出带来源链接的案例,「结束」输出本次会话评价。计时与账本在宿主侧持久化,刷新页面不会把周期清零。

下面按「是什么 → 能做什么 → 怎么装 → 怎么用 → 注意点」说明,事实以 GitHub 仓库 README 为准;社区目录页见 SkillHub(独立站点,与 DeepSeek / 幻方无官方从属关系)。

这是什么

dsh-no-long-sit 是 DSH 的客户端(Web)插件:浏览器端渲染桌宠与弹窗,Node 宿主端负责权威计时、状态账本和只读 API。当前版本在 package.json 中为 0.1.3;许可证 MIT。

定位一句话:30–90 分钟专注周期结束后提醒起身走动与喝水;桌宠是载体,久坐提醒是已落地的第一项能力,README 写明后续还会扩展桌宠能力。

核心功能

桌宠(The pet)

  • 默认在页面右下角,状态对应循环动画:idle(趴着)、rise(起身伸懒腰)、drink(拿杯子)、sleep(睡觉)。动图为 Animated WebP,由浏览器原生播放,插件内不做逐帧定时。
  • 可拖动:拖到任意位置;位置写入 localStorage,刷新页面或重启 DSH 仍保留。拖动与点击分离:移动超过 4 px 才算拖,避免误开菜单。
  • 透明度可配(petOpacity,默认 0.75)。资源缺失或加载不全时降级为内置猫 SVG,不出现空白。

久坐与喝水提醒

专注周期结束时:

  • 居中遮罩弹窗 + 三声提示音(Web Audio 合成,无需音频文件;设置里可预览)。
  • 三个按钮:【休息好了】开始下一轮 · 【再等会】展示案例 · 【结束】结束会话。

休息倒计时结束会再次响铃并提示回来;若在 awaitReturnTimeoutMinutes(默认 10 分钟)内无人操作,会自动开始下一轮。

点 【再等会】 时,案例窗每次展示 1 条久坐 + 1 条缺水,来自内置 17 条 库(每条含真实来源 URL 与日期)。抽取方式为 shuffle bag:同一周期内不重复,连续两次访问不会相同;bag 状态在 localStorage,刷新或重启 DSH 会从上次进度继续,而不是从第 1 条重来。

点 【结束】 会给出会话报告:工作时长、完成轮数、成功打断次数、推迟次数、建议饮水量,以及 good / mid / bad 等级评价。

宿主与浏览器分工

  • 宿主(index.mjs + lib/):权威计时与账本,状态文件 <DSH_HOME>/data/dsh-no-long-sit/state.json(原子写入);案例库;五个只读路由 /dsh-no-long-sit/(路由自行校验跨域,资源路径白名单 + 清理)。
  • 浏览器(client.js):经典脚本、无构建步骤;注册到 shell.overlay,渲染桌宠与三个窗口,轮询宿主;通过 ctx.configForms 渲染设置卡片。每次入口会通过 settings.describe() 重读配置,因为改设置不会自动重载插件。

安装与启用

环境要求(README):

  • DSH 0.1.7–0.2.x,且使用带 Web GUI 的配置(web profile,或桌面应用)。
  • Node.js ^22 或 >=24。

安装后需重启 DSH(bundle 在启动时组装)。

官方安装命令:

dsh plugin --profile <profile> add dsh-no-long-sit
# restart DSH afterwards: bundle layers are composed at boot

也可从仓库 URL 添加:

dsh plugin --profile <profile> add https://github.com/wangzhanchao883/dsh-no-long-sit

将 <profile> 换成你实际使用的 DSH profile。

典型用法

  1. 安装并重启 DSH,在浏览器打开 DSH 页面,确认右下角出现猫猫(若关闭「浮动桌宠」则在设置里打开)。
  2. 打开 Settings → Plugins → 猫猫桌宠 · 久坐提醒,配置称呼/地址、专注周期(30–90 分钟)、休息周期(3–15 分钟)、推迟间隔与上限、铃声开关与音量、桌宠透明度、「回来」超时、等级阈值、案例刷新、是否显示浮动桌宠等;修改约 2 秒内生效。
  3. 正常在 DSH 里工作;专注周期结束时听三声提示,按需求选 休息好了 / 再等会 / 结束。
  4. 需要验证铃声时,在设置里用 preview;首次响铃前需在页面上有一次点击或按键(浏览器自动播放策略,插件会在首次交互时解锁音频)。

设置卡片里有两个安全项:Restore defaults(两步确认,一次原子写清全部用户覆盖并回到 schema 默认);当 debug 时间缩放低于 1 时会出现警告条,可一键恢复正常速度。

适用场景与注意

适合谁:长时间在 DSH Web 界面里开发、调试智能体或插件,希望周期提醒和案例说明都在同一套 GUI 里完成、且刷新不丢计时状态的用户。

运行与权限:插件以当前 dsh 进程的权限运行;安装前请自行查看 源码 与 MIT 许可证,确认可接受其行为(本地状态文件、只读 HTTP 路由、可选的案例刷新会调用宿主的 web search 与 host LLM)。

使用边界(README Notes):

  • 桌宠与弹窗仅在 DSH 页面打开时出现;所有页面都关闭时没有界面可弹。
  • 案例刷新成功时只保留搜索返回 URL 的条目;失败则保留旧库,原因显示在设置里。

结尾

dsh-no-long-sit 把「专注—休息—喝水」做成 DSH 客户端里可配置、可持久化的一整套流程:桌宠提供可见反馈,到点弹窗与三声铃拉你离开椅子,案例带来源链接而不是空泛口号,结束时有可对照的会话报告。在 DSH「一切皆插件」的生态里,它属于 客户端 类健康提醒插件。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye