前言¶
在 DeepSeek Harness(DSH)里长时间写提示、跑 Session,很容易一屏到底却缺少节奏感。系统级番茄钟或浏览器扩展可以计时,但和对话界面分离,当日统计也要自己记。社区插件 @skillre/dsh-plugin-pomodoro 把经典番茄工作法嵌进 DSH Web UI:在输入框(composer)下方常驻一枚胶囊,带倒计时、阶段切换和当天专注轮数,偏好存在浏览器本地,不碰 Session 日志,也不向模型暴露状态。
这是什么¶
@skillre/dsh-plugin-pomodoro 由 skillre 维护,分类为客户端插件,当前包版本 0.1.0,README 标注状态为 experimental。它面向已在 DSH 里使用 Web 界面的开发者:在对话输入区域下方提供专注 / 短休息 / 长休息循环,并记录当天完成的专注轮数与专注时长。
插件行在 cordis.patch.yml 里没有 config 字段;可调项全部是用户偏好,通过设置页修改并写入浏览器 localStorage,而不是改宿主配置文件。
核心功能¶
输入框下方的常驻胶囊¶
插件注册 conversation.composer.dock(session scope),在有活动 Session 的对话页,输入框下方显示胶囊 UI,包含:
- 当前阶段与倒计时
- 本轮进度
- 三个操作:开始/暂停、重来、跳到下一阶段
阶段按番茄工作法循环:专注 → 短休息 → … → 完成 N 轮专注后进入长休息 → 再回到专注。
每日统计¶
记录当天完成的专注轮数与专注时长;按浏览器本地时区划分「今天」,跨过本地零点自动归零。跨零点时正在进行的阶段不中断,完成时才计入新的一天。
设置页偏好¶
在 设置 里注册独立一节(settings.section,root scope),可调整下表项。越界输入会被收敛到范围内,损坏或旧版本数据会退化为可用配置。
| 偏好 | 默认值 | 范围 | 含义 |
|---|---|---|---|
| 专注时长 | 25 分钟 | 1–180 | 一轮专注的长度 |
| 短休息 | 5 分钟 | 1–180 | 普通专注轮次之后的休息 |
| 长休息 | 15 分钟 | 1–180 | 完成一个循环后的休息 |
| 长休息前的专注轮数 | 4 | 1–12 | 一个循环包含几轮专注 |
| 自动开始休息 | 开 | 开/关 | 专注结束后直接进入休息 |
| 自动开始专注 | 关 | 开/关 | 休息结束后直接进入下一轮专注 |
非目标(首版刻意不做)¶
- 系统通知、声音或浏览器 Notification(不申请额外权限)
- 写入 Session 日志、注册模型可见的 Tool(纯 UI 状态,模型看不到番茄钟)
- 跨设备云同步
- DSH 页面关闭后继续走时(见下文限制)
安装与启用¶
发布后,在指定 profile 下安装:
dsh plugin --profile <profile> add @skillre/dsh-plugin-pomodoro
package.json 要求 Node ^22.19.0 || >=24.0.0,DSH peer 范围为 >=0.2.0-rc.2 <0.3.0。README 记载在 DSH 0.2.0-rc.2 上完成过打包 tarball 装入 desktop profile 等验证(2026-09-30);dump-config、bounded-startup 与真实浏览器视觉验证尚未完成,安装前宜自行核对源码与 MIT 许可证。
本地开发需走打包 tarball,不要用 dsh plugin ... add . 指向源码目录(会导致依赖解析到插件自身 node_modules,打包安装时易在启动阶段失败):
npm install
npm run check
npm pack
dsh plugin --profile <dev-profile> add ./skillre-dsh-plugin-pomodoro-<version>.tgz
dsh --profile <dev-profile> --dump-config
dsh --profile <dev-profile>
更新与回滚见仓库内 UNINSTALL.md。
典型用法¶
- 安装并启动对应 profile 的 DSH Web UI,进入有活动 Session 的对话页(空白首页无 Session 时不显示 composer 旁胶囊;设置页不受影响)。
- 在输入框下方胶囊上点击开始,按默认 25 分钟专注;需要时在设置里改时长、循环轮数或「自动开始休息 / 专注」。
- 用暂停、重来或「下一阶段」手动控制节奏;当天完成的专注轮数与时长在胶囊侧展示,本地零点后会归零计数。
偏好与计时状态保存在 localStorage 键 skillre-pomodoro/state(payload 版本当前为 2),仅含插件自身 JSON,不含 Session 内容。存储不可用或写满时静默降级为内存运行,计时仍可操作。
适用场景与注意¶
适合谁: 已在 DSH Web UI 里写 Session、希望计时与输入区同屏、且接受数据只留在本机浏览器的用户。
权限与副作用(README 摘要): 无网络、无凭据、Host 半边不做文件 I/O;UI 使用 skp-pomodoro- 类名前缀与 --dsw-alias-* 主题变量,不替换宿主 DOM。运行中每秒刷新一次;空闲时睡到下一个本地零点。插件随 DSH 客户端加载,安装前请阅读仓库源码与许可证,确认符合你的环境策略。
已知限制:
- 关闭整个浏览器页面期间计时不在前台推进;重开时按绝对时间戳结算到期阶段,不会补记休眠期间的多轮番茄。
- 每个标签页各自持有一份状态,经
localStorage收敛,无跨标签实时广播;A 标签开始,B 标签需等刷新才同步。 - 一次结算只处理一个到期阶段;长时间休眠后不会一次性补记多轮。
- 无通知与声音。
DSH 生态强调「一切皆插件」;社区目录 skillhub.cn 为独立站点,与 DeepSeek / 幻方无官方从属关系。
链接¶
- 目录页:https://www.skillhub.cn/plugins/skillre/dsh-plugin-pomodoro
- 源码与说明:https://github.com/skillre/dsh-plugin-pomodoro
若你需要的正是「对话界面内、本地偏好、不干扰模型上下文」的番茄钟,可按上述命令装入 profile,在 Session 对话里直接使用设置页与 composer 胶囊即可。