Bundle
dsh-reminder
Bottom-right reminder cards for the DeepSeek Harness web GUI: an amber persistent card when an approval waits for you, a green self-dismissing card when a task completes
- Source
- Aisland-SJL
- stars
- 18 stars
- License
- MIT
- Updated
- Updated yesterday
Readme
# dsh-reminder ๐ <p align="center"><b>English</b> ยท <a href="README.zh.md">็ฎไฝไธญๆ</a></p> **A cross-window reminder plugin for DeepSeek Harness** โ while you work in any other window, it taps you on the shoulder the moment a task **finishes** or **waits for your approval**. Codex / WorkBuddy style. <img src="assets/toast-preview.svg" alt="Toast preview" width="720"> --- ## โจ Features | ๐ฏ | Feature | Description | |---|---------|-------------| | ๐ข | Completion | Pops "Task completed" on every turn end, with session ยท duration and a green check icon | | ๐ก | Approval | Pops "Waiting for your approval" with the tool name and an amber alert icon | | ๐ฏ | Pops in any window | Notifies even while you work in other apps | | ๐ฑ๏ธ | Click to return | Clicking focuses the DSH window and opens the session | | โฑ๏ธ | Auto-dismiss | Gone in 3-5 s (adjustable) | | ๐ต | Soft chime | A gentle two-note chime (D4โA4) โ nothing startling | | ๐ | Deduplicated | Never pops twice for the same event | | ๐ก๏ธ | Reminds, never acts | Never approves on your behalf | --- ## ๐ค Why - ๐ด *Nobody calls you for approvals* โ the agent waits while you are away; now an amber popup tells you - ๐ *Nobody tells you it's done* โ no completion signal before; now a green popup tells you --- ## ๐ Quick start 1. **Install**: `dsh plugin --profile web add <dsh-reminder>` (or `npm i dsh-reminder`), register `dsh-reminder` in the profile bundle list, restart the DSH web process 2. **Grant permission**: Settings โ Reminders โ "Enable & test notifications" โ Allow โ a test popup arrives instantly 3. **Enjoy**: Switch away and work โ the popups come to you --- ## โ๏ธ Settings | Setting | Default | Description | |---|---|---| | Notification permission | unset | One-click grant + test popup | | Approval reminders | On | Off = no approval popups | | Completion reminders | On | Off = no completion popups | | Duration | 3-5 s | Seconds before auto-dismiss | | Failure alerts | Off (reserved) | Planned for v0.3 | --- ## ๐๏ธ Architecture One package ships the **host Cordis plugin** and the **web client**: - **host**: registers the settings namespace plus a plugin-owned Typert Remote (`reminder/getSettings` ยท `updateSettings`) โ plugin namespaces sit outside the web settings allowlist - **client**: subscribes to the session list and conversation snapshots (turn/end, approval/requested arrive over the mux stream), pops via the Notification API with a Web Audio chime - **Read-only**: never mutates DSH core behavior --- ## ๐ง Development ```bash pnpm install pnpm run typecheck # tsc --noEmit pnpm test # node tests/unit/*.test.cjs (16 tests) pnpm run build # esbuild: host ESM + single-file client CJS (ModuleLoader handshake) + tsc d.ts ``` - Artifacts: `lib/index.js` (host ESM), `lib/client.js` (client), `lib/types/` (.d.ts) - Offline dev: no new dependencies; @deepseek-ai/* types and local esbuild/typescript come from `03_local/codes` (not in git) --- ## โ ๏ธ Known limits - Chrome page notifications reject `actions` (ServiceWorker persistent notifications only) โ dismiss via auto-close or the hover โ - Permission must be requested from a user gesture (browser policy) โ the settings button does it in one click - The chime unlocks on the first click (autoplay policy) --- ## ๐ License [MIT](LICENSE)
Install
dsh plugin --profile web add github:Aisland-SJL/dsh-reminder
Profile: web
With the hub plugin installed, ask your agent to install it by name โ it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-reminder from the hub
- This package builds from source on install. pnpm will ask you to allow its build script โ that is permission to run the packageโs code on your machine, outside the agent sandbox. Only allow sources you trust.
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.