dsh-pomodoro-timer
Manifest validPomodoro 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 Pomodoro timer: sidebar full page (focus/short-break/long-break) + countdown pill beside the input box.
dsh-pomodoro-timer
A 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.
English | 简体中文
Repository: https://github.com/cuznmop/dsh-pomodoro-timer · Issues: https://github.com/cuznmop/dsh-pomodoro-timer/issues · Package: https://www.npmjs.com/package/dsh-pomodoro-timer
Features
- Sidebar page — clock icon in the left panel list opens a full page with a progress ring, controls, and statistics.
- Composer pill — a compact countdown next to the message box; click it to jump to the page. It keeps running while you work in chat.
- Cycle control — focus 25 / short break 5 / long break 15 minutes by default, a long break every 4 pomodoros, and an optional auto-start for the next phase.
- Controls — start, pause, resume, reset the current phase, skip to the next phase.
- Statistics — the pomodoro number in the current round and how many you finished today; the counter rolls over at midnight.
- Chime — three short tones when a phase ends naturally (can be turned off; the page needs one interaction before the browser allows audio).
- Survives a reload — the running deadline is stored in
localStorage, so refreshing the page resumes the same countdown. - Light and dark themes — every colour is a
--dsw-alias-*theme token; the plugin imports no Harness client package, so it does not break when those internals change. - Bilingual — Simplified Chinese and English, following the GUI language.
Requirements
| Component | Requirement |
|---|---|
| DeepSeek Harness | verified on 0.2.0-rc.2 (Web/Desktop profiles); the plugin uses only the public client slots and locale services, and declares no DSH peer dependency |
| DSH profile | a Web surface (web, or the Desktop app); headless profiles have no UI |
| Node.js | ^22.19.0 or >=24.0.0 (only for the optional local check) |
Install
# plain dsh web profile
dsh plugin --profile web add dsh-pomodoro-timer
In the Desktop app, install dsh-pomodoro-timer from the plugin market page, or from Settings → Plugins. Restart Harness (or reload the page) afterwards, then look for the clock icon in the sidebar panel list.
Usage
| Control | Behaviour |
|---|---|
| Start / Pause | Start or pause the current phase |
| Reset | Restore the current phase to its full length and pause |
| Skip | Move to the next phase without crediting a pomodoro |
| Settings | Focus length, short break, long break, pomodoros per long break, auto-start, chime |
Changing a duration while a phase is paused resizes it immediately; while it is running, the change applies from the next phase.
State lives under the dsh.plugin.pomodoro-timer.v1 key in localStorage.
Uninstall
dsh plugin --profile web remove dsh-pomodoro-timer
Development
No build step: client.js is the published browser bundle. The package ships a self-contained offline check.
npm run check # node --check on both halves + the offline bundle test
# pnpm run check works too. On a machine that only has DSH's bundled runtime, put
# the workspace shims on PATH first: $env:PATH = "<workspace>\bin;$env:PATH"
test/client.test.mjs loads the browser bundle with a module-loader stub and a fake client context and exercises registration ids, the phase machine, persistence, and component rendering. It proves logic, not looks — visual verification needs the running GUI.
Layout
| Path | Responsibility |
|---|---|
package.json | manifest: bundle patch, client declaration, export map, icon, file allowlist |
cordis.patch.yml | inserts the Host row that puts the browser bundle in the module graph |
index.js | Host half — intentionally a no-op |
client.js | the timer store, the sidebar page, the composer pill, and both dictionaries |
locale/*.json | plugin-card title and description |
icon.svg | plugin-card artwork |
test/client.test.mjs | offline check |
Notes
- The plugin reads and writes nothing but its own
localStoragekey. It has no host-side service, no tool, and no network access. - It registers into
sidebar.panellist,main, andconversation.composer.dock; it never replaces the app root and never appends todocument.body.
License
Comments
Loading…
Similar plugins
by causebefore
DeepSeek Harness Web 番茄钟插件:可配置专注与休息时长,提供侧栏入口和可拖动浮动面板
★ 4
↓ 464/wk
MIT
JavaScript
Oct 1, 2026
dsh plugin --profile web add dsh-pomodoroby lemonhall
DSH 右侧栏番茄闹钟:专注/休息循环,计时只存 endsAt、切 tab 不中断(pomodoro_panel)。
★ 0
JavaScript
Oct 3, 2026
dsh plugin --profile web add dsh-pomodoro-dockby master1Sun
DSH(DeepSeek Harness)Web 插件:在 composer 工具栏注入一个「提示词库」按钮,管理可复用的 prompt 片段,点击即可插入当前输入框。支持自动学习:输入复杂 prompt 文案时,插件会自动识别并保存到提示词库。
★ 14
↓ 387/wk
MIT
TypeScript
Sep 30, 2026
dsh plugin --profile web add @sunjuntao/dsh-prompt-libraryby JoukoPuro
一个 DeepSeek Harness(DSH)插件: 在 Web 输入框的工具行中添加一个 ✨ 图标按钮。点击后选择打磨风格,已接入的大模型 会把你草稿中的提示词改写得更专业、更易被 AI 理解 。A DeepSeek Harness plugin: icon-only composer button that rewrites your prompt via the connected LLM
★ 6
↓ 107/wk
MIT
JavaScript
Aug 14, 2026
dsh plugin --profile web add dsh-prompt-polishby ice-ai-lab
pi-web-inspired sidebar chrome for the DeepSeek Harness Web GUI: temporary sessions, a one-directory session list under a working-directory picker, a draft composer that creates nothing until you send
★ 0
MIT
JavaScript
Sep 11, 2026
dsh plugin --profile web add dsh-plugin-pi-uiby PerryLink
Terminal-style input history for the DeepSeek Harness web composer: edge-first arrows with exact draft/caret restore, browser-local persisted history, Ctrl+R reverse search, workspace recall - and sli
★ 17
↓ 1.1k/wk
Apache-2.0
TypeScript
Oct 12, 2026
dsh plugin --profile web add dsh-composer-history