resend-cli 2.20.0 → 2.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "resend-cli",
3
- "version": "2.20.0",
3
+ "version": "2.21.0",
4
4
  "description": "The official CLI for Resend",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -46,7 +46,7 @@
46
46
  "esbuild": "0.28.1",
47
47
  "esbuild-wasm": "0.28.0",
48
48
  "picocolors": "1.1.1",
49
- "resend": "6.27.0"
49
+ "resend": "6.28.0"
50
50
  },
51
51
  "pkg": {
52
52
  "scripts": [
@@ -13,7 +13,7 @@ metadata:
13
13
  author: resend
14
14
  # Skill version is independent from the CLI/package.json version —
15
15
  # bump it on skill content changes, not CLI releases.
16
- version: "2.12.0"
16
+ version: "2.13.0"
17
17
  homepage: https://resend.com/docs/cli-agents
18
18
  source: https://github.com/resend/resend-cli
19
19
  openclaw:
@@ -139,7 +139,7 @@ Auth resolves: `RESEND_API_KEY` env > config file (`resend login --key`). Use `-
139
139
  | `api-keys` | create, list, update, delete |
140
140
  | `automations` | create, get, list, update, delete, duplicate, stop, open, runs |
141
141
  | `events` | create, get, list, update, delete, send, open |
142
- | `broadcasts` | create, send, get, update, delete, list, cancel, open, clicked-links, recipients |
142
+ | `broadcasts` | create, send, get, update, delete, list, cancel, duplicate, open, clicked-links, recipients |
143
143
  | `contacts` | create, update, delete, segments, topics, imports |
144
144
  | `contact-properties` | create, update, delete, list |
145
145
  | `segments` | create, get, list, update, delete, contacts |
@@ -158,7 +158,7 @@ Read the matching reference file for detailed flags and output shapes.
158
158
  | # | Mistake | Fix |
159
159
  |---|---------|-----|
160
160
  | 1 | **Forgetting `--yes` on delete commands** | All `delete`/`rm` subcommands require `--yes` in non-interactive mode — otherwise the CLI exits with an error |
161
- | 2 | **Not saving webhook `signing_secret`** | `webhooks create` shows the secret once only — it cannot be retrieved later. Capture it from command output immediately |
161
+ | 2 | **Losing the webhook `signing_secret`** | `webhooks create` returns it, and `webhooks get` returns it again. Use `webhooks rotate-signing-secret` if it leaked |
162
162
  | 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 |
163
163
  | 4 | **Passing `--scheduled-at` as a flag to batch** | There is no `--scheduled-at` flag on `emails batch` — set `scheduled_at` per-email in the JSON file instead |
164
164
  | 5 | **Expecting `domains list` to include DNS records** | List returns summaries only — use `domains get <id>` for the full `records[]` array |
@@ -102,6 +102,14 @@ Cancelling a queued broadcast stops it mid-send — emails already sent are not
102
102
 
103
103
  ---
104
104
 
105
+ ## broadcasts duplicate
106
+
107
+ **Argument:** `<id>` — Broadcast ID
108
+
109
+ 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.
110
+
111
+ ---
112
+
105
113
  ## broadcasts delete
106
114
 
107
115
  **Argument:** `<id>` — Broadcast ID
@@ -26,7 +26,7 @@ Detailed flag specifications for `resend webhooks` commands.
26
26
  - Contact: `contact.created`, `contact.updated`, `contact.deleted`
27
27
  - Domain: `domain.created`, `domain.updated`, `domain.deleted`
28
28
 
29
- **Output includes `signing_secret`** — shown once only. Save immediately.
29
+ **Output includes `signing_secret`.** `webhooks get` returns it again.
30
30
 
31
31
  ---
32
32
 
@@ -34,7 +34,7 @@ Detailed flag specifications for `resend webhooks` commands.
34
34
 
35
35
  **Argument:** `<id>` — Webhook ID
36
36
 
37
- **Note:** `signing_secret` is NOT returned by get (only at creation or rotation).
37
+ Returns the webhook including its `signing_secret`.
38
38
 
39
39
  ---
40
40
 
@@ -68,8 +68,7 @@ Generates a new signing secret. For 24 hours, payloads are signed with both the
68
68
  new and the previous secret, so either one verifies them. After that, only the
69
69
  new secret does.
70
70
 
71
- Returns `{"object":"webhook","id":"<uuid>","signing_secret":"whsec_..."}` —
72
- **shown once only**, save immediately.
71
+ Returns `{"object":"webhook","id":"<uuid>","signing_secret":"whsec_..."}`.
73
72
 
74
73
  ---
75
74
 
@@ -165,7 +165,7 @@ resend webhooks create \
165
165
  --endpoint https://yourapp.com/webhooks/resend \
166
166
  --events email.delivered email.bounced email.complained
167
167
 
168
- # IMPORTANT: Save the signing_secret from output — shown once only
168
+ # Use the signing_secret from output to verify payloads; "resend webhooks get" returns it again
169
169
 
170
170
  # Or subscribe to all events
171
171
  resend webhooks create \