Agent skill

resend

Send transactional or notification emails via the Resend API — text and HTML content, multiple recipients, CC/BCC, reply-to, and file attachments. Single Python script with stdin pipe support. Triggers on 'send email', 'transactional email', 'email notification', 'Resend API', 'send via Resend'.

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/resend-tdimino-claude-code-minoan

SKILL.md

Resend Email Skill

Send emails via the Resend transactional email API.

IMPORTANT: Confirm Before Sending

Always confirm with the user before sending an email. Show them the recipient(s), subject, and body content and get explicit approval. Email is not reversible.

When to Use This Skill

  • Sending a transactional or notification email
  • Sending HTML email (inline or from a file)
  • Sending email with attachments
  • Piping content from another command into an email body

Prerequisites

  1. API Key: Get a Resend API key at https://resend.com/api-keys (format: re_xxxxxxxxx)
  2. Add to secrets: Add export RESEND_API_KEY=re_xxxxxxxxx to ~/.config/env/secrets.env
  3. Verify domain (optional): By default, send from [email protected] (test only). For production, verify a domain at https://resend.com/domains
  4. Install requests: uv pip install --system requests

Credentials checked in order: RESEND_API_KEY env var > ~/.config/env/secrets.env > ~/.claude.json

Quick Start

bash
# Simple text email
python3 ~/.claude/skills/resend/scripts/send.py \
  --to "[email protected]" \
  --subject "Hello from Claude" \
  --body "This is a test email."

# HTML email from a file
python3 ~/.claude/skills/resend/scripts/send.py \
  --to "[email protected]" \
  --subject "Weekly Report" \
  --html report.html

# Pipe content as body
echo "Pipeline output here" | python3 ~/.claude/skills/resend/scripts/send.py \
  --to "[email protected]" \
  --subject "Build Results"

# Multiple recipients with CC
python3 ~/.claude/skills/resend/scripts/send.py \
  --to "[email protected]" "[email protected]" \
  --cc "[email protected]" \
  --subject "Meeting Notes" \
  --body "Attached are the notes from today."

# With attachments
python3 ~/.claude/skills/resend/scripts/send.py \
  --to "[email protected]" \
  --subject "Invoice" \
  --body "Please find the invoice attached." \
  --attachments invoice.pdf

# Custom from address (requires verified domain)
python3 ~/.claude/skills/resend/scripts/send.py \
  --from "[email protected]" \
  --to "[email protected]" \
  --subject "Test" \
  --body "Sent from a verified domain."

# Inline HTML string
python3 ~/.claude/skills/resend/scripts/send.py \
  --to "[email protected]" \
  --subject "Styled Email" \
  --html "<h1>Hello</h1><p>This is <strong>bold</strong>.</p>"

# Dry run (print payload without sending)
python3 ~/.claude/skills/resend/scripts/send.py \
  --to "[email protected]" \
  --subject "Test" \
  --body "Hello" \
  --dry-run

Parameters

bash
python3 ~/.claude/skills/resend/scripts/send.py [OPTIONS]
Flag Description Required
--to EMAIL [EMAIL...] Recipient email address(es) Yes
--subject TEXT Email subject line Yes
--body TEXT Plain text body (or pipe via stdin) One of --body, --html, or stdin
--html FILE_OR_STRING HTML body: path to .html file, or inline HTML string One of --body, --html, or stdin
--from EMAIL Sender address (default: Tom di Mino <[email protected]>) No
--cc EMAIL [EMAIL...] CC recipients No
--bcc EMAIL [EMAIL...] BCC recipients No
--reply-to EMAIL Reply-to address No
--attachments FILE [FILE...] File paths to attach No
--dry-run Print the payload without sending No

Body resolution: --body and --html can be combined for multipart email (text + HTML). If neither is provided, stdin is used as plain text. --body "" sends an empty text part.

Sender Aliases

Use --from ALIAS as a shorthand for named senders:

Alias Expands to
tom Tom di Mino <[email protected]>
kothar Kothar wa Khasis <[email protected]>
claudius Claudius, Artifex Maximus <[email protected]>
minoan Minoan Mystery <[email protected]>
bash
# Send as Kothar
--from kothar

# Send as Claudius
--from claudius

If --from doesn't match an alias, it's used as-is (full email or Name <email> format).

Test Addresses

Resend provides test addresses that don't affect domain reputation:

Rate Limits

Resend enforces 2 requests per second. The script does not batch or retry — if sending multiple emails, add a 1-second delay between invocations.

Troubleshooting

Problem Fix
RESEND_API_KEY not found Add export RESEND_API_KEY=re_xxx to ~/.config/env/secrets.env
missing_required_field Ensure --to and --subject are provided, plus body content
validation_error on from Default [email protected] only works for test sends. Verify a domain at resend.com/domains
rate_limit_exceeded Wait 1 second between sends (2 req/s limit)
Attachment not found Use absolute paths or paths relative to CWD

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results