Claude Agent Skill · by Resend

Resend Cli

Install Resend Cli skill for Claude Code from resend/resend-skills.

Install
Terminal · npx
$npx skills add https://github.com/inferen-sh/skills --skill infsh-cli
Works with Paperclip

How Resend Cli fits into a Paperclip company.

Resend Cli drops into any Paperclip agent that handles this kind of work. Assign it to a specialist inside a pre-configured PaperclipOrg company and the skill becomes available on every heartbeat — no prompt engineering, no tool wiring.

S
SaaS FactoryPaired

Pre-configured AI company — 18 agents, 18 skills, one-time purchase.

$27$59
Explore pack
Source file
SKILL.md218 lines
Expand
---name: resend-clidescription: >  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.license: MITmetadata:  author: resend  version: "2.0.1"  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/cliinputs:  - 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: falsereferences:  - 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/webhooks.md  - references/auth.md  - references/workflows.md  - references/error-codes.md--- # Resend CLI ## Installation Before running any `resend` commands, check whether the CLI is installed: ```bashresend --version``` If the command is not found, install it using one of the methods below: **cURL (macOS / Linux):**```bashcurl -fsSL https://resend.com/install.sh | bash``` **Homebrew (macOS / Linux):**```bashbrew install resend/cli/resend``` **Node.js:**```bashnpm install -g resend-cli``` **PowerShell (Windows):**```powershellirm https://resend.com/install.ps1 | iex``` After installing, verify:```bashresend --version``` ## 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 || `logs` | list, get, open || `api-keys` | create, list, delete || `automations` | create, get, list, update, delete, stop, open, runs || `events` | create, get, list, update, delete, send, open || `broadcasts` | create, send, update, delete, list || `contacts` | create, update, delete, segments, topics || `contact-properties` | create, update, delete, list || `segments` | create, get, list, delete, contacts || `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` / `commands` | Utility commands | Read the matching reference file for detailed flags and output shapes. **Dry-run:** Only `emails send` and `broadcasts create` support `--dry-run` (payload validation before send/create). They print `{ "dryRun": true, "request": { ... } }` on stdout without calling the API. There is no `--dry-run` on `emails batch`, `broadcasts send`, or other commands yet. ## 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 still go to stderr (not stdout). Use `-q` for JSON on stdout with no spinner noise on stderr || 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 || 8 | **Expecting `logs list` to include request/response bodies** | List returns summary fields only — use `logs get <id>` for full `request_body` and `response_body` | ## Common Patterns **Send an email:**```bashresend emails send --from "you@domain.com" --to user@example.com --subject "Hello" --text "Body"``` **Send a React Email template (.tsx):**```bashresend emails send --from "you@domain.com" --to user@example.com --subject "Welcome" --react-email ./emails/welcome.tsx``` **Domain setup flow:**```bashresend 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:**```bashresend broadcasts create --from "news@domain.com" --subject "Update" --segment-id <id> --html "<h1>Hi</h1>" --send``` **CI/CD (no login needed):**```bashRESEND_API_KEY=re_xxx resend emails send --from ... --to ... --subject ... --text ...``` **Check environment health:**```bashresend doctor -q``` ## When to Load References - **Sending or reading emails** → [references/emails.md](references/emails.md)- **Setting up or verifying a domain** → [references/domains.md](references/domains.md)- **Managing API keys** → [references/api-keys.md](references/api-keys.md)- **Creating or sending broadcasts** → [references/broadcasts.md](references/broadcasts.md)- **Managing contacts, segments, or topics** → [references/contacts.md](references/contacts.md), [references/segments.md](references/segments.md), [references/topics.md](references/topics.md)- **Defining contact properties** → [references/contact-properties.md](references/contact-properties.md)- **Working with templates** → [references/templates.md](references/templates.md)- **Viewing API request logs** → [references/logs.md](references/logs.md)- **Creating automations or sending events** → [references/automations.md](references/automations.md)- **Setting up webhooks or listening for events** → [references/webhooks.md](references/webhooks.md)- **Auth, profiles, or health checks** → [references/auth.md](references/auth.md)- **Multi-step recipes** (setup, CI/CD, broadcast workflow) → [references/workflows.md](references/workflows.md)- **Command failed with an error** → [references/error-codes.md](references/error-codes.md)- **Resend SDK integration** (Node.js, Python, Go, etc.) → Install the [`resend`](https://github.com/resend/resend-skills) skill- **AI agent email inbox** → Install the [`agent-email-inbox`](https://github.com/resend/resend-skills) skill