README
dsh-reminder 🔔
English · 简体中文
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.
✨ 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
- Install:
dsh plugin --profile web add <dsh-reminder>(ornpm i dsh-reminder), registerdsh-reminderin the profile bundle list, restart the DSH web process - Grant permission: Settings → Reminders → "Enable & test notifications" → Allow — a test popup arrives instantly
- 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
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
更多「界面与体验」插件
dsh-better-sidebar
作者 omdsh-dev
开放的侧边栏底座,支持三方拓展注册新侧边栏页面。内置文件渲染编辑/终端/侧边对话/Git/子代理页面 | Open sidebar foundation, supports third-party extensions to register new sidebar pages. Built-in file rendering/editing, terminal, side chat, Git, and sub-agent pages.
dsh-tui
作者 ccch1mneyyy
DSH 官方公众号收录的 TUI 补位插件:Claude Code 风,鲸鱼顶栏/实时状态/流式思考/双击 Esc 回滚/上下文进度+TPS。npm 一键装。 DSH official WeChat featured TUI plugin — Claude Code style: whale bar, live status, streaming thoughts, double-Esc rollback, context bar + TPS. npm one-click.
dsh-tianshu-tui
作者 huiliyi37
官方 DeepSeek Harness 的交互式终端 UI 插件:自研 ANSI 极简交互渲染、流式 Markdown/工具卡、16+ 主题、slash 命令与选择器、输入历史与本地偏好持久化、LSP 诊断、memory记忆,很丝滑的开发体验。
dsh-popout-sidebar
作者 e2mcc
将侧边栏弹出为独立浏览器标签页,可拖到另一块屏幕使用
