Introduction¶
When using DSH or other AI coding agents, you often need to start a long-running task and then step away from your computer. If you are not near the terminal when the task ends, gets blocked, or requires your decision, it is easy to miss progress updates.
dsh-email-push-master solves this problem. It sends one-way notifications to your mobile inbox by email: when the DSH agent completes a task, encounters a block, prepares to ask a question, or reaches a milestone, it sends an email reminding you to come back and handle it.
Plugin Introduction¶
This is a DSH plugin maintained by JamesYasR and is also a hardcore fork of the open-source project dsh-notify-skill. Its core design packages the sender (sender.mjs) into the skill, relying entirely on Node.js built-in tls and net modules, without depending on third-party libraries. The benefits are stronger determinism in the sending process and avoiding the common heartbeat stall issue with .NET SmtpClient on port 465 in Windows environments.
Core Features¶
The plugin primarily provides the following capabilities:
- Multi-scenario notifications: It supports triggering emails when goals are completed, tasks are blocked, decisions are required, or long-task milestones are reached.
- Zero-dependency sender: It uses native Node.js modules and requires no additional SMTP libraries.
- Smart error handling: It structurally classifies errors (such as 535 authentication failure, 550 invalid recipient, and network errors).
- Self-check: It provides a
--checkflag to verify configuration and SMTP authentication status without sending an email. - Automatic SMTP host inference: For QQ Mail and 163 Mail, if
smtpHostis not specified in the configuration, the plugin automatically infers the corresponding hostname and port.
Installation and Enablement¶
Installing through the DSH plugin mechanism is the recommended approach. It automatically registers the plugin into ctx.skills.
dsh plugin --profile web add dsh-email-push-master
You can also install it directly from GitHub:
dsh plugin --profile web add github:JamesYasR/dsh-email-push-master
After installation, restart dsh web to find the plugin in the session skill list.
Typical Usage¶
1. Configuration File¶
In the skill directory, copy config.example.json to config.json and fill it in. The configuration includes the sender email address, authorization code, recipient, and SMTP server information.
{
"email": {
"smtpHost": "",
"smtpPort": 465,
"useSsl": true,
"from": "your-address@qq.com",
"authCode": "16-char authorization code",
"to": "recipient@example.com"
}
}
If smtpHost is not provided, the plugin automatically infers it based on the email suffix (for example, @qq.com maps to smtp.qq.com).
2. Command-line Sending¶
While running, the DSH agent invokes the bundled sender.mjs. The command format is as follows:
node sender.mjs "subject" "body"
3. Configuration Self-check¶
Before actually sending emails, it is recommended to run the self-check command first to confirm that the network and authorization code are correct:
node sender.mjs --check
Applicable Scenarios and Notes¶
- Environment requirement: The plugin requires Node.js version 18 or higher.
- Windows compatibility: Because Windows native
SmtpClienthas known issues on port 465, the plugin usesnode:tlsfor TLS connections, resolving the issue. - Security practices:
config.jsonandnotify.logare added to the Git ignore list. Never commit or expose them manually.- Plugin instructions ensure the agent never prints the authorization code in logs or conversations.
- 535 errors are not retried: If a 535 authentication failure is received (usually caused by risk control), the plugin does not automatically retry, preventing the account from being further locked.
- Other agents: The plugin’s design philosophy is “notify rather than control,” so it is also compatible with other modern agents such as Claude Code and Codex, as long as they can read
SKILL.mdand invokesender.mjs.
Conclusion¶
dsh-email-push-master inlines the SMTP logic to provide a stable, low-risk email notification solution. If you prefer managing workflows through mobile email, this plugin can serve as an “offline assistant” for the DSH agent, ensuring that you never miss critical progress.