dsh-web-speech-input
leozou320-ai
Voice-to-text for the DeepSeek Harness Web UI — live, editable, never auto-sends. | DeepSeek Harness 网页语音输入
PROJECT TOPICS
PROJECT README
A Pomodoro plugin that adds focus and break cycles to the DeepSeek Harness Web UI.
English · 简体中文
Interface Preview · Highlights · Quick Start · Usage · Settings and Notifications
Compatibility: The current compatibility baseline is DeepSeek Harness
0.1.0-rc.6. Harness is still in developer preview, so recheck plugin compatibility after upgrading DSH.
Supports light and dark themes, a compact mini mode, and configuration through DSH plugin settings.
| Light theme | Dark theme |
|---|---|
![]() |
![]() |
| Component | Requirement |
|---|---|
| DeepSeek Harness | Compatibility baseline 0.1.0-rc.6 |
| Node.js | ^22.19.0 or >=24.0.0 |
| DSH profile | web; headless profiles do not provide the UI |
| pnpm | Available from the command line |
Install the plugin into the web profile:
dsh plugin --profile web add dsh-pomodoro
Then start or restart DSH Web:
dsh web
The plugin is loaded when the 🍅 button appears at the bottom of the sidebar.
Click the sidebar 🍅 button to open or close the panel. Drag the title bar to reposition it. Use Mini in the title bar to hide secondary information, and Expand to restore the full panel.
| Control | Behavior |
|---|---|
| Start / Pause | Start or pause the current phase |
| Reset | Restore the current phase to its full duration and pause it |
| Skip | Move to the next phase and keep it paused |
| Mini / Expand | Switch between the low-obstruction layout and full controls |
Open Settings → Plugins → Plugin configuration → Pomodoro in DSH to configure:
| Setting | Default | Behavior |
|---|---|---|
| Focus duration | 25 minutes | Full duration of each focus phase; accepts an integer from 1 to 240 minutes |
| Break duration | 5 minutes | Full duration of each break phase; accepts an integer from 1 to 240 minutes |
| Start breaks automatically | On | Start the break when a focus phase ends naturally |
| Start the next focus session automatically | Off | Start the next focus session when a break ends naturally |
| Play a sound when a phase ends | Off | Play the completion sound three times; a preview is available |
| Send system notifications in the background | Off | Send a browser notification while the DSH page is in the background |
If the current phase has not started, a new duration takes effect immediately. Once timing has started, the new duration applies from the next phase.
When every DSH page is closed, the browser cannot play the sound or send a notification at the exact deadline. The next DSH launch restores the timer and settles and reports the expired active phase once.
System notifications require DSH to be served from localhost, 127.0.0.1, or HTTPS, and the DSH page must remain open. The in-app reminder continues to work if sound or system notifications are unavailable.
# Update the plugin
dsh plugin --profile web update dsh-pomodoro
# Remove the plugin
dsh plugin --profile web remove dsh-pomodoro
Restart dsh web after either command.
MIT. See THIRD_PARTY_NOTICES.md for the licenses covering React/ReactDOM and third-party assets such as the CC0 completion sound.
git clone https://github.com/causebefore/dsh-pomodoro.git
Set-Location dsh-pomodoro
dsh plugin --profile web add .
npm run check
npm pack --dry-run
The project has no build step: lib/client.js is the browser bundle that is published directly. Daily development happens on dev; main only receives versions that have completed release checks.
| Path | Responsibility |
|---|---|
lib/index.js |
Node/Cordis entry point, configuration schema, and loopback RPC |
lib/client.js |
Browser timer engine, React UI, slot registration, locale messages, and settings synchronization |
assets/sounds/deep-ding.mp3 |
Source for the CC0 completion sound; its runtime bytes are embedded in the client bundle |
docs/images/ |
Chinese and English README screenshots plus the GitHub Social Preview image |
cordis.patch.yml |
Inserts the plugin service into the DSH Web composition |
package.json |
Exports, peer ranges, bundle declaration, and npm publication allowlist |
.github/workflows/publish.yml |
Trusted Publishing workflow from a GitHub Release to npm |
dev, then update the version in package.json.dev into main through a release pull request.main commit with a name matching vX.Y.Z.main ancestry, runs syntax and package checks, and publishes through npm Trusted Publishing.CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。