DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Plugin Pomodoro — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
P

dsh-plugin-pomodoro

Plugin Pomodoro

适用于 DeepSeek Harness 的 Pomodoro 计时器和 Trello 风格任务看板:浮动计时器、由 SQLite 支持的看板,包含列表、标签、优先级、截止日期、子任务、智能分区和每项任务的专注时间。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:atzx/dsh-plugin-pomodoro#f72fb63dead0a5e6363d2bf71d6aa2d9b1e518d5
README兼容性版本
Task board with the Pomodoro timer focused on a taskToday sectionTask drawerComposerTimer focused on a taskBoard menuImportInline label picker

兼容性与来源证明

Plugin Pomodoro 以 dsh-plugin-pomodoro 发布,当前版本为 0.2.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/19

版本

0.2.1stable
2026/10/19
0.1.0stable
2026/10/19

相关插件

正在加载相关插件…

最新版
0.2.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/10/19
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 productivity-workflow 分类下经过校验的插件。

Acp App@deepseek-ai/dsh-acp-appdsh ACP 配置文件包:基于 dsh-base 的仅限自动化的 JSON-RPC stdio 和进程生命周期管理Experimental Schedule Bundle@deepseek-ai/dsh-experimental-schedule-bundle为 Web 组合添加 Schedule、其任务页面和时间上下文的可选捆绑包Ab Ocrdsh-ab-ocr--- description: "外部 ocr 工具:逐页识别扫描的 PDF 或图像,仅在处理完最后一页后按顺序合并页面,并使用模型确定的标题级别保存为一个 Markdown 文档。" kind: "package-reference" ---Scriptor@linfengqaqtat/dsh-scriptorWebnovel Writer:DSH 长篇网文写作工作台

README

dsh-plugin-pomodoro

A Pomodoro timer plus a Trello-style task board for DeepSeek Harness — the timer floats over the app, the board lives in the same overlay, and the focus time you spend is credited to the task you are working on.

The plugin has two halves: a browser-only client (the floating timer and the board UI) and a small host half that stores the board in SQLite under your DSH home and exposes it through five authenticated routes. Nothing here reaches the model: no tools, prompts, session events, or provider requests.

Task board with the Pomodoro timer focused on a task

Features

Focus timer

  • Floating pill in the shell overlay with the countdown, phase and pulse; expands into a card with ring progress, cycle dots, start/pause/skip/reset and settings.
  • Focus / short break / long break cycle (25/5/15 by default, long break every 4 focus blocks).
  • Keyboard: Space start/pause, S skip, R reset, Esc collapse, B open/close the board.
  • Optional chime, desktop notifications and inline completion banner.
  • The clock stores an absolute deadline, so reloads, throttled tabs and sleep do not drift it.

Task board (Trello-style)

  • Custom lists (To Do / Doing / Done by default): create, rename inline, reorder by dragging, mark a list as the completion list, delete with task reassignment.
  • Cards with priority (none/low/medium/high), colored labels, due date, estimate, notes, subtasks, tracked time and pomodoro count.
  • Full composer (all fields plus subtask rows before creating) and a task drawer for everything afterwards, including subtask checklists and label assignment.
  • Drag & drop cards between columns with an insertion line; drag list handles to reorder columns. Accessible alternatives: the card's “Move to list” menu and Alt+←/→/↑/↓ on a focused card.
  • Smart sections in the rail with live counts: All tasks, Today, Overdue, Tomorrow, This week, Next 7 days, High/Medium/Low priority, No due date, Completed.
  • Four per-section metrics: Estimated time, To complete, Elapsed time, Completed — with an estimate-scope toggle (all tasks / open tasks only).
  • Search across titles, notes, subtasks and label names (accent-insensitive) plus label filters, and manual / due / priority / creation ordering.
  • JSON export and import of the whole board with a validated confirmation step.

Focus minutes that add up

  • Focus on a card or in the drawer links the task to the timer.
  • The plugin measures real focus time (pause, reset, skip, switching tasks and phase completion all settle the segment) and credits it to the task; a completed focus phase adds one pomodoro.
  • Credits are idempotent (creditId) and queue locally when the host is unreachable, so a reload or a retried request never double-counts.
  • Phases that finished while the app was closed are replayed on the next load.
Today section with metricsTask drawerComposer
Today sectionTask drawerComposer
Task focused by the timerBoard menuImport confirmation
Timer focused on a taskBoard menuImport
Inline label panel in the drawerLabel manager
Inline label pickerLabel manager

The timer widget and its Plugins configuration page are unchanged:

CollapsedExpandedPlugins → Configure
collapsed pilltimer cardPlugins configuration page

Enable, disable, configure — in the Plugins page

Plugins (sidebar) → Installed plugins → dsh-plugin-pomodoro:

  • Profile level — the bundle switch and the Component switch (writes - id: pomodoro / disabled: true into the profile's cordis.patch.yml, unloading the plugin live on a profile with HMR).
  • Plugin level — Configure hides/shows the timer widget and edits its defaults. Board data is not affected by those switches.

Install (already done on this machine)

APP_CLI="/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh"
"$APP_CLI" plugin --profile desktop add "link:/path/to/pomodoro-plugin" --offline

dsh-plugin-pomodoro declares dsh.bundle.patch, so the command adds both the dependency and the dsh.profile.bundles entry. Restart DeepSeek Harness once to load the plugin in the desktop window. See docs/install.md for the full recipe, rollback, version-specific details and the log locations.

Storage

  • Board data → SQLite at $DSH_HOME/pomodoro/board.sqlite (WAL; config.dbPath overrides it). A daily rotating backup is written to board.sqlite.bak (plus .bak.1 … .bak.7).
  • Per-window presentation (active section, search, label filter, ordering) → localStorage.
  • Timer record and widget preferences → localStorage (dsh-plugin-pomodoro:state:v1, :prefs:v1, :ui:v1); pending focus credits are queued in :pending-credits:v1.

See docs/board.md for the data model, HTTP routes and limits.

Verify

node scripts/build.mjs --check      # lib/client.js is up to date with src/
node --test tests/*.test.js         # 95 unit/integration tests (core, stores, host SQLite + API)
./scripts/verify-plugin.sh          # isolated DSH 0.2.1: install → boot → bundle + board host
node scripts/verify-board.mjs --url "<authenticated-url>"   # headless board E2E (22 checks)

Current evidence: 95/95 tests, verify-plugin.sh PASS (bundle served + /api/pomodoro-board 200 + SQLite file created), 22/22 board E2E checks against a throw-away DSH 0.2.1-rc.2 instance. Details and commands: docs/verification.md.

Configure

The loader row accepts optional configuration:

- insert:
    - id: pomodoro
      name: dsh-plugin-pomodoro
      config:
        dbPath: /custom/path/board.sqlite   # default: $DSH_HOME/pomodoro/board.sqlite
        storageKey: dsh-plugin-pomodoro:state:v1
        defaults:                            # timer defaults only (the user's UI wins afterwards)
          focusMin: 25
          shortBreakMin: 5
          longBreakMin: 15
          longBreakEvery: 4
          autoStartBreaks: true
          autoStartFocus: false
          sound: true
          notify: true

Layout

lib/index.js          host half: opens SQLite, registers the board routes in ctx.effect
lib/db.js             schema v1, migrations, commands, export/import, rotating backup
lib/api.js            authenticated board routes (state, revision, command, export, import)
lib/client.js         GENERATED browser bundle (what the host serves)
src/timer-core.js     pure timer state machine (deadlines, phases, focus accounting)
src/tasks-core.js     pure board rules (sections, metrics, search, ordering)
src/board-store.js    board API bridge, observable snapshots, credit queue, focus bridge
src/board-ui.js       board overlay (columns, cards, stats, drawer, composer, menus)
src/board-styles.js   board stylesheet (design tokens only)
src/locales.js        en + zh dictionaries
src/client.js         React widget, Plugins page + cordis client plugin body
scripts/build.mjs     inlining build (local imports + require rewriting)
scripts/verify-plugin.sh  isolated install/boot/bundle/board-host check
scripts/verify-ui.mjs     CDP end-to-end for the timer widget and Plugins page
scripts/verify-board.mjs  CDP end-to-end for the task board
tests/                node:test suites
docs/                 client API spec, board guide, install recipe, verification evidence

Design notes

  • Host owns the data. Board state is human knowledge, not conversation state: SQLite, WAL, transactional commands and idempotent time credits keep it durable and consistent, while the browser stays a thin, replaceable view.
  • One authenticated surface. Five exact routes ride DSH's connection carrier: HTTP + cookie in the web app, and the desktop shell's dsh-app:// proxy (same cookie) in Electron.
  • Hand-written bundle. lib/client.js is committed and served straight from the package, so installing needs no build tool. scripts/build.mjs only inlines the src/ modules and rewrites react imports into the factory's require.
  • Measured, not nominal, focus time. Segments are wall-clock derived and settled on every transition, and creditIds make retries safe.

Known limitations

  • One board per DSH home; no sharing or multi-device sync. Use JSON export/import to move boards.
  • Data lives on the host that owns the profile: two different DSH installations do not share a board.
  • Drag & drop uses the pointer; keyboard/menu alternatives are the accessible path.
  • Tested on macOS with DSH 0.2.1-rc.2; Windows/Linux are unverified.

License

MIT — see LICENSE.