← Back to Skills Marketplace
jwestburg

Resend Send Native Node

by jwestburg · GitHub ↗ · v1.0.3 · MIT-0
cross-platform ⚠ suspicious
49
Downloads
0
Stars
0
Active Installs
3
Versions
Install in OpenClaw
/install resend-send-native-node
Description
Send email via Resend.com's HTTPS API - native Node.js, zero dependencies. Use when the user explicitly asks to email, send a message, mail a report, or deli...
README (SKILL.md)

Resend Send Native Node

Send email via the Resend.com HTTPS API.

Native Node.js. Zero dependencies. One POST call for real sends. Small enough to audit directly.

When to use

Trigger phrases: "email me", "send an email", "mail this to", "send a notification", "email the report".

Use this when:

  • The user wants to send an email fast, without Gmail OAuth or App Password pain
  • Simple "fire and forget" sends (no inbox reading needed)
  • The user has a Resend.com account (free tier: 3,000 emails/month)
  • Weekly/report-style outbound messages where the body is generated from explicitly reviewed text

Do NOT use this when:

  • The user wants to READ email (this is send-only)
  • The user needs to send from a specific personal Gmail address (use a Gmail-specific skill)
  • Sensitive business emails where provenance matters (Resend's default [email protected] sender looks transactional)
  • The recipient, sender, or final body has not been explicitly reviewed/approved for a real send

Safety policy for agents

This skill is send-only, but it is still externally mutating. For agent use:

  1. Draft first. Generate or inspect the exact body text before sending.
  2. Dry-run first. The script dry-runs by default; review the printed payload.
  3. Explicit approval. Use --send only after the user explicitly approves that exact recipient, subject, and body.
  4. Use an allowlist. Real sends fail closed unless [email protected],[email protected] is set in the process environment for approved recipients.
  5. No raw memory dumps. Email only curated report text, not unfiltered memory, transcripts, logs, or private workspace context.

How to run

The script is in scripts/send.mjs.

Basic:

node "\x3Cskill-dir>/scripts/send.mjs" --to "[email protected]" --subject "Hello" --body "Hi there"

Without --send, this prints a dry-run payload and does not send.

With from address override:

node "\x3Cskill-dir>/scripts/send.mjs" --from "OpenClaw \[email protected]>" --to "[email protected]" --subject "Hello" --body "Hi"

HTML body:

node "\x3Cskill-dir>/scripts/send.mjs" --html --to "[email protected]" --subject "Styled" --body "\x3Ch1>Hi\x3C/h1>\x3Cp>Hello\x3C/p>"

Dry run (no send, just print the payload):

node "\x3Cskill-dir>/scripts/send.mjs" --dry-run --to "[email protected]" --subject "Test" --body "..."

Real send (only after explicit approval):

node "\x3Cskill-dir>/scripts/send.mjs" --send --to "[email protected]" --subject "Weekly report" --body "Approved report text"

All flags

Flag Required? Purpose
--to yes Comma-separated recipient addresses
--subject yes Message subject
--body yes Inline message body
--cc no Comma-separated cc
--bcc no Comma-separated bcc
--from no Override sender, e.g. "OpenClaw \[email protected]>"
--reply-to no Reply-to address
--html no Body is HTML instead of plain text
--dry-run no Don't send; print the JSON payload
--send no Actually send. Without this, the script dry-runs by default
-h, --help no Show help

--body-file is intentionally not supported in the public package. Review file contents yourself and pass approved text with --body.

Credentials

Requires process environment values:

  • RESEND_API_KEY - starts with re_...
  • RESEND_ALLOWED_TO - comma-separated recipient allowlist for real sends
  • Real sends require RESEND_ALLOWED_TO; without it the script refuses --send

How to get one:

  1. Sign up at https://resend.com (free - 3,000 emails/month)
  2. Go to API Keys in the dashboard
  3. Click Create API Key, name it, and choose the least-privilege sending permission available for your account
  4. Copy the key

Export it in the runtime process environment:

$env:RESEND_API_KEY="\x3Cyour-resend-key>"
$env:RESEND_ALLOWED_TO="[email protected],[email protected]"

Sender identity

By default, emails are sent from [email protected] - Resend's default sender. This works immediately without any domain setup.

For a custom domain (later, optional):

  1. Add your domain to Resend at https://resend.com/domains
  2. Configure DNS records they provide
  3. Use --from "Henry \[email protected]>"

What this skill does

  • Reads RESEND_API_KEY from the process environment only
  • POSTs a JSON request to https://api.resend.com/emails
  • Prints a one-line confirmation with the Resend message ID
  • Defaults to dry-run unless --send is present
  • Validates basic recipient address shape before sending
  • Enforces RESEND_ALLOWED_TO for real sends; fail-closed if it is missing
  • Prints body byte length and SHA-256 prefix in dry-run so reviewed content can be matched to the send

What this skill does NOT do

  • Does not read or manage email (this is send-only)
  • Does not read local files or support --body-file
  • Does not write any files
  • Does not make network calls other than to api.resend.com
  • Does not auto-update
  • Does not support attachments in this version

Output

On success:

sent to [email protected] (subject: Hello) - resend-id: c8f43f2a-...

On failure, clear error on stderr with a non-zero exit code.

Troubleshooting

  • "RESEND_API_KEY not set" - get one at https://resend.com and export RESEND_API_KEY in the process environment
  • HTTP 401 - API key is invalid or was revoked
  • HTTP 403 - API key doesn't have send permission (check dashboard)
  • HTTP 422 - the from address isn't verified on your Resend account (use [email protected] or verify your own domain)
  • HTTP 429 - rate limited (free tier: 100/day, 3,000/month)
  • Network error - transient; retry

Free tier limits

  • 3,000 emails/month
  • 100 emails/day
  • Sends from [email protected] (no domain needed)
  • For higher limits + custom domains, paid tiers start at $20/month
Usage Guidance
Use this skill only when you intend to send email through Resend. Set a least-privilege RESEND_API_KEY, configure a narrow RESEND_ALLOWED_TO allowlist, review the dry-run payload, and only use --send after approving the exact recipient, subject, and body.
Capability Analysis
Type: OpenClaw Skill Name: resend-send-native-node Version: 1.0.3 The skill is a well-structured utility for sending emails via the Resend API with multiple built-in safety guardrails. It defaults to a dry-run mode, requires an explicit --send flag for execution, and enforces a mandatory recipient allowlist via the RESEND_ALLOWED_TO environment variable to prevent unauthorized data exfiltration. The implementation in scripts/send.mjs uses native Node.js APIs with zero external dependencies and explicitly forbids reading local files via the command line to mitigate risks of accidental sensitive data leakage.
Capability Tags
cryptorequires-oauth-tokenrequires-sensitive-credentials
Capability Assessment
Purpose & Capability
The stated purpose and code align: it sends outbound email through Resend only. Real email sending is externally mutating and should be reviewed carefully, but the artifacts disclose this.
Instruction Scope
The instructions require an explicit user request, drafting/reviewing the exact recipient, subject, and body, dry-run first, and --send only after approval.
Install Mechanism
There is no install script, package install, dependency download, or auto-update mechanism shown; the included Node script is directly inspectable.
Credentials
Real sends require RESEND_API_KEY and RESEND_ALLOWED_TO from the environment, which is proportionate for a Resend sender. The registry requirement fields under-declare this by listing no env vars or primary credential.
Persistence & Privilege
The code shows no file writes, persistence, background worker, attachment handling, local file reading, or credential storage; it reads the API key only from the process environment for real sends.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install resend-send-native-node
  3. After installation, invoke the skill by name or use /resend-send-native-node
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.3
Scanner-surface reduction: remove body-file support and local file reads; message body must be reviewed and passed with --body.
v1.0.2
Display-name consistency: remove parentheses from Native Node to match other jwestburg skills.
v1.0.1
Public-package hygiene: remove local .env credential fallback; use process environment only. Listing polished with PowerShell examples and ASCII-safe copy.
Metadata
Slug resend-send-native-node
Version 1.0.3
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 3
Frequently Asked Questions

What is Resend Send Native Node?

Send email via Resend.com's HTTPS API - native Node.js, zero dependencies. Use when the user explicitly asks to email, send a message, mail a report, or deli... It is an AI Agent Skill for Claude Code / OpenClaw, with 49 downloads so far.

How do I install Resend Send Native Node?

Run "/install resend-send-native-node" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Resend Send Native Node free?

Yes, Resend Send Native Node is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Resend Send Native Node support?

Resend Send Native Node is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Resend Send Native Node?

It is built and maintained by jwestburg (@jwestburg); the current version is v1.0.3.

💬 Comments