Agent skill

resend-cli

Operate the Resend platform from the terminal — send emails (including React Email .tsx templates via --react-email), manage domains, contacts, broadcasts, templates, webhooks, and API keys via the `resend` CLI. Use when the user wants to run Resend commands in the shell, scripts, or CI/CD pipelines, or send/preview React Email templates. Always load this skill before running `resend` commands — it contains the non-interactive flag contract and gotchas that prevent silent failures.

Stars 96
Forks 14

Install this agent skill to your Project

npx add-skill https://github.com/resend/resend-skills/tree/main/skills/resend-cli

Metadata

Additional technical details for this skill

author
resend
version
1.7.1

SKILL.md

Resend CLI

Agent Protocol

The CLI auto-detects non-TTY environments and outputs JSON — no --json flag needed.

Rules for agents:

  • Supply ALL required flags. The CLI will NOT prompt when stdin is not a TTY.
  • Pass --quiet (or -q) to suppress spinners and status messages.
  • Exit 0 = success, 1 = error.
  • Error JSON goes to stderr, success JSON goes to stdout:
    json
    {"error":{"message":"...","code":"..."}}
    
  • Use --api-key or RESEND_API_KEY env var. Never rely on interactive login.
  • All delete/rm commands require --yes in non-interactive mode.

Authentication

Auth resolves: --api-key flag > RESEND_API_KEY env > config file (resend login --key). Use --profile or RESEND_PROFILE for multi-profile.

Global Flags

Flag Description
--api-key <key> Override API key for this invocation
-p, --profile <name> Select stored profile
--json Force JSON output (auto in non-TTY)
-q, --quiet Suppress spinners/status (implies --json)

Available Commands

Command Group What it does
emails send, get, list, batch, cancel, update
emails receiving list, get, attachments, forward, listen
domains create, verify, update, delete, list
api-keys create, list, delete
broadcasts create, send, update, delete, list
contacts create, update, delete, segments, topics
contact-properties create, update, delete, list
segments create, get, list, delete
templates create, publish, duplicate, delete, list
topics create, update, delete, list
webhooks create, update, listen, delete, list
auth login, logout, switch, rename, remove
whoami / doctor / update / open Utility commands

Read the matching reference file for detailed flags and output shapes.

Common Mistakes

# Mistake Fix
1 Forgetting --yes on delete commands All delete/rm subcommands require --yes in non-interactive mode — otherwise the CLI exits with an error
2 Not saving webhook signing_secret webhooks create shows the secret once only — it cannot be retrieved later. Capture it from command output immediately
3 Omitting --quiet in CI Without -q, spinners and status text leak into stdout. Use -q to get clean JSON only
4 Using --scheduled-at with batch Batch sending does not support scheduled_at — use single emails send instead
5 Expecting domains list to include DNS records List returns summaries only — use domains get <id> for the full records[] array
6 Sending a dashboard-created broadcast via CLI Only API-created broadcasts can be sent with broadcasts send — dashboard broadcasts must be sent from the dashboard
7 Passing --events to webhooks update expecting additive behavior --events replaces the entire subscription list — always pass the complete set

Common Patterns

Send an email:

bash
resend emails send --from "you@domain.com" --to user@example.com --subject "Hello" --text "Body"

Send a React Email template (.tsx):

bash
resend emails send --from "you@domain.com" --to user@example.com --subject "Welcome" --react-email ./emails/welcome.tsx

Domain setup flow:

bash
resend domains create --name example.com --region us-east-1
# Configure DNS records from output, then:
resend domains verify <domain-id>
resend domains get <domain-id>  # check status

Create and send a broadcast:

bash
resend broadcasts create --from "news@domain.com" --subject "Update" --segment-id <id> --html "<h1>Hi</h1>" --send

CI/CD (no login needed):

bash
RESEND_API_KEY=re_xxx resend emails send --from ... --to ... --subject ... --text ...

Check environment health:

bash
resend doctor -q

When to Load References

  • Sending or reading emails → references/emails.md
  • Setting up or verifying a domain → references/domains.md
  • Managing API keys → references/api-keys.md
  • Creating or sending broadcasts → references/broadcasts.md
  • Managing contacts, segments, or topics → references/contacts.md, references/segments.md, references/topics.md
  • Defining contact properties → references/contact-properties.md
  • Working with templates → references/templates.md
  • Setting up webhooks or listening for events → references/webhooks.md
  • Auth, profiles, or health checks → references/auth.md
  • Multi-step recipes (setup, CI/CD, broadcast workflow) → references/workflows.md
  • Command failed with an error → references/error-codes.md
  • Resend SDK integration (Node.js, Python, Go, etc.) → Install the resend skill
  • AI agent email inbox → Install the agent-email-inbox skill

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

resend/resend-skills

react-email

Use when creating HTML email templates with React components - welcome emails, password resets, notifications, order confirmations, newsletters, or transactional emails.

96 14
Explore
resend/resend-skills

resend

Use when working with the Resend email API — sending transactional emails (single or batch), receiving inbound emails via webhooks, managing email templates, tracking delivery events, managing domains, contacts, broadcasts, webhooks, API keys, viewing API request logs, or setting up the Resend SDK. Always use this skill when the user mentions Resend, even for simple tasks like "send an email with Resend" — the skill contains critical gotchas (idempotency keys, webhook verification, template variable syntax) that prevent common production issues.

96 14
Explore
resend/resend-skills

agent-email-inbox

Use when building any system where email content triggers actions — AI agent inboxes, automated support handlers, email-to-task pipelines, or any workflow processing untrusted inbound email. Always use this skill when the user wants to receive emails and act on them programmatically, even if they don't mention "agent" — the skill contains critical security patterns (sender allowlists, content filtering, sandboxed processing) that prevent untrusted email from controlling your system.

96 14
Explore
resend/resend-skills

email-best-practices

Use when building email features, emails going to spam, high bounce rates, setting up SPF/DKIM/DMARC authentication, implementing email capture, ensuring compliance (CAN-SPAM, GDPR, CASL), handling webhooks, retry logic, or deciding transactional vs marketing.

96 14
Explore
resend/react-email

react-email

Use when creating HTML email templates with React components - welcome emails, password resets, notifications, order confirmations, newsletters, or transactional emails.

18,318 950
Explore
resend/design-skills

resend-brand

Use when creating Resend marketing materials, documents, presentations, or visual content. Triggers for Resend brand, Resend style, or Resend visual identity requests.

18 2
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results