@ltao0829/dsh-task-notify
Task Notify
DeepSeek Harness 的任务完成提醒:代理回合或后台作业完成时显示页面内提示、操作系统通知并播放声音
插件会安装到这里;不确定时保持 web。
npx -y @deepseek-ai/dsh plugin --profile web add github:ltao0829/dsh-task-notify#df83e98904a7bd03def3773ee6186228e88f6af8


@ltao0829/dsh-task-notify
DeepSeek Harness 的任务完成提醒:代理回合或后台作业完成时显示页面内提示、操作系统通知并播放声音
插件会安装到这里;不确定时保持 web。
npx -y @deepseek-ai/dsh plugin --profile web add github:ltao0829/dsh-task-notify#df83e98904a7bd03def3773ee6186228e88f6af8


Task Notify 以 @ltao0829/dsh-task-notify 发布,当前版本为 0.1.2。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。
Lifecycle notification layer for AI coding agents, currently supporting DeepSeek Harness.
AI coding agents increasingly run long-lived, autonomous tasks: a turn can take minutes, and the human has usually moved to another window. This project adds the missing notification layer on top of an agent's task lifecycle, so the moment an agent completes, fails, settles a background job, or starts waiting for a human (approval / plan review / question), you get an in-page toast, an OS-level desktop notification, and an optional sound.
Inspired by Codex's desktop-notification UX — not a Codex integration. Not affiliated with or sponsored by OpenAI. Today the project ships as a DeepSeek Harness (DSH) plugin. Its lifecycle-detection core is host-agnostic and is designed to grow into adapters for other coding agents.
Long-running agent tasks invert the normal attention model: instead of watching a terminal, users submit a task and switch away. UI-only status indicators (a spinner in a background tab) fail exactly when they matter most — when the user is not looking. dsh-task-notify turns lifecycle transitions into interruptible, OS-level signals, closing the feedback loop between an autonomous agent and a distracted human.
Placeholder — replace with short recordings (GIF or MP4, ~10–30 s each). See
docs/demo-guide.md.
| Turn completed | Approval required | Background job failed |
|---|---|---|
| Turn completed | Approval required | Job failed |
completed, failed, killed).Prerequisites: Node.js and pnpm.
# npm (recommended)
dsh plugin --profile web add @ltao0829/dsh-task-notify
# or from Git
dsh plugin --profile web add git+https://github.com/ltao0829/dsh-task-notify.git
Restart dsh web and refresh the page. On the first click/keypress the browser asks for notification permission — allow it to receive desktop notifications.
The settings card lives in the plugin section of DSH's settings UI. Values are stored locally in localStorage (dsh.taskNotify.v1):
| Toggle | Default | Meaning |
|---|---|---|
| Enable reminders | on | master switch |
| Turn completion | on | an agent turn finishes |
| Background job | on | a background command / subagent job settles |
| Review needed | on | a running task waits for approval / plan review / question |
| Failure | on | a turn errors or a job fails / is killed |
| Browser notification | on | also send an OS-level notification (needs permission) |
| Sound | off | also play a short beep |
coding agent
│
▼
host adapter (DeepSeek Harness today;
Claude Code / Codex / OpenCode later)
│
▼
sessions snapshot (N-1 vs N)
│
▼
lifecycle detector ──► events: turn | job | review | failure
│
▼
notification dispatcher
│ │ │
▼ ▼ ▼
OS toast sound
notification
The detector (src/detect.ts) is a pure function: a snapshot goes in, lifecycle events come out. It knows nothing about DSH or the DOM, which is what makes additional coding-agent adapters a matter of implementing a new snapshot provider rather than rewriting the notification core.
src/detect.ts is host-agnostic (plain data in / plain data out) and is unit-tested in isolation.src/index.ts host half — registers the settings section
src/detect.ts pure lifecycle detector (snapshot diff)
src/client/index.ts browser half — watcher + failure watcher
src/client/notify.ts toast / OS notification / sound
src/client/settings.ts localStorage-backed settings store
src/client/TaskNotifySettingsCard.tsx settings UI card
tests/*.spec.ts detector, settings, notification, lifecycle tests
localStorage only.The plugin runs with the permissions of your DSH process, like any other DSH plugin.
@ltao0829/dsh-task-notify)Together these form a small suite of tooling for AI coding-agent workflows.
See CONTRIBUTING.md.
>=20.0.0 (tested on Node 20 and Node 22/24)>=0.1.0-rc.6 <0.2.0, verified compatible across official DSH releases including 0.1.5-alpha.2, 0.1.5-rc.1, and 0.1.5-rc.2.To verify plugin installation, configuration composition, web service startup, and cleanup in an isolated disposable DSH profile without touching your existing ~/.dsh:
pnpm run verify:profile
Evidence report: docs/verification-evidence.md.
Note on limitations: Catalog validation and disposable profile acceptance verify the plugin lifecycle contract and standard Web profile boot. System-level OS notifications require user-granted browser notification permissions.
pnpm install
pnpm run typecheck
pnpm test
pnpm run build
pnpm run verify:profile