agentsclimarketplace

Resend

Skill tdimino/claude-code-minoan/skills/integration-automation/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'.From its SKILL.md

Install
npx -y skills add tdimino/claude-code-minoan --skill resend

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

SKILL.md

5.3 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it

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

# 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

python3 ~/.claude/skills/resend/scripts/send.py [OPTIONS]
FlagDescriptionRequired
--to EMAIL [EMAIL...]Recipient email address(es)Yes
--subject TEXTEmail subject lineYes
--body TEXTPlain text body (or pipe via stdin)One of --body, --html, or stdin
--html FILE_OR_STRINGHTML body: path to .html file, or inline HTML stringOne of --body, --html, or stdin
--from EMAILSender address (default: Tom di Mino <[email protected]>)No
--cc EMAIL [EMAIL...]CC recipientsNo
--bcc EMAIL [EMAIL...]BCC recipientsNo
--reply-to EMAILReply-to addressNo
--attachments FILE [FILE...]File paths to attachNo
--dry-runPrint the payload without sendingNo

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:

AliasExpands to
tomTom di Mino <[email protected]>
kotharKothar wa Khasis <[email protected]>
claudiusClaudius, Artifex Maximus <[email protected]>
minoanMinoan Mystery <[email protected]>
# 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

ProblemFix
RESEND_API_KEY not foundAdd export RESEND_API_KEY=re_xxx to ~/.config/env/secrets.env
missing_required_fieldEnsure --to and --subject are provided, plus body content
validation_error on fromDefault [email protected] only works for test sends. Verify a domain at resend.com/domains
rate_limit_exceededWait 1 second between sends (2 req/s limit)
Attachment not foundUse absolute paths or paths relative to CWD

What ships with it: 3 files

11.9 KB alongside SKILL.md, 2 of them executable

scripts/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.