dsh-pomodoro-timer
Verifieddsh-pomodoro-timer · v1.0.1 · MIT · Web UI
Pomodoro timer for the DeepSeek Harness Web UI: a sidebar page with focus/short-break/long-break cycles plus a countdown pill beside the composer. · DSH Web 番茄钟:侧栏整页(专注/短休息/长休息)+ 输入框旁倒计时胶囊。
Install
dsh plugin add dsh-pomodoro-timer Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Tags
Creators
Readme
dsh-pomodoro-timer
DeepSeek Harness Web 界面的番茄钟:侧栏整页(专注 / 短休息 / 长休息循环)+ 输入框旁倒计时胶囊。
English | 简体中文
仓库:https://github.com/cuznmop/dsh-pomodoro-timer · 问题反馈:https://github.com/cuznmop/dsh-pomodoro-timer/issues · npm:https://www.npmjs.com/package/dsh-pomodoro-timer
功能
- 侧栏整页 —— 左栏面板列表里的时钟图标,打开带环形进度、控制按钮和统计的完整页面。
- 输入框胶囊 —— 消息框旁的紧凑倒计时,点一下跳到页面;你在对话里工作时它照常走。
- 循环控制 —— 默认专注 25 / 短休息 5 / 长休息 15 分钟,每 4 个番茄进长休息,可开启自动进入下一阶段。
- 操作 —— 开始、暂停、继续、重置当前阶段、跳过当前阶段。
- 统计 —— 本轮第几个番茄、今天完成多少个,跨天自动清零。
- 提示音 —— 阶段自然结束时三声短音(可关闭;浏览器需要一次交互后才允许出声)。
- 刷新不丢 —— 结束时刻写入
localStorage,刷新页面后接着倒计时。 - 明暗主题 —— 配色全部用
--dsw-alias-*主题 token;不 import 任何 Harness 客户端包,不会因为内部改动而被打断。 - 中英双语 —— 跟随 GUI 语言设置。
环境要求
| 组件 | 要求 |
|---|---|
| DeepSeek Harness | 已在 0.2.0-rc.2 实测(Web / 桌面版 profile);只使用公开的客户端 slots 与 locale 服务,不声明 DSH peer 依赖 |
| DSH profile | 有 Web 界面(web 或桌面版);headless profile 没有 UI |
| Node.js | ^22.19.0 或 >=24.0.0(仅本地自检需要) |
安装
# 普通 dsh web profile
dsh plugin --profile web add dsh-pomodoro-timer
桌面版可以在插件市场页面里装,或走「设置 → 插件」。装完重启 Harness(或刷新页面),左栏面板列表里会出现时钟图标。
使用
| 控件 | 行为 |
|---|---|
| 开始 / 暂停 | 开始或暂停当前阶段 |
| 重置 | 把当前阶段恢复成完整时长并暂停 |
| 跳过 | 进入下一阶段,不计入番茄数 |
| 设置 | 专注时长、短休息、长休息、几个番茄后长休息、自动接续、提示音 |
暂停状态下改时长会立刻生效;运行中改则从下一阶段开始生效。
状态存在 localStorage 的 dsh.plugin.pomodoro-timer.v1 键下。
卸载
dsh plugin --profile web remove dsh-pomodoro-timer
开发
没有构建步骤:client.js 就是发布出去的浏览器 bundle。包里自带离线自检。
npm run check # 对两个半边做语法检查 + 跑离线 bundle 测试
# pnpm run check 等价。如果机器上只有 DSH 自带的那份运行时,
# 先把工作区的 shim 加进 PATH: $env:PATH = "<工作区>\bin;$env:PATH"
test/client.test.mjs 用模块加载器桩和假的客户端 context 载入 bundle,覆盖注册 id、阶段机、持久化、组件渲染。它证明的是逻辑,不是观感——观感要在跑起来的 GUI 里看。
目录结构
| 路径 | 作用 |
|---|---|
package.json |
清单:bundle patch、client 声明、导出表、图标、发布文件白名单 |
cordis.patch.yml |
插入让浏览器 bundle 进入模块图的 Host 行 |
index.js |
Host 半边,故意为空实现 |
client.js |
计时 store、侧栏页面、输入框胶囊、中英字典 |
locale/*.json |
插件卡片标题与描述 |
icon.svg |
插件卡片图标 |
test/client.test.mjs |
离线自检 |
说明
- 除了自己那个
localStorage键,这个插件不读写任何东西:没有 Host 服务、没有工具、没有网络访问。 - 它注册进
sidebar.panellist、main和conversation.composer.dock;不会替换应用根节点,也不会往document.body追加内容。