DSH Pomodoro: Sidebar Timer with Desktop Floating Window and Focus Statistics

Preface

When running Agents on DSH, long tasks often run for tens of minutes without a rest rhythm in between and no record of “how long I’ve focused today”. Keeping the timer in a separate browser tab disconnects it from the Agent’s workspace; viewing historical focus distributions requires manually saving data and plotting charts.

Below introduces DSH Pomodoro, a plugin that brings a timer workspace into the DSH sidebar and optionally includes an Electron desktop floating window, maintained by EchoTint and classified as a client-side plugin. It does not replace calendars or task management tools; it simply narrows down Pomodoro clocks and focus statistics to the area next to the Agent operation interface.

What is it

One-sentence positioning: Provides a Pomodoro workspace in the DSH sidebar, with an optional Electron desktop floating window, for Pomodoro countdowns, timers, flow state timing, task management, focus statistics, and backups.

It solves three specific problems: The timer and Agent window are on the same interface, eliminating the need to switch windows; focus duration automatically accumulates into a timeline, hourly distribution, and heatmap without manual recording; there is a place to store tasks, reviews, and forest rewards, with support for WebDAV / S3 backups.

No user scale or performance data is provided in the materials. This plugin has 0 stars in the community directory and belongs to an early version. The current release version is v0.1.0, compatible with DSH 0.2.2-rc.1.

Core Features

The following capabilities all come from the plugin README.

  1. Timer Modes. The countdown includes three phases: Focus, Short Break, and Long Break. Timers and Flow modes can be ended and recorded at any time. When the countdown ends early, the recorded duration is the actual focus time, not the originally set duration.

  2. Task Management. Tasks support priority, estimated Pomodoro count, and sub-steps; each focus record allows you to supplement energy levels and review notes.

  3. Focus Statistics. Includes timeline, hourly distribution, 7-day trends, yearly heatmap, and daily goals.

  4. Ambient Sound. Generated via Web Audio, providing rain, campfire, ocean waves, and binaural beats; no additional audio files are needed.

  5. Tree Planting Rewards. You can plant trees in the forest after meeting focus goals. There are 8 types of plants in total, unlocking progressively.

  6. Desktop Floating Window. Three shapes available: Small Card (220×84), Ring (108×108), Pure Time (128×56); supports dragging, pinning, opacity adjustment, and day/night themes. Hover to see operations, right-click to switch phases and timer direction.

  7. Backup. WebDAV and S3 compatible storage for manual or automatic backups, also supports JSON export and import. Note: Backups do not automatically merge across devices; data coordination between multiple machines must be handled manually.

Installation and Enablement

The plugin is not published to npm; the package name is @echotint/dsh-pomodoro. Install and enable the following GitHub Release package in DSH plugin management:

https://github.com/EchoTint/dsh-pomodoro/releases/download/v0.1.0/dsh-pomodoro.tgz

Another way is to use the GitHub repository https://github.com/EchoTint/dsh-pomodoro as the install source. The repository already contains loadable JavaScript, the dsh.bundle manifest, and the Cordis patch; no build steps are required.

After enabling, a “Pomodoro” entry appears in the sidebar. Timer, statistics, tasks, and settings are all managed within this entry. The desktop floating window requires preparing Electron separately (see next section).

If you were previously using the local development version @local/pomodoro, switch by first disabling the old version and then enabling this package to avoid two instances writing to the same data. Business data continues to use $DSH_HOME/pomodoro; custom settings can be exported or noted in the old version and verified in the new version. The standard Config entries for the two packages differ, and explicit profile settings will not be copied over automatically.

Electron Desktop Floating Window

The plugin does not bundle or automatically download Electron. You need to obtain a full release directory suitable for the current system and architecture from the official Electron release page first, and keep the accompanying resources after extracting. The verified version on Windows is Electron 43.3.0; other versions and macOS/Linux desktop behavior are not yet tested.

Set the executable file path before starting DSH, for example in PowerShell:

$env:DSH_POMODORO_ELECTRON = 'C:\Tools\Electron\electron.exe'
# Launch DSH from the process inheriting this environment variable.

If the environment variable is not set, the plugin looks for the default locations below. $DSH_HOME defaults to .dsh under the user directory.

System Default Path
Windows $DSH_HOME/electron/electron.exe
macOS $DSH_HOME/electron/Electron.app/Contents/MacOS/Electron
Linux $DSH_HOME/electron/electron

You can still use the sidebar timer without Electron; the settings page will display an error if the floating window fails to start. Linux also requires a graphical session and Electron’s system dependencies. The plugin documentation does not list specific package names, so you need to confirm them yourself according to the official Electron documentation.

Settings, Credentials & Data Storage

Timer parameters, sound effects, floating window appearance, and non-sensitive backup targets are all saved via DSH standard Config and ctx.configEditor.edit(). Normal config submissions trigger the Loader to restart the plugin; the plugin saves the running state before submission. Settings from old files can be migrated to current entries, with explicit profile values taking priority.

The on-disk locations for data are as follows:

  • Tasks, focus records, reviews, and forest: $DSH_HOME/pomodoro/data.json
  • Timing and window running state: $DSH_HOME/pomodoro/state.json

The format version of old data is independent of the software version. Release v0.1.0 will not downgrade the data format version.

WebDAV passwords and S3 secretKeys are stored in pomodoro/webdav and pomodoro/s3 via ctx.credentials. The write process is to write the old plaintext first, then read back to verify, and only clear the old plaintext after all succeed; failures allow retry. Entering an empty password retains existing credentials; credentials are re-read on every upload, and exported files do not contain passwords. Actual on-disk protection depends on the host’s credentials provider; the plugin itself does not provide additional encryption guarantees.

On the interface, standard controls use DSH theme tokens, and interface and desktop text follow the DSH language; forest illustrations and phase accent colors retain artistic color schemes. The local HTTP interface verifies loopback, Host, and browser Origin, and is explicitly not intended for public use.

The plugin declares the required host peer as @deepseek-ai/schemastery@3.19.0 and @deepseek-ai/dsh-credentials@0.2.2-rc.1. React is provided by the DSH Client, and the Electron helper is an independent CommonJS application. Do not copy the host package into the plugin directory. The license is MIT.

Typical Usage

After installation, daily use does not require the command line; simply operate directly in the sidebar.

  1. Start a Focus Pomodoro. Open the “Pomodoro” entry in the sidebar, select the Focus phase to start the countdown; if needed, use the task panel to note priority and estimated Pomodoro count.

  2. View and supplement records. Pomodoros that end early are recorded based on actual duration. After finishing, supplement energy levels and review notes; this is more reliable than relying on memory later.

  3. Regularly check statistical trends. The 7-day trend is used to judge if the rhythm is stable, and the yearly heatmap is used to judge long-term investment; neither requires extra configuration.

  4. Set up the desktop floating window. Set the Electron path as mentioned earlier, change the floating window shape to Ring or Pure Time, and place it at the edge of the screen. Hover to see operations, right-click to switch phases or timer direction.

  5. Backup. Add a WebDAV or S3 target in settings, select manual or automatic backup; use JSON export and import when migrating machines. Because backups do not perform multi-device merging, it is recommended to designate one machine as the primary in multi-device scenarios.

Development and Verification

The repository comes with tests and packaging checks. On Node.js 24, you can run pure logic and packaging checks directly without installing dependencies:

node --test core.test.mjs packaging.test.mjs
node scripts/runtime-check.mjs
node scripts/runtime-check.mjs --pack --pnpm /absolute/path/to/pnpm.mjs

Packaging checks disable lifecycle scripts, generate and unpack .tgz in a temporary directory, verify resources, imports, and source code consistency, and then run tests in a directory without node_modules. The output does not contain personal data or credentials.

To run full tests using the real host peer in an installed Windows DSH Desktop, replace the path with the actual installation location on your machine:

$env:ELECTRON_RUN_AS_NODE = '1'
$env:DSH_TEST_RUNTIME_ROOT = 'C:\path\to\resources\app.asar\dsh'
$test = Start-Process 'C:\path\to\electron.exe' -ArgumentList '--import','./scripts/host-imports.mjs','--test','core.test.mjs','compliance.test.mjs','packaging.test.mjs' -Wait -NoNewWindow -PassThru
exit $test.ExitCode

Full tests cover timing, statistics, credential migration and retry on failure, configuration editing, deadline retention, and HTTP boundaries. The credentials service uses mock injection and does not manipulate personal credentials. The currently verified environment is Electron 43.3.0 / Node 24.18.1 on Windows; real remote WebDAV / S3 accounts have not been tested. GitHub CI only runs host-less tests and packaging checks, which does not represent cross-platform desktop verification conclusions.

Applicable Scenarios and Notes

Suitable for these types of usage: Long-running Agent tasks and those who need a fixed rest rhythm; those who want focus duration to automatically turn into statistical charts; those who want to place timer controls on the desktop edge rather than in browser tabs; those who need to backup focus data to self-hosted WebDAV or S3.

Points to note:

  • The plugin runs with the permissions of the current DSH process; check the source code and license before installing. The license is MIT, and the repository address is https://github.com/EchoTint/dsh-pomodoro.
  • The desktop floating window relies on a complete Electron release directory prepared manually on the local machine; the plugin does not download or bundle it, and behavior on Windows is the only one tested so far.
  • Backups do not perform multi-device merging; you need to agree on a primary machine when multiple machines share the same data.
  • Credential writing depends on the host’s credentials provider’s on-disk protection; the README does not declare additional encryption.
  • The community plugin directory is an independent site and has no official affiliation with DeepSeek / Hypersphere; this plugin is not a component listed on the official app store.

Conclusion

The value of DSH Pomodoro lies in its narrowed scope: it does not act as a general schedule tool; it only puts Pomodoro, focus statistics, task sub-steps, forest feedback, and WebDAV / S3 backups into a sidebar workspace, and attaches a desktop floating window when needed. Currently, it is an early version v0.1.0. The verification of Windows desktop paths and remote backups has established clear boundaries; macOS / Linux users can refer to the default paths to try installing it themselves.

Directory: https://www.skillhub.cn/plugins/EchoTint/dsh-pomodoro
GitHub: https://github.com/EchoTint/dsh-pomodoro

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye