npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

dsh-notify-skill

v0.1.0

Published

Email 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.

Readme

dsh-notify-skill

English | 中文

你不在电脑前时,agent 用邮件提醒你回来。

你在 DSH(或其他 AI 编码 agent)里派一个长任务 goal,然后离开电脑。当 agent 完成、卡住、或需要你决策时,它发一封邮件到你手机邮箱——你看到就回来。单向通知,不做远程指挥。

设计理念:自带发送器,教会兜底实现

本 skill 打包一个零依赖实现——sender.mjs(约 70 行,只用 Node 内置 tls/net),让 agent 在每个正常 DSH 会话里都能确定地发信(DSH 本身就跑在 Node 上)。SKILL.md 仍然承载完整契约:

  • 何时通知(goal 完成 / 阻塞 / 提问决策前 / 长任务节点),
  • 写什么(具体、用你的语言、简短),
  • 配置契约config.json:发件邮箱、SMTP 授权码、收件邮箱;QQ/163 邮箱自动推断服务器),
  • 配置缺失时如何引导用户获取 SMTP 授权码,
  • 故障处理与安全规则。

万一 Node 真的不可用(极少见),skill 指令会告诉 agent 自己实现那 ~15 行 SMTP 调用——环境里有什么用什么:Python smtplib、curl、mail…… 这样 skill 依然跨平台(Windows/Linux/macOS)且不过时。

触发时机

| 时机 | 建议标记 | |---|---| | goal 完成 | done | | goal 阻塞/卡住 | block | | 即将向你提问决策时 | question | | 长任务关键节点 | info |

agent 通过自带的发送器发信:

node sender.mjs "标题" "正文"          # 读取旁边的 config.json

经验备注(Windows):.NET SmtpClient 在 465 隐式 TLS 上有已知挂起问题——自带发送器改用 node:tls,无此问题。

安装(DSH)

插件安装(推荐) —— 本 skill 以 DSH 插件形式发布,自动注册到 ctx.skills

dsh plugin --profile web add dsh-notify-skill

或用 GitHub 源:dsh plugin --profile web add github:PAKIKNOWLEDGE/dsh-notify-skill。装完重启一次 dsh web,会话 skill 目录里就会出现它。

手动安装(不装插件) —— DSH 也会从 <dshHome>/skills/<name>/SKILL.md 发现 skill(默认 ~/.dsh/skills),文件监视器热加载:

git clone https://github.com/PAKIKNOWLEDGE/dsh-notify-skill.git "$HOME/.dsh/skills/notify"

也可以手动把文件夹复制到 ~/.dsh/skills/notify/。新会话立即生效。

配置(一次性,约 5 分钟)

直接让 agent 用这个 skill,它也会引导你完成。

  1. 获取 SMTP 授权码(不是登录密码):
    • QQ 邮箱:网页版 → 设置 → 账户 → 开启「POP3/SMTP 服务」→ 生成 16 位授权码
    • 163 邮箱:网页版 → 设置 → POP3/SMTP/IMAP/SMTP → 开启 → 新增授权码
  2. 复制 config.example.jsonconfig.json 并填写:
    {
      "email": {
        "smtpHost": "",
        "smtpPort": 465,
        "useSsl": true,
        "from": "[email protected]",
        "authCode": "16位授权码",
        "to": "[email protected]"
      }
    }
    smtpHost 可留空,按地址自动推断(@qq.comsmtp.qq.com@163.comsmtp.163.com,465 SSL)。
  3. 测试:让 agent 发一条测试通知即可(发送器由它自己实现)。

其他 agent(Claude Code、Codex 等)

无需任何兼容工作——现在的 agent 很聪明,把 SKILL.md 和配置契约指给它,它自己就会实现发送器。

安全

  • config.json(含你的 SMTP 授权码)和 notify.loggitignore——绝不要强推入库。授权码泄露等于别人能用你的邮箱发信。
  • skill 指令要求 agent 绝不打印或提交授权码。

License

MIT