前言¶
在 DSH 的 Web 界面里,长对话或重复追问时,用户往往需要自己估算今天还剩多少时间。浏览器、日历和番茄钟都能看时间,但注意力仍留在输入框时,多开一个窗口并不顺手。dsh-offwork-countdown 是一枚常驻在 composer 下方的倒计时胶囊,把“距离下班”直接放在输入框旁边。
这是什么¶
该插件由 ZydFirst 维护,属于客户端分类,GitHub 仓库为 ZydFirst/dsh-offwork-countdown。它解决的问题很轻:工作日显示距离下班的剩余时间和当天进度;到点后自动切换文案并继续显示加班时长;周末不倒数,只提示。
从实现看,它不负责重排界面,只是通过 DSH 的槽位机制,在 conversation.composer.dock 放入倒计时胶囊,在 shell.overlay 放入设置框。浏览器侧脚本承载主要逻辑,Host 侧 index.js 只保留空的 apply()。
核心功能¶
- 工作日倒计时:默认上班时间为
09:00,下班时间为18:00。胶囊显示类似“距离下班 08:24:00”,右侧细进度条表示当天从上班到现在走的进度。 - 到点切换:到下班时间后,文案先变成“下班啦”,随后转为“已下班 00:03:12”等加班计时,并带有轻微呼吸变化。
- 周末模式:周六周日不倒数,只显示“周末快乐”。
- 自设上下班时间:点击胶囊会弹出居中设置框,可修改上班 / 下班时间,保存后即时生效;也可以用“恢复默认”回到
09:00 – 18:00。 - 主题与本地化:颜色只使用
--dsw-alias-*主题 token,亮色和暗色会自动适配;可见文案走 Client locale 服务,提供中英双语。 - 减少动效支持:在
prefers-reduced-motion情况下,关闭呼吸动画和进度条过渡。
安装与启用¶
dsh plugin --profile web add github:ZydFirst/dsh-offwork-countdown
该命令来自 GitHub README。安装完成后需要刷新一次页面,插件才会在 Web 界面加载。由于它是客户端插件,功能依赖浏览器侧脚本能否拿到对应槽位;刷新页面即可让新的 bundle 生效。
典型用法¶
安装并刷新后,设置默认就是 09:00 – 18:00。用户点击输入框下方的胶囊,会打开设置框,里面有两个时间输入项:
- 上班时间 / 下班时间:使用
<input type="time">。 - 保存:改完后点击“保存”;点击“恢复默认”回到
09:00 – 18:00。 - 关闭:Esc、点击遮罩或“取消”都可以关掉设置框。
设置不会上传,也不会写进会话日志。它保存在本机浏览器的 localStorage 中,键名是 dsh.offwork-countdown.settings.v1。这一点对个人使用比较友好:换一个浏览器、清空 localStorage,或换一台机器,设置就会回到默认值。
实现与目录结构¶
插件是纯 JavaScript,没有构建步骤,也没有运行时依赖。浏览器侧的 client.js 通过 window.__ModuleLoader__ 注册两个槽位:conversation.composer.dock 放倒计时胶囊,shell.overlay 放设置框;设置框浮在所有列之上,不会被输入框卡片遮挡。两个槽位共享一个极小的模块级 store,胶囊只运行一颗 1 秒的时钟,卸载时通过 ctx.effect 清理。
仓库中的文件包括:
client.js 浏览器侧:槽位注册、倒计时组件、设置对话框
index.js Host 侧:空 apply
cordis.patch.yml bundle patch
locale/{zh,en}.json 插件清单里的标题与描述
icon.svg 插件图标
assets/icon-256.png 市场卡片用的位图图标
如果想改图标,README 给出的本地命令是重新生成位图:
python scripts/make-icon.py
该命令依赖 Pillow 和 numpy,只在维护图标时需要使用,不影响日常安装或运行。
适用场景与注意¶
它适合经常使用 DSH Web 界面、希望把下班时间放在手边、又不想常驻额外窗口的用户。对智能体开发者来说,如果需要展示本地小工具如何接入 DSH 的客户端槽位,这个插件也可以作为轻量参考:单个客户端脚本注册两个槽位,Host 侧只保留空 apply(),即可让 bundle 进入插件清单。
需要注意两点。第一,插件以当前 DSH 进程的权限运行,安装前应检查源码、配置和许可证;该仓库使用 MIT License,作者为 ZydFirst。第二,设置仅停留在本机浏览器,不会同步;换浏览器或清缓存后需要重新设置。目录页属于社区生态,与 DeepSeek / 幻方无官方从属关系。
小结¶
dsh-offwork-countdown 的价值不在于复杂功能,而在于降低查看下班时间的注意力成本:平时放一枚胶囊,到点自动切换,周末不打扰,设置成本很低。适合作为 DSH Web 界面的轻量辅助插件使用。
- 目录页:https://www.skillhub.cn/plugins/ZydFirst/dsh-offwork-countdown
- GitHub:https://github.com/ZydFirst/dsh-offwork-countdown