dsh-notify-skill
Manifest validEmail reminders from your DSH agent when you're away: fires at goal completion, blockage, before asking the user a decision, and at long-task milestones via a bundled zero-dependency Node SMTP sender.
dsh-notify-skill
English | 中文
Email reminders from your DSH agent when you're away from the computer.
You start a long-running goal in DSH (or any AI coding agent), then walk away. When the agent finishes, gets blocked, or needs your decision, it sends an email to your phone mailbox — you see it and come back. One-way ping, no remote control.
Design: bundle a sender, teach the fallback
The skill ships one zero-dependency implementation — sender.mjs (~70 lines, only Node built-ins tls/net), so the agent sends mail deterministically in every normal DSH session (DSH runs on Node). The SKILL.md still carries the full contract:
- when to notify (goal done / blocked / before asking you a decision / long-task milestone),
- what to write (specific, in your language, short),
- the config contract (
config.json: sender, SMTP authorization code, recipient; auto-inferred hosts for QQ/163 mail), - how to guide the user through getting an SMTP authorization code when the config is missing,
- failure handling and security rules.
If Node is genuinely unavailable (rare), the skill's instructions tell the agent to implement the ~15-line SMTP call itself with whatever the environment provides — Python smtplib, curl, mail, … — so the skill stays cross-platform (Windows/Linux/macOS) and future-proof.
How it works
| Moment | Suggested marker |
|---|---|
| Goal completed | done |
| Goal blocked / stuck | block |
| About to ask the user a decision | question |
| Long task milestone | info |
The agent sends via the bundled sender:
node sender.mjs "subject" "body" # reads config.json next to it
Knowledge note (Windows): .NET
SmtpClienthas a known hang on implicit-TLS port 465 — the bundled sender usesnode:tlsinstead, which has no such issue.
Install (DSH)
Plugin install (recommended) — the skill ships as a DSH plugin and registers on ctx.skills:
dsh plugin --profile web add dsh-notify-skill
Or from GitHub: dsh plugin --profile web add github:PAKIKNOWLEDGE/dsh-notify-skill. Restart dsh web once after installing, then the skill appears in the session skill catalog.
Manual install (no plugin) — DSH also discovers skills from <dshHome>/skills/<name>/SKILL.md (default ~/.dsh/skills), hot-reloaded by a filesystem watcher:
git clone https://github.com/PAKIKNOWLEDGE/dsh-notify-skill.git "$HOME/.dsh/skills/notify"
Or copy the folder manually to ~/.dsh/skills/notify/. New sessions pick it up immediately.
Setup (one-time, ~5 minutes)
The agent will also walk you through this if you just ask it to use the skill.
- Get an SMTP authorization code (not your login password):
- QQ Mail: web QQ Mail → 设置 → 账户 → enable "POP3/SMTP 服务" → generate a 16-char 授权码
- 163 Mail: web 163 Mail → 设置 → POP3/SMTP/IMAP/SMTP → enable → create 授权码
- Copy
config.example.jsontoconfig.jsonand fill it in:{ "email": { "smtpHost": "", "smtpPort": 465, "useSsl": true, "from": "your-address@qq.com", "authCode": "16-char authorization code", "to": "recipient@example.com" } }smtpHostmay be left empty — it is inferred (@qq.com→smtp.qq.com,@163.com→smtp.163.com, port 465 SSL). - Test: ask your agent to send a test notification (it will implement the sender itself).
Other agents (Claude Code, Codex, ...)
No compatibility work needed — modern agents are smart. Point them at SKILL.md and the config contract; they implement the sender themselves.
Security
config.json(contains your SMTP authorization code) andnotify.logare gitignored — never force-commit them. A leaked authorization code lets anyone send mail as your mailbox.- The skill instructs agents to never print or commit the authorization code.
License
Comments
Loading…
Similar plugins
by JamesYasR
Email reminders from your DSH agent when you are away, with stable SMTP (no 535 retry loop), connect and idle timeouts, and a --check self-test.
★ 0
MIT
JavaScript
Oct 4, 2026
dsh plugin --profile web add dsh-email-push-masterby wuuuuu123-32
Emails you when a long turn finishes or errors, when a goal completes or blocks, and when an approval or a question has waited past a timeout; each new notification deletes the previous one from the i
★ 0
MIT
JavaScript
Oct 17, 2026
dsh plugin --profile web add dsh-mailbox-notifyby Vergil-long
DeepSeek Harness 邮件通知插件:任务完成 / 工具等你授权 / 助手在等你回答时发邮件给你,配一个「离开模式」开关。设置全部集成在 harness 设置界面里。
★ 1
MIT
JavaScript
Sep 13, 2026
dsh plugin --profile web add dsh-email-notifyDesktop and webhook alerts on macOS, Linux and Windows when an agent finishes a turn, errors, or waits for approval — zero-dependency native notifications (osascript / notify-send / PowerShell toast)
★ 2
↓ 562/wk
MIT
JavaScript
dsh plugin --profile web add dsh-notificationNotifies you about 11 configurable DSH agent events (task completion, questions, denied approvals, background subagents/goals/jobs, team tasks, context compaction, triggered schedules, plugin startup
★ 1
GPL-3.0
JavaScript
dsh plugin --profile web add dsh-desktop-notifyby knownothing114
Native desktop alerts when dsh needs the human — approvals, questions, plan reviews, turn completion, goals, errors and workflow runs — plus a Settings tab for every option, hot-applied.
★ 0
MIT
JavaScript
Aug 28, 2026
dsh plugin --profile web add dsh-notify