banana770/dsh-work-badge ↗★ 1

dsh-work-badge

在界面左上角显示北京时间是否处于高峰期 适合需要一眼识别当前是否处于DeepSeek服务高峰时段,以便合理安排任务的用户。

包名
dsh-work-badge
兼容性
待验证
版本
0.1.0
许可证
MIT
最近更新
2026年9月23日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:banana770/dsh-work-badge

dsh-work-badge

给 DSH(DeepSeek Harness)的网页界面加一行小字:一眼看出「现在是不是高峰时段」。

English · 简体中文


这个插件是做什么的

装好之后,DSH 界面左上角、DeepSeek 图标上方会多出一行小字,实时显示当前属于哪个时段:

界面上显示含义出现的时间(北京时间 UTC+8)
工作时间:峰(蓝色)高峰时段周一至周五 9:00-12:00、14:00-18:00
工作时间:谷(灰色)空闲时段其余所有时间,含整个周六、周日

一句话概括:看到「峰」说明现在是高峰时段,看到「谷」说明是空闲时段。

它的全部作用就是这行提示,具备以下特点:

  • 只显示状态:不改变 DSH 的任何其它行为,不接管输入框、不改模型设置、不碰会话内容。
  • 绝不遮挡点击:标签挂在框架级浮动层上,且设置为 pointer-events: none,点它下面的图标和按钮完全不受影响。
  • 不干扰视线:12px 小字、圆角淡底,固定在左上角,不随侧栏或会话列表滚动。
  • 中英双语:界面文案默认跟随浏览器语言,也可一条命令改成固定中文或固定英文(见下文)。

判断规则

  • 时间基准固定为北京时间(UTC+8,无夏令时),与电脑本地时区无关;改系统时区或人在国外都不会算错。
  • 只有周一至周五算高峰时段;周六、周日整天都算空闲时段。
  • 按分钟计算,含起点、不含终点:9:00 是峰、11:59 还是峰、到 12:00 就已经是谷。
  • 时段切换(12:00 / 14:00 / 18:00)最迟半分钟内刷新。

默认时间窗口一览:

日期时间显示
周一至周五09:00 – 11:59峰
周一至周五12:00 – 13:59谷
周一至周五14:00 – 17:59峰
周一至周五18:00 – 次日 08:59谷
周六、周日全天谷

时段窗口是写死在代码里的常量,改成你需要的任何区间都很简单,见下方「自定义」。

界面语言(中文 / 英文)

界面文案中英双语,默认跟随浏览器语言。打开 lib/client.js,改动文件顶部的这一行即可:

const LANG = "auto";
LANG 取值界面效果
"auto"(默认)浏览器语言以 zh 开头时显示中文,其它语言显示英文
"zh"固定中文:工作时间:峰 / 工作时间:谷
"en"固定英文:Work hours: Peak / Work hours: Off-peak

英文界面下显示的是 Work hours: 加上加粗的 Peak(高峰)或 Off-peak(空闲),鼠标悬停提示也会同步变成英文。

安装

从 GitHub 安装(推荐)

dsh plugin --profile web add github:banana770/dsh-work-badge

从本地目录安装(自行 clone / 下载后)

dsh plugin --profile web add /path/to/dsh-work-badge

安装后让 DSH 网页界面重新加载一次(重启 DSH 或刷新页面),左上角就会出现「工作时间:峰 / 谷」。

手动安装

插件本体很小,一共只有 4 个需要关心的文件:

package.json       插件清单:声明客户端入口(dsh.client)与 bundle patch
cordis.patch.yml   把插件挂进 profile 的 bundle 名单(insert: work-badge)
lib/index.js       宿主侧空插件,只负责让 loader entry 保持活跃
lib/client.js      真正的逻辑:往 shell.overlay 插槽注册左上角小标签

把整个目录放进 profile 的安装目录,并让 cordis.patch.yml 里的 insert 条目生效 (id: work-badge、name: dsh-work-badge)即可,无需任何构建步骤。

卸载

在 DSH 左侧「插件」页的已安装列表里移除 dsh-work-badge(组件行上的移除操作),然后重新加载界面即可。 手动安装的话,把 cordis.patch.yml 中对应的 insert 条目删掉再重启 DSH。

自定义

想改什么改哪里
高峰时段lib/client.js → isPeakHour() 里的 9 * 60 / 12 * 60 / 14 * 60 / 18 * 60
界面语言lib/client.js 顶部的 const LANG = "auto";
文案措辞lib/client.js 里的 TEXT 对象(中英各一套)
刷新频率lib/client.js 里的 TICK_MS(默认 30 秒)
位置、字号、配色WorkBadge() 里的 top / left / fontSize 与 CSS 变量

刷新频率与性能

标签本身只在三件事发生时重新计算:挂载时、浏览器标签页重新可见时、以及每 30 秒 一次。 换句话说它几乎不占资源,跨时段切换最多延迟半分钟;长时间挂在后台的标签页回到前台也会立即纠正。

隐私

  • 纯本地计算:只用系统时间做算术,不联网、不请求任何接口、不上报任何数据。
  • 不读写任何文件,不接触会话内容、模型配置或凭据。
  • 不含也不需要任何 API key / 密钥。
  • 只往界面加一个只读的 pointer-events: none 小标签,不动 DSH 的其它任何东西。

兼容性

  • 面向 DSH 的 web profile(platform: "web"),已在 DSH 0.1.7-alpha.2 上实际运行。
  • 依赖 DSH 的 shell.overlay 客户端插槽,以及来自 DSH 自身的 react(声明为 peerDependencies: ^18.2.0,不会重复安装一份)。
  • 宿主侧零依赖:lib/index.js 是空插件。
  • 无构建步骤:lib/client.js 就是最终可装载的 bundle。

许可

MIT —— 可自由使用、修改、再发布。