Moltbot Plugin 2do
PassAudited by VirusTotal on May 12, 2026.
Overview
Type: OpenClaw Skill Name: moltbot-plugin-2do Version: 1.0.2 The skill is designed to parse natural language tasks and send them to the 2Do app via email. It transparently requires and uses SMTP credentials (SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS) and a recipient email (TWODO_EMAIL) from environment variables, as detailed in SKILL.md and src/config.ts. The email sending is handled by the legitimate 'nodemailer' library with secure TLS settings (src/email-sender.ts). There is no evidence of intentional harmful behavior such as data exfiltration beyond the stated purpose, unauthorized command execution, persistence mechanisms, obfuscation, or malicious prompt injection attempts in any of the analyzed files (code or documentation). All functionalities are clearly aligned with the skill's stated purpose.
Findings (0)
Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.
A task request may cause extra, undeclared runtime code to be fetched or executed before sending email, increasing supply-chain exposure.
If the compiled build is missing, the launcher runs `tsx` through `npx` at task-send time. `tsx` is not declared as a package dependency in the provided package.json, and this fallback would execute additional npm-sourced code in the same environment as SMTP credentials.
if [ -f "$PROJECT_DIR/dist/main.js" ]; then
node "$PROJECT_DIR/dist/main.js" "$@"
else
npx --prefix "$PROJECT_DIR" tsx "$PROJECT_DIR/src/main.ts" "$@"
fiInstall/build the skill ahead of time with pinned dependencies, include the compiled `dist/main.js`, or declare and lock the runtime TypeScript runner instead of relying on `npx` fallback.
If user text is interpolated into a shell command unsafely, special characters in a task title could alter the command or cause failures.
The skill is intended to pass raw user text into a shell command. The script itself parses arguments rather than evaluating them, but the invoking agent still needs to shell-escape the raw message correctly.
Pass the user's raw message... bash {baseDir}/scripts/send-task.sh --raw "USER_MESSAGE_HERE"Only invoke the skill for clear task-creation requests, and ensure the agent/runtime passes arguments safely rather than constructing an unescaped shell string.
Anyone or anything able to invoke the skill with those environment variables can send email through the configured SMTP account to the configured 2Do inbox.
The skill requires SMTP account credentials so it can send task emails. This is expected for the stated email-to-2Do integration, but it grants the skill email-sending authority through that account.
Required environment variables: - `TWODO_EMAIL` - `SMTP_HOST` - `SMTP_PORT` - `SMTP_USER` - `SMTP_PASS`
Use an app-specific password or a dedicated low-privilege email account, and avoid reusing a primary mailbox password.
Private reminders or task details will pass through the user's email provider and the mailbox monitored by 2Do.
Parsed task details and, in natural-language mode, the raw user input are placed in an email and sent through the configured SMTP provider to the configured 2Do mailbox.
await transporter.sendMail({
from: config.smtp.user,
to: config.twodoEmail,
subject,
text: body,
});Do not include highly sensitive information in task text unless you are comfortable sending it by email, and configure 2Do capture rules carefully.
