dsh-time&timer
Visual clock and timer plugin for DeepSeek Harness Web GUI.
在 Harness 的对话界面里内置一个与系统时间同步的可视化时钟:首页显示大号数字时钟(含农历、中国法定节假日与调休),对话进行时在标题栏显示紧凑时间条;两种形态都带一个最多 15 分钟的计时器入口。
功能
两种时钟形态
| 模式 | 出现时机 | 位置与尺寸 |
|---|
| StartMode | 首页 / 空白会话(Hero 页) | 对话区域左上角,256 × 64 px 横向数字时钟卡片 |
| DefaultMode | 任意对话进行时 | 标题栏左侧工具区(标题旁的 actions 组)最右端,JetBrains Mono 14px |
- 时间统一为 24 小时制
HH:MM:SS,每秒刷新。
- StartMode 顶部:公历年
YY/MM/DD(如 26/10/18)+ 节假日 / 休息日徽标(国庆节·休、春节·班)。
- StartMode 中部:
HH:MM:SS 作为视觉焦点(HH:MM 30px + 秒 18px),居中偏左。
- StartMode 底部:农历日期,格式
丙午年.九月初九(含生肖年干支),默认关闭、可在插件设置中开启。
- DefaultMode:时间条带一层加深底色块(含 1px 内描边),时间与蓝色计时按钮整体成为标题栏里的聚焦区域。
- 两种模式的计时器入口采用同一套蓝色强调:
- StartMode:
64 × 24 矩形按钮;
- DefaultMode:
24 × 24 正方形按钮;
- 顶部边缘线均有 1px 白色高光(
inset 0 1px 0 #fff,高光仅出现在边缘线上),图标颜色 #27F5F5。
双时间来源
- 默认采信系统时间(浏览器
Date)。
- 在插件设置中开启第三方时间服务器后,Host 半通过 UDP 向
ntp.aliyun.com 查询,Client 按偏移量校正显示;每 5 分钟重新同步一次,失败自动回退系统时间并在设置页显示错误。
- 浏览器无法直接发送 NTP(UDP/123),因此 Host 半注册了
GET /api/time-n-timer/ntp 路由;该路由只查询固定的 ntp.aliyun.com,不是通用 NTP 代理。
计时器(Timer)
- 上限 15 分钟;倒计时档位:
15s / 30s / 1min / 3min / 5min / 10min / 15min;另有正向计时模式(最多 15:00)。
- 点击任意模式的计时按钮打开对话框,进行模式与时长选择;支持开始 / 暂停 / 继续 / 重置。
- 到点自动打开对话框提示「时间到」,并播放三声提示音。
- 计时进行中按钮带状态点(运行 / 暂停 / 结束);StartMode 顶部徽标在计时中改为显示剩余时间。
- 计时器状态保存在当前页面内存,刷新页面后重置。
插件设置
设置 → 通用 中新增「时间与计时器」两行:
- 显示农历日期(默认关闭)
- 第三方时间服务器(默认关闭;开启后显示同步状态、偏移量与错误)
设置持久化在浏览器 localStorage 的 dsh.time-n-timer.settings.v1。
安装
方式一:从 GitHub 克隆后本地安装
git clone https://github.com/Depar7ure/dsh-time-timer.git
在 Harness 的 Plugin Manager → 安装本地插件(Install bundle) 中选择克隆下来的目录,安装后刷新页面即可。
方式二:交给 Harness Agent 安装
把该目录的绝对路径交给 Agent,并说明「安装这个 bundle」;Harness 会通过 install_bundle 完成安装(安装后刷新页面)。
插件显示名:Time & Timer / 时间与计时器。
项目结构
dsh-time-timer/
├── index.js # Host 半:NTP 查询路由(node:dgram)
├── client.js # Client 半:时钟 / 农历 / 节假日 / 计时器 / 弹窗 / 设置行
├── cordis.patch.yml # Bundle patch(插入一行 dsh-time-timer)
├── package.json # 包清单(dsh.bundle + dsh.client)
├── locale/
│ ├── en.json # 插件显示名与描述(English)
│ └── zh.json # 插件显示名与描述(中文)
├── icon.svg # 插件图标
├── scripts/check.mjs # 本地清单与语法自检
├── CHANGELOG.md
├── LICENSE # MIT
└── README.md
数据说明
- 农历:内置 1900–2100 标准农历表(支持闰月)。已验证 2026-02-17 = 正月初一、2026-09-25 = 八月十五、2026-10-18 = 九月初九。
- 节假日:内置 2025、2026 年国务院办公厅放假安排(含调休上班日);无数据的年份按周末规则回退。普通周六 / 周日显示「周末·休」,调休上班日显示「班」。
- 节假日数据来源:国务院办公厅《关于 2026 年部分节假日安排的通知》(国办发明电〔2025〕7 号)。
开发
node scripts/check.mjs # 清单、图标、Client 半语法检查
node --check index.js # Host 半语法检查(ESM)
要求:Harness 的 Web 客户端(dsh.client.platform: web);Node.js ≥ 18(Host 半使用 node:dgram)。
兼容性与已知限制
- 节假日数据目前覆盖 2025–2026,其他年份仅按周末判定。
- 样式使用 Harness 的主题 token(
--dsw-alias-*),浅色 / 深色主题均可用;字号与尺寸依赖宿主布局,宿主大版本升级后可能需要重新核对槽位。
- StartMode 通过
conversation.header.leading 渲染;DefaultMode 通过 conversation.session.header.actions 渲染,空白会话时该槽位不会显示。
- NTP 同步依赖 Host 半与网络可达;离线环境自动回退系统时间。
English
dsh-time-timer is a visual clock and timer for the DeepSeek Harness Web GUI. It shows a 256×64 digital clock on the home (blank) session with an optional Chinese lunar date and China holiday badge, and a compact JetBrains Mono clock strip in the header while a conversation is active. Both modes expose a timer launcher (countdown presets from 15 seconds to 15 minutes, plus a stopwatch capped at 15:00). Time is taken from the system clock by default and can optionally be corrected from ntp.aliyun.com through a Host-side NTP endpoint.
License
MIT © 2026 Depar7ure