resend-cli 1.4.1 → 1.5.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": "1.4.1",
3
+ "version": "1.5.0",
4
4
  "description": "The official CLI for Resend",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -12,51 +12,47 @@
12
12
  "cli",
13
13
  "resend",
14
14
  "email",
15
- "api"
15
+ "api",
16
+ "tanstack-intent"
16
17
  ],
17
18
  "engines": {
18
19
  "node": ">=20"
19
20
  },
20
- "packageManager": "pnpm@10.32.1",
21
21
  "files": [
22
- "dist/cli.cjs"
22
+ "dist/cli.cjs",
23
+ "skills/"
23
24
  ],
24
25
  "type": "module",
25
26
  "bin": {
26
27
  "resend": "./dist/cli.cjs"
27
28
  },
28
- "scripts": {
29
- "dev": "tsx src/cli.ts",
30
- "dev:watch": "tsx --watch src/cli.ts",
31
- "build": "esbuild src/cli.ts --bundle --platform=node --format=cjs --minify --outfile=dist/cli.cjs",
32
- "build:bin": "pnpm build && pkg dist/cli.cjs --compress Brotli --target node24 --output dist/resend",
33
- "lint": "biome check .",
34
- "lint:fix": "biome check --write .",
35
- "typecheck": "tsc --noEmit",
36
- "test": "vitest run",
37
- "test:e2e": "vitest run --config vitest.config.e2e.ts",
38
- "prepack": "pnpm build"
39
- },
40
29
  "dependencies": {
41
30
  "@clack/prompts": "1.1.0",
42
31
  "@commander-js/extra-typings": "14.0.0",
43
32
  "commander": "14.0.3",
44
- "picocolors": "^1.1.1",
45
- "resend": "6.9.3"
46
- },
47
- "pnpm": {
48
- "onlyBuiltDependencies": [
49
- "esbuild",
50
- "@biomejs/biome"
51
- ]
33
+ "picocolors": "1.1.1",
34
+ "resend": "6.9.4"
52
35
  },
53
36
  "devDependencies": {
54
- "@biomejs/biome": "2.4.6",
37
+ "@biomejs/biome": "2.4.7",
55
38
  "@types/node": "24.12.0",
56
39
  "esbuild": "0.27.4",
57
40
  "tsx": "4.21.0",
58
41
  "typescript": "5.9.3",
59
- "vitest": "3.2.4",
42
+ "vitest": "4.1.0",
60
43
  "@yao-pkg/pkg": "6.14.1"
44
+ },
45
+ "scripts": {
46
+ "dev": "tsx src/cli.ts",
47
+ "dev:watch": "tsx --watch src/cli.ts",
48
+ "build": "esbuild src/cli.ts --bundle --platform=node --format=cjs --minify --outfile=dist/cli.cjs",
49
+ "build:bin": "pnpm build && pkg dist/cli.cjs --compress Brotli --target node24 --output dist/resend",
50
+ "lint": "biome check .",
51
+ "lint:fix": "biome check --write .",
52
+ "typecheck": "tsc --noEmit",
53
+ "test": "vitest run",
54
+ "test:e2e": "vitest run --config vitest.config.e2e.ts",
55
+ "sync-skill-version": "node scripts/sync-skill-version.mjs",
56
+ "version": "pnpm run sync-skill-version && git add skills/resend-cli/SKILL.md"
61
57
  }
62
- }
58
+ }
@@ -0,0 +1,141 @@
1
+ ---
2
+ name: resend-cli
3
+ description: >
4
+ Operate the Resend platform from the terminal — send emails, manage domains,
5
+ contacts, broadcasts, templates, webhooks, and API keys via the `resend` CLI.
6
+ Use when the user wants to run Resend commands in the shell, scripts, or CI/CD
7
+ pipelines. Always load this skill before running `resend` commands — it contains
8
+ the non-interactive flag contract and gotchas that prevent silent failures.
9
+ license: MIT
10
+ metadata:
11
+ author: resend
12
+ version: "1.5.0"
13
+ homepage: https://resend.com
14
+ source: https://github.com/resend/resend-cli
15
+ inputs:
16
+ - name: RESEND_API_KEY
17
+ description: Resend API key for authenticating CLI commands. Get yours at https://resend.com/api-keys
18
+ required: true
19
+ references:
20
+ - references/emails.md
21
+ - references/domains.md
22
+ - references/api-keys.md
23
+ - references/broadcasts.md
24
+ - references/contacts.md
25
+ - references/contact-properties.md
26
+ - references/segments.md
27
+ - references/templates.md
28
+ - references/topics.md
29
+ - references/webhooks.md
30
+ - references/auth.md
31
+ - references/workflows.md
32
+ - references/error-codes.md
33
+ ---
34
+
35
+ # Resend CLI
36
+
37
+ ## Agent Protocol
38
+
39
+ The CLI auto-detects non-TTY environments and outputs JSON — no `--json` flag needed.
40
+
41
+ **Rules for agents:**
42
+ - Supply ALL required flags. The CLI will NOT prompt when stdin is not a TTY.
43
+ - Pass `--quiet` (or `-q`) to suppress spinners and status messages.
44
+ - Exit `0` = success, `1` = error.
45
+ - Error JSON goes to stderr, success JSON goes to stdout:
46
+ ```json
47
+ {"error":{"message":"...","code":"..."}}
48
+ ```
49
+ - Use `--api-key` or `RESEND_API_KEY` env var. Never rely on interactive login.
50
+ - All `delete`/`rm` commands require `--yes` in non-interactive mode.
51
+
52
+ ## Authentication
53
+
54
+ Auth resolves: `--api-key` flag > `RESEND_API_KEY` env > config file (`resend login --key`). Use `--profile` or `RESEND_PROFILE` for multi-profile.
55
+
56
+ ## Global Flags
57
+
58
+ | Flag | Description |
59
+ |------|-------------|
60
+ | `--api-key <key>` | Override API key for this invocation |
61
+ | `-p, --profile <name>` | Select stored profile |
62
+ | `--json` | Force JSON output (auto in non-TTY) |
63
+ | `-q, --quiet` | Suppress spinners/status (implies `--json`) |
64
+
65
+ ## Available Commands
66
+
67
+ | Command Group | What it does |
68
+ |--------------|-------------|
69
+ | `emails` | send, get, list, batch, cancel, update |
70
+ | `emails receiving` | list, get, attachments, forward, listen |
71
+ | `domains` | create, verify, update, delete, list |
72
+ | `api-keys` | create, list, delete |
73
+ | `broadcasts` | create, send, update, delete, list |
74
+ | `contacts` | create, update, delete, segments, topics |
75
+ | `contact-properties` | create, update, delete, list |
76
+ | `segments` | create, get, list, delete |
77
+ | `templates` | create, publish, duplicate, delete, list |
78
+ | `topics` | create, update, delete, list |
79
+ | `webhooks` | create, update, listen, delete, list |
80
+ | `auth` | login, logout, switch, rename, remove |
81
+ | `whoami` / `doctor` / `update` / `open` | Utility commands |
82
+
83
+ Read the matching reference file for detailed flags and output shapes.
84
+
85
+ ## Common Mistakes
86
+
87
+ | # | Mistake | Fix |
88
+ |---|---------|-----|
89
+ | 1 | **Forgetting `--yes` on delete commands** | All `delete`/`rm` subcommands require `--yes` in non-interactive mode — otherwise the CLI exits with an error |
90
+ | 2 | **Not saving webhook `signing_secret`** | `webhooks create` shows the secret once only — it cannot be retrieved later. Capture it from command output immediately |
91
+ | 3 | **Omitting `--quiet` in CI** | Without `-q`, spinners and status text leak into stdout. Use `-q` to get clean JSON only |
92
+ | 4 | **Using `--scheduled-at` with batch** | Batch sending does not support `scheduled_at` — use single `emails send` instead |
93
+ | 5 | **Expecting `domains list` to include DNS records** | List returns summaries only — use `domains get <id>` for the full `records[]` array |
94
+ | 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 |
95
+ | 7 | **Passing `--events` to `webhooks update` expecting additive behavior** | `--events` replaces the entire subscription list — always pass the complete set |
96
+
97
+ ## Common Patterns
98
+
99
+ **Send an email:**
100
+ ```bash
101
+ resend emails send --from "you@domain.com" --to user@example.com --subject "Hello" --text "Body"
102
+ ```
103
+
104
+ **Domain setup flow:**
105
+ ```bash
106
+ resend domains create --name example.com --region us-east-1
107
+ # Configure DNS records from output, then:
108
+ resend domains verify <domain-id>
109
+ resend domains get <domain-id> # check status
110
+ ```
111
+
112
+ **Create and send a broadcast:**
113
+ ```bash
114
+ resend broadcasts create --from "news@domain.com" --subject "Update" --segment-id <id> --html "<h1>Hi</h1>" --send
115
+ ```
116
+
117
+ **CI/CD (no login needed):**
118
+ ```bash
119
+ RESEND_API_KEY=re_xxx resend emails send --from ... --to ... --subject ... --text ...
120
+ ```
121
+
122
+ **Check environment health:**
123
+ ```bash
124
+ resend doctor -q
125
+ ```
126
+
127
+ ## When to Load References
128
+
129
+ - **Sending or reading emails** → [references/emails.md](references/emails.md)
130
+ - **Setting up or verifying a domain** → [references/domains.md](references/domains.md)
131
+ - **Managing API keys** → [references/api-keys.md](references/api-keys.md)
132
+ - **Creating or sending broadcasts** → [references/broadcasts.md](references/broadcasts.md)
133
+ - **Managing contacts, segments, or topics** → [references/contacts.md](references/contacts.md), [references/segments.md](references/segments.md), [references/topics.md](references/topics.md)
134
+ - **Defining contact properties** → [references/contact-properties.md](references/contact-properties.md)
135
+ - **Working with templates** → [references/templates.md](references/templates.md)
136
+ - **Setting up webhooks or listening for events** → [references/webhooks.md](references/webhooks.md)
137
+ - **Auth, profiles, or health checks** → [references/auth.md](references/auth.md)
138
+ - **Multi-step recipes** (setup, CI/CD, broadcast workflow) → [references/workflows.md](references/workflows.md)
139
+ - **Command failed with an error** → [references/error-codes.md](references/error-codes.md)
140
+ - **Resend SDK integration** (Node.js, Python, Go, etc.) → Install the [`resend`](https://github.com/resend/resend-skills) skill
141
+ - **AI agent email inbox** → Install the [`agent-email-inbox`](https://github.com/resend/resend-skills) skill
@@ -0,0 +1,33 @@
1
+ # api-keys
2
+
3
+ Detailed flag specifications for `resend api-keys` commands.
4
+
5
+ ---
6
+
7
+ ## api-keys list
8
+
9
+ List all API keys (IDs, names, and `created_at` only — tokens never included).
10
+
11
+ ---
12
+
13
+ ## api-keys create
14
+
15
+ | Flag | Type | Required | Description |
16
+ |------|------|----------|-------------|
17
+ | `--name <name>` | string | Yes (non-interactive) | Key name (max 50 chars) |
18
+ | `--permission <perm>` | string | No | `full_access` (default) \| `sending_access` |
19
+ | `--domain-id <id>` | string | No | Restrict `sending_access` to one domain |
20
+
21
+ **Output:** `{"id":"...","token":"re_..."}` — token shown once only.
22
+
23
+ ---
24
+
25
+ ## api-keys delete
26
+
27
+ **Argument:** `<id>` — API key ID
28
+
29
+ | Flag | Type | Required | Description |
30
+ |------|------|----------|-------------|
31
+ | `--yes` | boolean | Yes (non-interactive) | Skip confirmation |
32
+
33
+ **Alias:** `rm`
@@ -0,0 +1,67 @@
1
+ # auth & utility
2
+
3
+ Detailed flag specifications for `resend auth` and utility commands.
4
+
5
+ ---
6
+
7
+ ## auth login
8
+
9
+ | Flag | Type | Required | Description |
10
+ |------|------|----------|-------------|
11
+ | `--key <key>` | string | Yes (non-interactive) | API key (must start with `re_`) |
12
+
13
+ ---
14
+
15
+ ## auth logout
16
+
17
+ Removes the active profile's credentials (or all profiles if no `--profile`).
18
+
19
+ ---
20
+
21
+ ## auth list
22
+
23
+ Lists all profiles with active marker.
24
+
25
+ ---
26
+
27
+ ## auth switch
28
+
29
+ **Argument:** `[name]` — Profile name (prompts in interactive if omitted)
30
+
31
+ ---
32
+
33
+ ## auth rename
34
+
35
+ **Arguments:** `[old-name]` `[new-name]` — Prompts in interactive if omitted
36
+
37
+ ---
38
+
39
+ ## auth remove
40
+
41
+ **Argument:** `[name]` — Profile name (prompts in interactive if omitted)
42
+
43
+ ---
44
+
45
+ ## whoami
46
+
47
+ No flags. Shows authentication status (local only, no network calls).
48
+
49
+ ---
50
+
51
+ ## doctor
52
+
53
+ Checks: CLI Version, API Key, Domains, AI Agents.
54
+
55
+ Exits `0` if all pass/warn, `1` if any fail.
56
+
57
+ ---
58
+
59
+ ## update
60
+
61
+ Checks GitHub releases for newer version. Shows upgrade command.
62
+
63
+ ---
64
+
65
+ ## open
66
+
67
+ Opens `https://resend.com/emails` in the default browser.
@@ -0,0 +1,81 @@
1
+ # broadcasts
2
+
3
+ Detailed flag specifications for `resend broadcasts` commands.
4
+
5
+ ---
6
+
7
+ ## broadcasts list
8
+
9
+ | Flag | Type | Default | Description |
10
+ |------|------|---------|-------------|
11
+ | `--limit <n>` | number | 10 | Max results (1-100) |
12
+ | `--after <cursor>` | string | — | Forward pagination |
13
+ | `--before <cursor>` | string | — | Backward pagination |
14
+
15
+ ---
16
+
17
+ ## broadcasts create
18
+
19
+ | Flag | Type | Required | Description |
20
+ |------|------|----------|-------------|
21
+ | `--from <address>` | string | Yes | Sender address |
22
+ | `--subject <subject>` | string | Yes | Email subject |
23
+ | `--segment-id <id>` | string | Yes | Target segment |
24
+ | `--html <html>` | string | At least one body flag | HTML body (supports `{{{PROPERTY\|fallback}}}`) |
25
+ | `--html-file <path>` | string | At least one body flag | Path to HTML file |
26
+ | `--text <text>` | string | At least one body flag | Plain-text body |
27
+ | `--name <name>` | string | No | Internal label |
28
+ | `--reply-to <address>` | string | No | Reply-to address |
29
+ | `--preview-text <text>` | string | No | Preview text |
30
+ | `--topic-id <id>` | string | No | Topic for subscription filtering |
31
+ | `--send` | boolean | No | Send immediately (default: save as draft) |
32
+ | `--scheduled-at <datetime>` | string | No | Schedule delivery (only with `--send`) |
33
+
34
+ ---
35
+
36
+ ## broadcasts get
37
+
38
+ **Argument:** `<id>` — Broadcast ID
39
+
40
+ Returns full object with html/text, from, subject, status (`draft`|`queued`|`sent`), timestamps.
41
+
42
+ ---
43
+
44
+ ## broadcasts send
45
+
46
+ Send a draft broadcast.
47
+
48
+ **Argument:** `<id>` — Broadcast ID
49
+
50
+ | Flag | Type | Required | Description |
51
+ |------|------|----------|-------------|
52
+ | `--scheduled-at <datetime>` | string | No | Schedule instead of immediate send |
53
+
54
+ **Note:** Dashboard-created broadcasts cannot be sent via API.
55
+
56
+ ---
57
+
58
+ ## broadcasts update
59
+
60
+ **Argument:** `<id>` — Broadcast ID (must be draft)
61
+
62
+ | Flag | Type | Description |
63
+ |------|------|-------------|
64
+ | `--from <address>` | string | Update sender |
65
+ | `--subject <subject>` | string | Update subject |
66
+ | `--html <html>` | string | Update HTML body |
67
+ | `--html-file <path>` | string | Path to HTML file |
68
+ | `--text <text>` | string | Update plain-text body |
69
+ | `--name <name>` | string | Update internal label |
70
+
71
+ ---
72
+
73
+ ## broadcasts delete
74
+
75
+ **Argument:** `<id>` — Broadcast ID
76
+
77
+ | Flag | Type | Required | Description |
78
+ |------|------|----------|-------------|
79
+ | `--yes` | boolean | Yes (non-interactive) | Skip confirmation |
80
+
81
+ **Alias:** `rm`
@@ -0,0 +1,56 @@
1
+ # contact-properties
2
+
3
+ Detailed flag specifications for `resend contact-properties` commands.
4
+
5
+ ---
6
+
7
+ ## contact-properties list
8
+
9
+ | Flag | Type | Default | Description |
10
+ |------|------|---------|-------------|
11
+ | `--limit <n>` | number | 10 | Max results (1-100) |
12
+ | `--after <cursor>` | string | — | Forward pagination |
13
+ | `--before <cursor>` | string | — | Backward pagination |
14
+
15
+ ---
16
+
17
+ ## contact-properties create
18
+
19
+ | Flag | Type | Required | Description |
20
+ |------|------|----------|-------------|
21
+ | `--key <key>` | string | Yes (non-interactive) | Property key name |
22
+ | `--type <type>` | string | Yes (non-interactive) | `string` \| `number` |
23
+ | `--fallback-value <value>` | string \| number | No | Default in templates (parsed as number when `--type number`) |
24
+
25
+ Reserved keys: `FIRST_NAME`, `LAST_NAME`, `EMAIL`, `UNSUBSCRIBE_URL`
26
+
27
+ ---
28
+
29
+ ## contact-properties get
30
+
31
+ **Argument:** `<id>` — Property UUID
32
+
33
+ ---
34
+
35
+ ## contact-properties update
36
+
37
+ **Argument:** `<id>` — Property UUID
38
+
39
+ | Flag | Type | Description |
40
+ |------|------|-------------|
41
+ | `--fallback-value <value>` | string | New fallback |
42
+ | `--clear-fallback-value` | boolean | Remove fallback (mutually exclusive with above) |
43
+
44
+ Key and type are immutable after creation.
45
+
46
+ ---
47
+
48
+ ## contact-properties delete
49
+
50
+ **Argument:** `<id>` — Property UUID
51
+
52
+ | Flag | Type | Required | Description |
53
+ |------|------|----------|-------------|
54
+ | `--yes` | boolean | Yes (non-interactive) | Skip confirmation |
55
+
56
+ **Warning:** Removes property from ALL contacts permanently.
@@ -0,0 +1,100 @@
1
+ # contacts
2
+
3
+ Detailed flag specifications for `resend contacts` commands.
4
+
5
+ ---
6
+
7
+ ## contacts list
8
+
9
+ | Flag | Type | Default | Description |
10
+ |------|------|---------|-------------|
11
+ | `--limit <n>` | number | 10 | Max results (1-100) |
12
+ | `--after <cursor>` | string | — | Forward pagination |
13
+ | `--before <cursor>` | string | — | Backward pagination |
14
+
15
+ ---
16
+
17
+ ## contacts create
18
+
19
+ | Flag | Type | Required | Description |
20
+ |------|------|----------|-------------|
21
+ | `--email <email>` | string | Yes | Contact email |
22
+ | `--first-name <name>` | string | No | First name |
23
+ | `--last-name <name>` | string | No | Last name |
24
+ | `--unsubscribed` | boolean | No | Globally unsubscribe |
25
+ | `--properties <json>` | string | No | Custom properties JSON |
26
+ | `--segment-id <id...>` | string[] | No | Add to segment(s) |
27
+
28
+ ---
29
+
30
+ ## contacts get
31
+
32
+ **Argument:** `<id|email>` — Contact UUID or email address (both accepted)
33
+
34
+ ---
35
+
36
+ ## contacts update
37
+
38
+ **Argument:** `<id|email>` — Contact UUID or email address
39
+
40
+ | Flag | Type | Description |
41
+ |------|------|-------------|
42
+ | `--unsubscribed` | boolean | Set unsubscribed |
43
+ | `--no-unsubscribed` | boolean | Re-subscribe |
44
+ | `--properties <json>` | string | Merge properties (set key to `null` to clear) |
45
+
46
+ ---
47
+
48
+ ## contacts delete
49
+
50
+ **Argument:** `<id|email>` — Contact UUID or email address
51
+
52
+ | Flag | Type | Required | Description |
53
+ |------|------|----------|-------------|
54
+ | `--yes` | boolean | Yes (non-interactive) | Skip confirmation |
55
+
56
+ **Alias:** `rm`
57
+
58
+ ---
59
+
60
+ ## contacts segments
61
+
62
+ List segments a contact belongs to.
63
+
64
+ **Argument:** `<id|email>` — Contact UUID or email
65
+
66
+ ---
67
+
68
+ ## contacts add-segment
69
+
70
+ **Argument:** `<contactId>` — Contact UUID or email
71
+
72
+ | Flag | Type | Required | Description |
73
+ |------|------|----------|-------------|
74
+ | `--segment-id <id>` | string | Yes (non-interactive) | Segment ID to add to |
75
+
76
+ ---
77
+
78
+ ## contacts remove-segment
79
+
80
+ **Arguments:** `<id|email>` `<segmentId>`
81
+
82
+ ---
83
+
84
+ ## contacts topics
85
+
86
+ List contact's topic subscriptions.
87
+
88
+ **Argument:** `<id|email>` — Contact UUID or email
89
+
90
+ ---
91
+
92
+ ## contacts update-topics
93
+
94
+ **Argument:** `<id|email>` — Contact UUID or email
95
+
96
+ | Flag | Type | Required | Description |
97
+ |------|------|----------|-------------|
98
+ | `--topics <json>` | string | Yes (non-interactive) | JSON array: `[{"id":"topic-uuid","subscription":"opt_in"}]` |
99
+
100
+ Subscription values: `opt_in` | `opt_out`
@@ -0,0 +1,79 @@
1
+ # domains
2
+
3
+ Detailed flag specifications for `resend domains` commands.
4
+
5
+ ---
6
+
7
+ ## domains list
8
+
9
+ List all domains.
10
+
11
+ | Flag | Type | Default | Description |
12
+ |------|------|---------|-------------|
13
+ | `--limit <n>` | number | 10 | Max results (1-100) |
14
+ | `--after <cursor>` | string | — | Forward pagination |
15
+ | `--before <cursor>` | string | — | Backward pagination |
16
+
17
+ **Note:** List does NOT include DNS records. Use `domains get` for full details.
18
+
19
+ ---
20
+
21
+ ## domains create
22
+
23
+ Create a new domain and receive DNS records to configure.
24
+
25
+ | Flag | Type | Required | Description |
26
+ |------|------|----------|-------------|
27
+ | `--name <domain>` | string | Yes (non-interactive) | Domain name (e.g., `example.com`) |
28
+ | `--region <region>` | string | No | `us-east-1` \| `eu-west-1` \| `sa-east-1` \| `ap-northeast-1` |
29
+ | `--tls <mode>` | string | No | `opportunistic` (default) \| `enforced` |
30
+ | `--sending` | boolean | No | Enable sending (default: enabled) |
31
+ | `--receiving` | boolean | No | Enable receiving (default: disabled) |
32
+
33
+ **Output:** Domain object with `records[]` array of DNS records to configure.
34
+
35
+ ---
36
+
37
+ ## domains get
38
+
39
+ **Argument:** `<id>` — Domain ID
40
+
41
+ Returns full domain with `records[]`, `status` (`not_started`|`pending`|`verified`|`failed`|`temporary_failure`), `capabilities`, `region`.
42
+
43
+ ---
44
+
45
+ ## domains verify
46
+
47
+ Trigger async DNS verification.
48
+
49
+ **Argument:** `<id>` — Domain ID
50
+
51
+ **Output:** `{"object":"domain","id":"..."}`
52
+
53
+ ---
54
+
55
+ ## domains update
56
+
57
+ **Argument:** `<id>` — Domain ID
58
+
59
+ | Flag | Type | Description |
60
+ |------|------|-------------|
61
+ | `--tls <mode>` | string | `opportunistic` \| `enforced` |
62
+ | `--open-tracking` | boolean | Enable open tracking |
63
+ | `--no-open-tracking` | boolean | Disable open tracking |
64
+ | `--click-tracking` | boolean | Enable click tracking |
65
+ | `--no-click-tracking` | boolean | Disable click tracking |
66
+
67
+ At least one option required.
68
+
69
+ ---
70
+
71
+ ## domains delete
72
+
73
+ **Argument:** `<id>` — Domain ID
74
+
75
+ | Flag | Type | Required | Description |
76
+ |------|------|----------|-------------|
77
+ | `--yes` | boolean | Yes (non-interactive) | Skip confirmation |
78
+
79
+ **Alias:** `rm`