resend-cli 2.22.0-preview-inboxes.1 → 2.22.0-preview-inboxes.3

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.22.0-preview-inboxes.1",
3
+ "version": "2.22.0-preview-inboxes.3",
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.28.1-preview-inboxes.0"
49
+ "resend": "6.32.1-preview-inboxes.1"
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.18.0"
16
+ version: "2.20.0"
17
17
  homepage: https://resend.com/docs/cli-agents
18
18
  source: https://github.com/resend/resend-cli
19
19
  openclaw:
@@ -137,7 +137,7 @@ Auth resolves: `RESEND_API_KEY` env > config file (`resend login --key`). Use `-
137
137
  | `logs` | list, get, open |
138
138
  | `careers` | list, apply — browse open positions at Resend and apply |
139
139
  | `suppressions` _(beta)_ | list, add, get, delete, batch — requires account enrollment |
140
- | `inboxes` _(beta)_ | create, list, get, update, delete, threads (list, get, update, delete, emails get/reply/forward), labels, drafts — requires account enrollment |
140
+ | `inboxes` _(beta)_ | create, list, get, update, delete, threads (list, get, update, delete, emails list/get/reply/forward), labels, drafts — requires account enrollment |
141
141
  | `api-keys` | create, list, update, delete |
142
142
  | `automations` | create, get, list, update, delete, duplicate, stop, open, runs |
143
143
  | `events` | create, get, list, update, delete, send, open |
@@ -6,9 +6,10 @@ Detailed flag specifications for `resend inboxes` commands.
6
6
  > `--help` but return an API error unless inboxes is enabled for your account.
7
7
  > Reach out to Resend to join the beta.
8
8
 
9
- An inbox is an email address at one of your verified domains (with receiving
10
- enabled) that can receive email. Received messages are grouped into threads
11
- inside the inbox. Inboxes require a **full-access** API key — sending-only keys
9
+ An inbox is an email address at one of your verified domains that sends and
10
+ receives email. Receiving must be enabled on the domain, unless the inbox is
11
+ created with `--forwarding`. Received messages are grouped into threads inside
12
+ the inbox. Inboxes require a **full-access** API key — sending-only keys
12
13
  are rejected.
13
14
 
14
15
  ---
@@ -21,10 +22,10 @@ Create a new inbox at one of your verified domains.
21
22
  |------|------|----------|-------------|
22
23
  | `--email_address <address>` | string | Yes (non-interactive) | Address for the inbox, e.g. `support@yourdomain.com` |
23
24
  | `--name <name>` | string | No | Inbox name shown in the dashboard (max 64 chars) |
24
- | `--friendly_name <name>` | string | No | Name used when sending from this inbox, e.g. `Ada from Support` |
25
- | `--forwarding` | boolean | No | Enable forwarding — received emails are also forwarded to a generated forwarding address |
25
+ | `--from_name <name>` | string | No | Name used when sending from this inbox, e.g. `Ada from Support`. A plain name, not `Name <email>` |
26
+ | `--forwarding` | boolean | No | Receive mail without an MX record — Resend returns a `receiving_address` to forward mail to |
26
27
 
27
- **Output:** `{"object":"inbox","id":"<uuid>","name":"<name>","email_address":"<address>","domain_id":"<uuid>","forwarding_address":"<address>"|null,"unread":0,"created_at":"<date>"}`
28
+ **Output:** `{"object":"inbox","id":"<uuid>","name":"<name>","email_address":"<address>","domain_id":"<uuid>","receiving_address":"<address>"|null,"from_name":"<name>"|null,"unread":0,"drafts":0,"last_received":"<date>"|null,"created_at":"<date>"}`
28
29
 
29
30
  ---
30
31
 
@@ -40,23 +41,23 @@ List all inboxes (default subcommand — `resend inboxes` alone runs it).
40
41
 
41
42
  **Alias:** `ls`
42
43
 
43
- **Output:** `{"object":"list","has_more":false,"data":[{"id":"<uuid>","name":"<name>"|null,"email_address":"<address>","unread":0,"last_received":"<date>"|null}]}`
44
+ **Output:** `{"object":"list","has_more":false,"data":[{"id":"<uuid>","name":"<name>"|null,"email_address":"<address>","from_name":"<name>"|null,"unread":0,"last_received":"<date>"|null}]}`
44
45
 
45
46
  ---
46
47
 
47
48
  ## inboxes get
48
49
 
49
- Retrieve a single inbox.
50
+ Retrieve a single inbox by ID or email address.
50
51
 
51
- **Argument:** `<id>` — inbox UUID (required in non-interactive mode)
52
+ **Argument:** `<id>` — inbox UUID or inbox email address, e.g. `support@yourdomain.com` (required in non-interactive mode)
52
53
 
53
- **Output:** `{"object":"inbox","id":"<uuid>","name":"<name>"|null,"email_address":"<address>","forwarding_address":"<address>"|null,"unread":0,"drafts":0,"last_received":"<date>"|null}`
54
+ **Output:** `{"object":"inbox","id":"<uuid>","name":"<name>","email_address":"<address>","domain_id":"<uuid>","receiving_address":"<address>"|null,"from_name":"<name>"|null,"unread":0,"drafts":0,"last_received":"<date>"|null,"created_at":"<date>"}`
54
55
 
55
56
  ---
56
57
 
57
58
  ## inboxes update
58
59
 
59
- Update an inbox's name or friendly name. At least one option is required.
60
+ Update an inbox's name or from name. At least one option is required.
60
61
  The email address cannot be changed after creation.
61
62
 
62
63
  **Argument:** `<id>` — inbox UUID
@@ -64,7 +65,7 @@ The email address cannot be changed after creation.
64
65
  | Flag | Type | Description |
65
66
  |------|------|-------------|
66
67
  | `--name <name>` | string | New inbox name (max 64 chars) |
67
- | `--friendly_name <name>` | string | New name used when sending from this inbox |
68
+ | `--from_name <name>` | string | New name used when sending from this inbox. A plain name, not `Name <email>`. Pass `""` to clear it |
68
69
 
69
70
  **Output:** `{"object":"inbox","id":"<uuid>"}`
70
71
 
@@ -73,32 +74,33 @@ The email address cannot be changed after creation.
73
74
  ## inboxes threads list
74
75
 
75
76
  List threads in an inbox (default subcommand of `resend inboxes threads`).
76
- Pages are fixed at 50 threads, newest activity first — there is no `--limit`.
77
+ Threads are ordered by newest activity first.
77
78
 
78
79
  **Flags:** `--inbox_id <id>` — required in non-interactive mode
79
80
 
80
81
  | Flag | Type | Default | Description |
81
82
  |------|------|---------|-------------|
82
83
  | `--folder <folder>` | string | `inbox` | One of `inbox`, `archive`, `spam`, `sent`, `trash` |
83
- | `--query <text>` | string | — | Search subject, sender, and label names |
84
- | `--from <sender>` | string | — | Filter by sender address or name |
84
+ | `--query <text>` | string | — | Case-insensitive match against thread subjects and label names |
85
85
  | `--label <label_id>` | string | — | Filter by label **UUID** (not name); repeat for multiple |
86
- | `--cursor <cursor>` | string | — | `next_cursor` from a previous response |
86
+ | `--limit <n>` | number | 10 | Max results, 1-100 |
87
+ | `--after <cursor>` | string | — | Forward pagination cursor (a thread ID) |
88
+ | `--before <cursor>` | string | — | Backward pagination cursor (a thread ID) |
87
89
 
88
90
  **Alias:** `ls`
89
91
 
90
- **Output:** `{"object":"list","has_more":false,"next_cursor":"<cursor>"|null,"data":[{"id":"<uuid>","subject":"<subject>"|null,"from":"<sender>"|null,"to":[],"cc":[],"bcc":[],"labels":[],"message_count":1,"has_attachment":false,"has_draft":false,"read":false,"received_at":"<date>"}]}`
92
+ **Output:** `{"object":"list","has_more":false,"data":[{"id":"<uuid>","subject":"<subject>"|null,"from":"<sender>"|null,"to":[],"cc":[],"bcc":[],"labels":[],"message_count":1,"has_attachment":false,"has_draft":false,"read":false,"received_at":"<date>"}]}`
91
93
 
92
94
  ---
93
95
 
94
96
  ## inboxes threads get
95
97
 
96
- Retrieve a thread with every message inline, including `html` and `text`
97
- bodies. Use the message `id` values as the email ID for replies.
98
+ Retrieve a thread's summary. To read its messages, use
99
+ `inboxes threads emails list`.
98
100
 
99
101
  **Flags:** `--inbox_id <id> --thread_id <id>` — required in non-interactive mode
100
102
 
101
- **Output:** `{"object":"inbox_thread","id":"<uuid>","subject":"<subject>"|null,"folder":"inbox","labels":[],"read":true,"messages":{"has_more":false,"data":[{"id":"<uuid>","direction":"inbound|outbound","from":"<sender>","to":[],"subject":"<subject>"|null,"html":"<html>"|null,"text":"<text>"|null,"attachments":[],"read":true,"received_at":"<date>"}]}}`
103
+ **Output:** `{"object":"inbox_thread","id":"<uuid>","subject":"<subject>"|null,"folder":"inbox|archive|spam|sent|trash","labels":[],"read":true}`
102
104
 
103
105
  ---
104
106
 
@@ -136,31 +138,54 @@ Delete a thread and all of its messages.
136
138
 
137
139
  ---
138
140
 
141
+ ## inboxes threads emails list
142
+
143
+ List the emails in a thread, oldest first, with their `html` and `text` bodies
144
+ (default subcommand of `resend inboxes threads emails`). Use the email `id`
145
+ values with `emails get`, `reply`, and `forward`.
146
+
147
+ **Flags:** `--inbox_id <id> --thread_id <id>` — required in non-interactive mode
148
+
149
+ | Flag | Type | Default | Description |
150
+ |------|------|---------|-------------|
151
+ | `--limit <n>` | number | 10 | Max results, 1-100 |
152
+ | `--after <cursor>` | string | — | Forward pagination cursor (an email ID) |
153
+ | `--before <cursor>` | string | — | Backward pagination cursor (an email ID) |
154
+
155
+ **Alias:** `ls`
156
+
157
+ **Output:** `{"object":"list","has_more":false,"data":[{"id":"<uuid>","direction":"inbound|outbound","from":"<sender>","to":[],"cc":[],"bcc":[],"reply_to":[],"subject":"<subject>"|null,"message_id":"<message-id>"|null,"html":"<html>"|null,"text":"<text>"|null,"attachments":[],"read":true,"received_at":"<date>"}]}`
158
+
159
+ ---
160
+
139
161
  ## inboxes threads emails get
140
162
 
141
163
  Retrieve a single email from a thread.
142
164
 
143
165
  **Flags:** `--inbox_id <id> --thread_id <id> --email_id <id>` — required in non-interactive mode
144
166
 
145
- **Output:** `{"id":"<uuid>","direction":"inbound|outbound","from":"<sender>","to":[],"cc":[],"bcc":[],"reply_to":[],"subject":"<subject>"|null,"html":"<html>"|null,"text":"<text>"|null,"attachments":[{"id":"<id>","filename":"<name>"|null,"size":123}],"read":true,"received_at":"<date>"}`
167
+ **Output:** `{"id":"<uuid>","direction":"inbound|outbound","from":"<sender>","to":[],"cc":[],"bcc":[],"reply_to":[],"subject":"<subject>"|null,"message_id":"<message-id>"|null,"html":"<html>"|null,"text":"<text>"|null,"attachments":[{"id":"<id>","filename":"<name>"|null,"size":123|null}],"read":true,"received_at":"<date>"}`
146
168
 
147
169
  ---
148
170
 
149
171
  ## inboxes threads emails reply
150
172
 
151
173
  Reply to a specific email in a thread. The reply is sent from the inbox
152
- address to the sender of the original email.
174
+ address. The recipient comes from the original email. The total number of
175
+ recipients cannot exceed 50.
153
176
 
154
177
  **Flags:** `--inbox_id <id> --thread_id <id> --email_id <id>` — required in
155
- non-interactive mode; the email ID comes from `inboxes threads get`
178
+ non-interactive mode; the email ID comes from `inboxes threads emails list`
156
179
 
157
180
  | Flag | Type | Required | Description |
158
181
  |------|------|----------|-------------|
182
+ | `--cc <address>` | string | No | Cc address; repeat for multiple. Not copied from the original email |
183
+ | `--bcc <address>` | string | No | Bcc address; repeat for multiple. Not copied from the original email |
159
184
  | `--text <text>` | string | One of text/html | Plain text reply body |
160
185
  | `--html <html>` | string | One of text/html | HTML reply body |
161
186
  | `--subject <subject>` | string | No | Override the reply subject |
162
187
 
163
- **Output:** `{"id":"<uuid>","email_id":"<uuid>","direction":"outbound","from":"<inbox-address>","to":["<recipient>"],"text":"<text>"|null,"html":"<html>"|null,"read":true,"received_at":"<date>"}`
188
+ **Output:** `{"id":"<uuid>","email_id":"<uuid>","direction":"outbound","from":"<inbox-address>","to":["<recipient>"],"cc":[],"bcc":[],"reply_to":[],"subject":"<subject>"|null,"message_id":"<message-id>"|null,"html":"<html>"|null,"text":"<text>"|null,"attachments":[],"read":true,"received_at":"<date>"}`
164
189
 
165
190
  ---
166
191
 
@@ -173,11 +198,15 @@ Forward an email to other recipients from the inbox address.
173
198
  | Flag | Type | Required | Description |
174
199
  |------|------|----------|-------------|
175
200
  | `--to <address>` | string | Yes | Recipient; repeat the flag for multiple |
201
+ | `--cc <address>` | string | No | Cc address; repeat for multiple |
202
+ | `--bcc <address>` | string | No | Bcc address; repeat for multiple |
176
203
  | `--text <text>` | string | No | Plain text note to include |
177
204
  | `--html <html>` | string | No | HTML note to include |
178
205
  | `--subject <subject>` | string | No | Override the forwarded subject |
179
206
 
180
- **Output:** `{"id":"<uuid>","email_id":"<uuid>","direction":"outbound","from":"<inbox-address>","to":["<recipient>"],"text":"<text>"|null,"html":"<html>"|null,"attachments":[],"read":true,"received_at":"<date>"}`
207
+ `--to`, `--cc`, and `--bcc` combined cannot exceed 50 recipients.
208
+
209
+ **Output:** `{"id":"<uuid>","email_id":"<uuid>","direction":"outbound","from":"<inbox-address>","to":["<recipient>"],"cc":[],"bcc":[],"reply_to":[],"subject":"<subject>"|null,"message_id":"<message-id>"|null,"html":"<html>"|null,"text":"<text>"|null,"attachments":[],"read":true,"received_at":"<date>"}`
181
210
 
182
211
  ---
183
212
 
@@ -191,7 +220,7 @@ List all labels in an inbox (not paginated; default subcommand of
191
220
 
192
221
  **Alias:** `ls`
193
222
 
194
- **Output:** `{"object":"list","has_more":false,"data":[{"id":"<uuid>","name":"<name>","color":"<color>","created_at":"<date>"}]}`
223
+ **Output:** `{"object":"list","data":[{"id":"<uuid>","name":"<name>","color":"<color>","created_at":"<date>"}]}`
195
224
 
196
225
  ---
197
226
 
@@ -244,25 +273,27 @@ Delete a label. It is removed from every thread that has it.
244
273
  ## inboxes drafts list
245
274
 
246
275
  List drafts in an inbox (default subcommand of `resend inboxes drafts`).
247
- Opaque cursor pagination like threads — no `--limit`.
248
276
 
249
277
  **Flags:** `--inbox_id <id>` — required in non-interactive mode
250
278
 
251
- | Flag | Type | Description |
252
- |------|------|-------------|
253
- | `--cursor <cursor>` | string | `next_cursor` from a previous response |
279
+ | Flag | Type | Default | Description |
280
+ |------|------|---------|-------------|
281
+ | `--limit <n>` | number | 10 | Max results, 1-100 |
282
+ | `--after <cursor>` | string | — | Forward pagination cursor (a draft ID) |
283
+ | `--before <cursor>` | string | — | Backward pagination cursor (a draft ID) |
254
284
 
255
285
  **Alias:** `ls`
256
286
 
257
- **Output:** `{"object":"list","has_more":false,"next_cursor":"<cursor>"|null,"data":[{"id":"<uuid>","type":"standalone|reply","to":["<address>"]|null,"cc":[],"bcc":[],"subject":"<subject>"|null,"snippet":"<text>"|null,"thread_id":"<uuid>"|null,"reply_to_email_id":"<uuid>"|null,"updated_at":"<date>"}]}`
287
+ **Output:** `{"object":"list","has_more":false,"data":[{"id":"<uuid>","type":"standalone|reply","to":["<address>"]|null,"cc":[],"bcc":[],"subject":"<subject>"|null,"snippet":"<text>"|null,"thread_id":"<uuid>"|null,"reply_to_email_id":"<uuid>"|null,"updated_at":"<date>"}]}`
258
288
 
259
289
  ---
260
290
 
261
291
  ## inboxes drafts create
262
292
 
263
293
  Create a standalone draft, or a reply draft when `--thread_id` and
264
- `--reply_to_email_id` are passed **together**. At least one content field is
265
- required.
294
+ `--reply_to_email_id` are passed **together**. A reply draft does not copy
295
+ recipients from the email it replies to, so set `--to` before you send it. At
296
+ least one content field is required. Combined recipients cannot exceed 50.
266
297
 
267
298
  **Flags:** `--inbox_id <id>` — required in non-interactive mode
268
299
 
@@ -21,11 +21,13 @@ Detailed flag specifications for `resend webhooks` commands.
21
21
  | `--endpoint <url>` | string | Yes (non-interactive) | HTTPS webhook URL |
22
22
  | `--events <events...>` | string[] | Yes (non-interactive) | Event types or `all` |
23
23
 
24
- **All 19 events:**
24
+ **All 37 events:**
25
25
  - Email: `email.sent`, `email.delivered`, `email.delivery_delayed`, `email.bounced`, `email.complained`, `email.opened`, `email.clicked`, `email.failed`, `email.scheduled`, `email.suppressed`, `email.received`
26
- - Contact: `contact.created`, `contact.updated`, `contact.deleted`
26
+ - Contact: `contact.created`, `contact.updated`, `contact.deleted`, `contact.topics.updated`
27
27
  - Domain: `domain.created`, `domain.updated`, `domain.deleted`
28
28
  - Suppression: `suppression.added`, `suppression.removed`
29
+ - Topic: `topic.created`, `topic.updated`, `topic.deleted`
30
+ - Inbox (beta): `inbox.created`, `inbox.updated`, `inbox.deleted`, `inbox.thread.created`, `inbox.email.received`, `inbox.email.sent`, `inbox.thread.folder.updated`, `inbox.thread.assigned`, `inbox.thread.unassigned`, `inbox.thread.labels.updated`, `inbox.draft.created`, `inbox.draft.updated`, `inbox.draft.sent`, `inbox.draft.deleted`
29
31
 
30
32
  **Output includes `signing_secret`.** `webhooks get` returns it again.
31
33