All skills
resend avatar

/resend-cli

@edbfece official
by resendresend/resend-skills193 stars
28

Operate the Resend platform from the terminal — send emails (including React Email .tsx templates via --react-email), manage domains, contacts, broadcasts, templates, webhooks, API keys, logs, automations, and events 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.

Use this Skill: https://skilld.dev/gh/resend/resend-skills/resend-cli

This session only. Nothing lands on disk.

referencesbroadcasts.md

≈1.3k tokens on demand. Your agent reads this file only when SKILL.md points to it.

broadcasts

Detailed flag specifications for resend broadcasts commands.


broadcasts list

Flag Type Default Description
--limit <n> number 10 Max results (1-100)
--after <cursor> string — Forward pagination
--before <cursor> string — Backward pagination

broadcasts create

Flag Type Required Description
--from <address> string Yes Sender address
--subject <subject> string Yes Email subject
--segment-id <id> string Yes Target segment
--html <html> string At least one body flag HTML body (supports {{{PROPERTY|fallback}}})
--html-file <path> string At least one body flag Path to HTML file (use "-" for stdin)
--text <text> string At least one body flag Plain-text body
--react-email <path> string At least one body flag Path to React Email template (.tsx) — bundles and renders to HTML. Compatible with --text for plain-text fallback
--text-file <path> string At least one body flag Path to plain-text file (use "-" for stdin)
--name <name> string No Internal label
--reply-to <address> string No Reply-to address
--preview-text <text> string No Preview text
--topic-id <id> string No Topic for subscription filtering
--send boolean No Send immediately (default: save as draft)
--scheduled-at <datetime> string No Schedule delivery — ISO 8601 or natural language (only with --send)

broadcasts get

Argument: <id> — Broadcast ID

Returns full object with html/text, from, subject, status (draft|queued|sent), timestamps.


broadcasts recipients

Argument: [id] — Broadcast ID

Flag Type Required Description
--type <type> string Yes (non-interactive) Event to filter by: sent, delivered, opened, clicked, bounced, complained, unsubscribed, suppressed
--email <email> string No Substring filter on recipient email
--bounce-type <type> string No Bounce classification: permanent, transient, undetermined — only meaningful when --type bounced
--limit <n> number No Max results (1-100, default 20)
--after <cursor> string No Forward pagination
--before <cursor> string No Backward pagination

Returns id (opaque pagination cursor), contact_id (nullable), email, and, depending on --type: count (opened/clicked), bounce_type (bounced), clicked_links (clicked).

Note: Responses are cached for up to 15 minutes, so requesting the same page again may return slightly stale data within that window.


broadcasts send

Send a draft broadcast.

Argument: <id> — Broadcast ID

Flag Type Required Description
--scheduled-at <datetime> string No Schedule instead of immediate send — ISO 8601 or natural language

Note: Dashboard-created broadcasts cannot be sent via API.


broadcasts update

Argument: <id> — Broadcast ID (must be draft)

Flag Type Description
--from <address> string Update sender
--subject <subject> string Update subject
--html <html> string Update HTML body
--html-file <path> string Path to HTML file
--text <text> string Update plain-text body
--react-email <path> string Path to React Email template (.tsx) — bundles and renders to HTML
--name <name> string Update internal label

broadcasts cancel

Cancel a queued or scheduled broadcast without removing it.

Argument: <id> — Broadcast ID

Cancelling a queued broadcast stops it mid-send — emails already sent are not affected. Cancelling a scheduled broadcast reverts it to draft. Draft and sent broadcasts cannot be cancelled.


broadcasts duplicate

Argument: <id> — Broadcast ID

The copy is a draft named <name> (copy), truncated to 70 characters, with the same segment, topic, from, subject, reply-to, preview text, and content. Any broadcast can be duplicated, including sent ones.


broadcasts delete

Argument: <id> — Broadcast ID

Flag Type Required Description
--yes boolean Yes (non-interactive) Skip confirmation

Alias: rm


broadcasts open

Open a broadcast (or the broadcasts list) in the Resend dashboard.

Argument: [id] — Broadcast ID (omit to open the list)


broadcasts clicked-links

List the links clicked in a broadcast, ranked by total clicks.

Argument: [id] — Broadcast ID

Flag Type Default Description
--limit <n> number 10 Max results (1-100)
--after <cursor> string — Forward pagination
--before <cursor> string — Backward pagination

Source: SKILL.md on GitHub

1 warning1d4 checks · Risk SAFE
  • Gen Agent Trust Hub1d

    This skill provides a comprehensive CLI for managing the Resend email platform. It includes robust documentation on credential safety, preventing accidental API key exposure, and specifically warns agents about treating inbound email content as untrusted data. The skill is published by the official Resend team and uses standard development practices.

  • Socket1d

    No alerts

  • Snyk1d

    Risk: MEDIUM · 1 issue

  • ZeroLeaks5mo

    1 finding · Score: 82/100

Signed by skilld at edbfece. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 days ago.

Activeupdated 2 days ago
Other metadata
metadata
{
  "author": "resend",
  "version": "2.15.0",
  "homepage": "https://resend.com/docs/cli-agents",
  "source": "https://github.com/resend/resend-cli",
  "openclaw": {
    "primaryEnv": "RESEND_API_KEY",
    "requires": {
      "env": [
        "RESEND_API_KEY"
      ],
      "bins": [
        "resend"
      ]
    },
    "envVars": [
      {
        "name": "RESEND_API_KEY",
        "required": true,
        "description": "Resend API key for authenticating CLI commands"
      },
      {
        "name": "RESEND_PROFILE",
        "required": false,
        "description": "Named auth profile for multi-account setups"
      }
    ],
    "install": [
      {
        "kind": "node",
        "package": "resend-cli",
        "bins": [
          "resend"
        ],
        "label": "Resend CLI"
      }
    ],
    "links": {
      "repository": "https://github.com/resend/resend-cli",
      "documentation": "https://resend.com/docs/cli"
    }
  }
}
inputs
[
  {
    "name": "RESEND_API_KEY",
    "description": "Resend API key for authenticating CLI commands. Get yours at https://resend.com/api-keys",
    "required": true
  },
  {
    "name": "RESEND_PROFILE",
    "description": "Named auth profile for multi-account setups. Selects which stored API key to use (see `resend auth`).",
    "required": false
  }
]
references
[
  "references/emails.md",
  "references/domains.md",
  "references/api-keys.md",
  "references/automations.md",
  "references/broadcasts.md",
  "references/contacts.md",
  "references/contact-properties.md",
  "references/segments.md",
  "references/templates.md",
  "references/topics.md",
  "references/logs.md",
  "references/careers.md",
  "references/suppressions.md",
  "references/webhooks.md",
  "references/auth.md",
  "references/workflows.md",
  "references/error-codes.md"
]
  • CLI
  • resend
  • email
  • react-email
  • domains
  • broadcasts
  • contacts
  • automations
  • webhooks
  • ci-cd

README badge

README badge for resend/resend-skills/resend-cli

Operate the Resend email platform from the terminal—send emails via React Email templates, manage domains, contacts, broadcasts, templates, webhooks, API keys, and automations using the `resend` CLI. Targets shell scripts, CI/CD pipelines, and agent workflows that need programmatic email operations without interactive prompts.

Generated from the current SKILL.md.

Does this skill work in non-interactive environments like CI/CD?
Yes. The CLI auto-detects non-TTY and outputs JSON without prompting. Set RESEND_API_KEY in the environment, use --quiet to suppress spinners, and pass --yes on all delete commands.
Can I send React Email .tsx templates with this skill?
Yes. Use `resend emails send --react-email ./path/to/template.tsx` along with required flags like --from, --to, and --subject.
What authentication methods does the CLI support?
The CLI resolves auth via --api-key flag, RESEND_API_KEY environment variable, or a stored profile (resend login). Use RESEND_PROFILE or --profile for multi-account setups.
Does this skill support dry-run validation?
Only `emails send` and `broadcasts create` support --dry-run. They validate the payload and print the request without calling the API. Other commands like `emails batch` and `broadcasts send` do not support dry-run.
What happens if I forget --yes on a delete command?
The CLI exits with an error in non-interactive mode and does not prompt. All delete/rm subcommands require --yes when stdin is not a TTY.

Generated from the current SKILL.md. These answers refresh after source changes.