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.

referenceswebhooks.md

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

webhooks

Detailed flag specifications for resend webhooks commands.


webhooks list

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

webhooks create

Flag Type Required Description
--endpoint <url> string Yes (non-interactive) HTTPS webhook URL
--events <events...> string[] Yes (non-interactive) Event types or all

All 23 events:

  • Email: email.sent, email.delivered, email.delivery_delayed, email.bounced, email.complained, email.opened, email.clicked, email.failed, email.scheduled, email.suppressed, email.received
  • Contact: contact.created, contact.updated, contact.deleted, contact.topics.updated
  • Domain: domain.created, domain.updated, domain.deleted
  • Suppression: suppression.added, suppression.removed
  • Topic: topic.created, topic.updated, topic.deleted

Output includes signing_secret. webhooks get returns it again.


webhooks get

Argument: <id> — Webhook ID

Returns the webhook including its signing_secret.


webhooks update

Argument: <id> — Webhook ID

Flag Type Description
--endpoint <url> string New HTTPS URL
--events <events...> string[] Replace event list (not additive)
--status <status> string enabled | disabled

webhooks delete

Argument: <id> — Webhook ID

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

webhooks rotate-signing-secret

Argument: <id> — Webhook ID

Generates a new signing secret. For 24 hours, payloads are signed with both the new and the previous secret, so either one verifies them. After that, only the new secret does.

Returns {"object":"webhook","id":"<uuid>","signing_secret":"whsec_..."}.


webhooks events list

Lists the events Resend delivered to a webhook, most recent first.

Argument: [webhookId] — Webhook ID

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

No --before. These endpoints paginate forward only.

status values: pending, attempting, success, failed.


webhooks events get

Arguments: [webhookId] [eventId]

Returns the event with next_attempt_at and the payload that was sent to your endpoint. next_attempt_at is null once the event reaches success or failed.


webhooks events attempts

Lists the delivery attempts for one event, most recent first. Each attempt records the http_status_code and response body your endpoint returned.

Arguments: [webhookId] [eventId]

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

Debugging a failed delivery:

  1. resend webhooks events list <webhook-id> — find the event
  2. resend webhooks events get <webhook-id> <event-id> — see what we sent
  3. resend webhooks events attempts <webhook-id> <event-id> — see what your endpoint returned
  4. resend webhooks events replay <webhook-id> <event-id> — queue another delivery

webhooks events replay

Queues one more delivery of the event. Does not schedule automatic retries.

Arguments: [webhookId] [eventId]

The webhook must be enabled — re-enable it first with resend webhooks update <webhook-id> --status enabled.

Returns {"object":"webhook_event","id":"<event-id>"} — no type, status, or payload (use events get for those).


webhooks listen

Start a local server that receives Resend webhook events in real time via a public tunnel URL.

Flag Type Default Description
--url <url> string — Public tunnel URL for receiving webhooks (required in non-interactive)
--forward-to <url> string — Forward payloads to this local URL (preserves Svix headers)
--events <events...> string[] all Event types to listen for
--port <port> number 4318 Local server port

Behavior:

  1. Starts a local HTTP server on --port
  2. Registers a temporary Resend webhook pointing at --url
  3. Displays incoming events in the terminal
  4. Optionally forwards payloads to --forward-to with original Svix headers
  5. Deletes the temporary webhook on exit (Ctrl+C)

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.