@cakemail-org/cakemail-cli 1.7.0 → 2.0.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.
Files changed (198) hide show
  1. package/.claude/settings.local.json +12 -0
  2. package/.env.example +40 -0
  3. package/.env.test.example +45 -0
  4. package/CHANGELOG.md +1031 -0
  5. package/README.md +41 -37
  6. package/audit-formats.js +128 -0
  7. package/cakemail.rb +20 -0
  8. package/dist/client.js +1 -1
  9. package/dist/client.js.map +1 -1
  10. package/dist/commands/account.js +1 -1
  11. package/dist/commands/account.js.map +1 -1
  12. package/dist/commands/attributes.js +1 -1
  13. package/dist/commands/attributes.js.map +1 -1
  14. package/dist/commands/campaigns.js +1 -1
  15. package/dist/commands/campaigns.js.map +1 -1
  16. package/dist/commands/contacts.js +1 -1
  17. package/dist/commands/contacts.js.map +1 -1
  18. package/dist/commands/emails.js +1 -1
  19. package/dist/commands/emails.js.map +1 -1
  20. package/dist/commands/interests.js +1 -1
  21. package/dist/commands/interests.js.map +1 -1
  22. package/dist/commands/lists.js +1 -1
  23. package/dist/commands/lists.js.map +1 -1
  24. package/dist/commands/logs.js +1 -1
  25. package/dist/commands/logs.js.map +1 -1
  26. package/dist/commands/reports.js +1 -1
  27. package/dist/commands/reports.js.map +1 -1
  28. package/dist/commands/segments.js +1 -1
  29. package/dist/commands/segments.js.map +1 -1
  30. package/dist/commands/senders.js +1 -1
  31. package/dist/commands/senders.js.map +1 -1
  32. package/dist/commands/suppressed.js +1 -1
  33. package/dist/commands/suppressed.js.map +1 -1
  34. package/dist/commands/tags.js +1 -1
  35. package/dist/commands/tags.js.map +1 -1
  36. package/dist/commands/templates.js +1 -1
  37. package/dist/commands/templates.js.map +1 -1
  38. package/dist/commands/transactional-templates.js +1 -1
  39. package/dist/commands/transactional-templates.js.map +1 -1
  40. package/dist/commands/webhooks.js +1 -1
  41. package/dist/commands/webhooks.js.map +1 -1
  42. package/dist/utils/config.js +2 -2
  43. package/dist/utils/config.js.map +1 -1
  44. package/dist/utils/errors.js +1 -1
  45. package/dist/utils/errors.js.map +1 -1
  46. package/dist/utils/progress.d.ts.map +1 -1
  47. package/dist/utils/progress.js +32 -4
  48. package/dist/utils/progress.js.map +1 -1
  49. package/dist/utils/spinner.d.ts +17 -0
  50. package/dist/utils/spinner.d.ts.map +1 -0
  51. package/dist/utils/spinner.js +43 -0
  52. package/dist/utils/spinner.js.map +1 -0
  53. package/docs/DOCUMENTATION-STANDARD.md +1068 -0
  54. package/docs/README.md +161 -0
  55. package/docs/developer/ARCHITECTURE.md +516 -0
  56. package/docs/developer/AUTH.md +204 -0
  57. package/docs/developer/CONTRIBUTING.md +227 -0
  58. package/docs/developer/DOCUMENTATION_SUMMARY.md +346 -0
  59. package/docs/developer/PROJECT_INDEX.md +365 -0
  60. package/docs/planning/API_COVERAGE.md +1045 -0
  61. package/docs/planning/BACKLOG.md +1159 -0
  62. package/docs/planning/PROFILE_SYSTEM_TASKS.md +287 -0
  63. package/docs/planning/UX_IMPLEMENTATION_PLAN.md +691 -0
  64. package/docs/planning/archive/RELEASE_CHECKLIST_v1.3.0.md +332 -0
  65. package/docs/planning/archive/RELEASE_v1.3.0.md +428 -0
  66. package/docs/planning/archive/cakemail-cli-ux-improvements.md +438 -0
  67. package/docs/planning/cakemail-profile-system-plan.md +1121 -0
  68. package/docs/testing/AI_USER_SIMULATION_DESIGN.md +1342 -0
  69. package/docs/testing/KENOGAMI_BIDIRECTIONAL_FLOW.md +1517 -0
  70. package/docs/testing/KENOGAMI_TRUTH_RECONCILIATION_SYSTEM.md +1369 -0
  71. package/docs/user-manual/.obsidian/app.json +1 -0
  72. package/docs/user-manual/.obsidian/appearance.json +1 -0
  73. package/docs/user-manual/.obsidian/core-plugins.json +33 -0
  74. package/docs/user-manual/.obsidian/workspace.json +167 -0
  75. package/docs/user-manual/01-getting-started/01-installation.md +214 -0
  76. package/docs/user-manual/01-getting-started/02-quick-start.md +432 -0
  77. package/docs/user-manual/01-getting-started/03-authentication.md +448 -0
  78. package/docs/user-manual/01-getting-started/04-configuration.md +430 -0
  79. package/docs/user-manual/01-getting-started/05-output-formats.md +447 -0
  80. package/docs/user-manual/02-core-concepts/01-accounts.md +514 -0
  81. package/docs/user-manual/02-core-concepts/02-profile-system.md +771 -0
  82. package/docs/user-manual/02-core-concepts/03-smart-defaults.md +485 -0
  83. package/docs/user-manual/02-core-concepts/04-authentication-methods.md +435 -0
  84. package/docs/user-manual/02-core-concepts/05-pagination-filtering.md +600 -0
  85. package/docs/user-manual/02-core-concepts/06-error-handling.md +718 -0
  86. package/docs/user-manual/02-core-concepts/07-api-coverage.md +483 -0
  87. package/docs/user-manual/03-email-operations/01-senders.md +490 -0
  88. package/docs/user-manual/03-email-operations/02-templates.md +444 -0
  89. package/docs/user-manual/03-email-operations/03-transactional-emails.md +706 -0
  90. package/docs/user-manual/03-email-operations/04-email-tracking.md +407 -0
  91. package/docs/user-manual/04-campaign-management/01-campaigns-basics.md +394 -0
  92. package/docs/user-manual/04-campaign-management/02-campaign-scheduling.md +630 -0
  93. package/docs/user-manual/04-campaign-management/03-campaign-testing.md +997 -0
  94. package/docs/user-manual/04-campaign-management/04-campaign-lifecycle.md +709 -0
  95. package/docs/user-manual/04-campaign-management/05-campaign-links.md +934 -0
  96. package/docs/user-manual/05-contact-management/01-lists.md +836 -0
  97. package/docs/user-manual/05-contact-management/02-contacts.md +1035 -0
  98. package/docs/user-manual/05-contact-management/03-custom-attributes.md +788 -0
  99. package/docs/user-manual/05-contact-management/04-segments.md +1028 -0
  100. package/docs/user-manual/05-contact-management/05-contact-import-export.md +1031 -0
  101. package/docs/user-manual/06-analytics-reporting/01-campaign-analytics.md +867 -0
  102. package/docs/user-manual/06-analytics-reporting/02-account-reports.md +227 -0
  103. package/docs/user-manual/07-integrations/01-webhooks-integration.md +259 -0
  104. package/docs/user-manual/07-integrations/02-automation.md +326 -0
  105. package/docs/user-manual/08-advanced-usage/01-scripting-patterns.md +672 -0
  106. package/docs/user-manual/08-advanced-usage/02-bulk-operations.md +932 -0
  107. package/docs/user-manual/08-advanced-usage/03-ci-cd-integration.md +892 -0
  108. package/docs/user-manual/08-advanced-usage/04-performance-optimization.md +766 -0
  109. package/docs/user-manual/09-command-reference/01-config.md +776 -0
  110. package/docs/user-manual/09-command-reference/02-account.md +652 -0
  111. package/docs/user-manual/09-command-reference/03-lists.md +958 -0
  112. package/docs/user-manual/09-command-reference/04-contacts.md +1408 -0
  113. package/docs/user-manual/09-command-reference/05-attributes.md +617 -0
  114. package/docs/user-manual/09-command-reference/06-segments.md +894 -0
  115. package/docs/user-manual/09-command-reference/07-senders.md +803 -0
  116. package/docs/user-manual/09-command-reference/08-templates.md +818 -0
  117. package/docs/user-manual/09-command-reference/09-campaigns.md +1250 -0
  118. package/docs/user-manual/09-command-reference/10-emails.md +807 -0
  119. package/docs/user-manual/09-command-reference/11-reports.md +1135 -0
  120. package/docs/user-manual/09-command-reference/12-webhooks.md +773 -0
  121. package/docs/user-manual/09-command-reference/13-suppressed.md +797 -0
  122. package/docs/user-manual/09-command-reference/14-interests.md +630 -0
  123. package/docs/user-manual/09-command-reference/15-tags.md +584 -0
  124. package/docs/user-manual/09-command-reference/16-logs.md +656 -0
  125. package/docs/user-manual/09-command-reference/17-transactional-templates.md +850 -0
  126. package/docs/user-manual/10-troubleshooting/01-common-errors.md +457 -0
  127. package/docs/user-manual/10-troubleshooting/02-authentication-issues.md +558 -0
  128. package/docs/user-manual/10-troubleshooting/03-connection-problems.md +634 -0
  129. package/docs/user-manual/10-troubleshooting/04-debugging.md +725 -0
  130. package/docs/user-manual/11-appendix/04-faq.md +484 -0
  131. package/docs/user-manual/11-appendix/05-glossary.md +250 -0
  132. package/docs/user-manual/README.md +0 -0
  133. package/package.json +13 -61
  134. package/src/cli.ts +125 -0
  135. package/src/client.ts +16 -0
  136. package/src/commands/account.ts +267 -0
  137. package/src/commands/accounts.ts +78 -0
  138. package/src/commands/actions.ts +249 -0
  139. package/src/commands/attributes.ts +139 -0
  140. package/src/commands/campaign-blueprints.ts +106 -0
  141. package/src/commands/campaigns.ts +469 -0
  142. package/src/commands/config.ts +77 -0
  143. package/src/commands/contacts.ts +612 -0
  144. package/src/commands/custom-attributes.ts +127 -0
  145. package/src/commands/dkims.ts +117 -0
  146. package/src/commands/domains.ts +82 -0
  147. package/src/commands/email-apis.ts +569 -0
  148. package/src/commands/emails.ts +197 -0
  149. package/src/commands/forms.ts +283 -0
  150. package/src/commands/interests.ts +155 -0
  151. package/src/commands/links.ts +38 -0
  152. package/src/commands/lists.ts +406 -0
  153. package/src/commands/logos.ts +71 -0
  154. package/src/commands/logs.ts +386 -0
  155. package/src/commands/reports.ts +306 -0
  156. package/src/commands/segments.ts +158 -0
  157. package/src/commands/senders.ts +204 -0
  158. package/src/commands/sub-accounts.ts +271 -0
  159. package/src/commands/suppressed-emails.ts +234 -0
  160. package/src/commands/suppressed.ts +198 -0
  161. package/src/commands/system-emails.ts +85 -0
  162. package/src/commands/tags.ts +146 -0
  163. package/src/commands/tasks.ts +116 -0
  164. package/src/commands/templates.ts +189 -0
  165. package/src/commands/tokens.ts +83 -0
  166. package/src/commands/transactional-emails.ts +374 -0
  167. package/src/commands/transactional-templates.ts +385 -0
  168. package/src/commands/users.ts +506 -0
  169. package/src/commands/webhooks.ts +172 -0
  170. package/src/commands/workflow-blueprints.ts +123 -0
  171. package/src/commands/workflows.ts +265 -0
  172. package/src/types/profile.ts +93 -0
  173. package/src/utils/auth.ts +272 -0
  174. package/src/utils/config-file.ts +96 -0
  175. package/src/utils/config.ts +134 -0
  176. package/src/utils/confirm.ts +32 -0
  177. package/src/utils/defaults.ts +99 -0
  178. package/src/utils/errors.ts +116 -0
  179. package/src/utils/interactive.ts +91 -0
  180. package/src/utils/list-defaults.ts +74 -0
  181. package/src/utils/output.ts +190 -0
  182. package/src/utils/progress.ts +320 -0
  183. package/src/utils/spinner.ts +22 -0
  184. package/tests/IMPLEMENTATION_STATUS.md +258 -0
  185. package/tests/PTY_SETUP.md +118 -0
  186. package/tests/PTY_TESTING_GUIDE.md +507 -0
  187. package/tests/README.md +244 -0
  188. package/tests/fixtures/api-responses/campaigns.json +34 -0
  189. package/tests/fixtures/test-config.json +13 -0
  190. package/tests/helpers/cli-runner.ts +128 -0
  191. package/tests/helpers/mock-server.ts +301 -0
  192. package/tests/helpers/pty-runner.ts +181 -0
  193. package/tests/integration/campaigns-real-api.test.ts +196 -0
  194. package/tests/integration/setup-integration.ts +50 -0
  195. package/tests/pty/campaigns.test.ts +241 -0
  196. package/tests/setup.ts +34 -0
  197. package/tsconfig.json +15 -0
  198. package/vitest.config.ts +28 -0
@@ -0,0 +1,457 @@
1
+ # Common Errors & Solutions
2
+
3
+ Troubleshoot common issues and error messages when using the Cakemail CLI.
4
+
5
+ ## Authentication Errors
6
+
7
+ ### Error: "No credentials found in .env file"
8
+
9
+ **Problem:** CLI cannot find authentication credentials.
10
+
11
+ **Solutions:**
12
+ ```bash
13
+ # Initialize CLI
14
+ $ cakemail config init
15
+
16
+ # Or manually create .env file
17
+ $ cat > .env << EOF
18
+ CAKEMAIL_EMAIL=your@email.com
19
+ CAKEMAIL_PASSWORD=your_password
20
+ EOF
21
+
22
+ # Verify
23
+ $ cakemail account test
24
+ ```
25
+
26
+ ### Error: "Invalid credentials"
27
+
28
+ **Problem:** Email or password is incorrect.
29
+
30
+ **Solutions:**
31
+ ```bash
32
+ # Re-initialize with correct credentials
33
+ $ cakemail config init
34
+
35
+ # Check credentials in .env
36
+ $ cat .env | grep CAKEMAIL
37
+
38
+ # Test authentication
39
+ $ cakemail account test
40
+ ```
41
+
42
+ ### Error: "Access token expired"
43
+
44
+ **Problem:** Stored access token is no longer valid.
45
+
46
+ **Solutions:**
47
+ ```bash
48
+ # Remove expired token
49
+ $ sed -i '/CAKEMAIL_ACCESS_TOKEN/d' .env
50
+
51
+ # Re-authenticate
52
+ $ cakemail account show
53
+ # CLI will automatically get new token
54
+ ```
55
+
56
+ ## Resource Not Found Errors
57
+
58
+ ### Error: "Campaign not found"
59
+
60
+ **Problem:** Campaign ID doesn't exist or was deleted.
61
+
62
+ **Solutions:**
63
+ ```bash
64
+ # List available campaigns
65
+ $ cakemail campaigns list
66
+
67
+ # Check specific campaign
68
+ $ cakemail campaigns get CAMPAIGN_ID
69
+
70
+ # Verify ID is correct
71
+ ```
72
+
73
+ ### Error: "List not found"
74
+
75
+ **Problem:** Invalid list ID.
76
+
77
+ **Solutions:**
78
+ ```bash
79
+ # List all lists
80
+ $ cakemail lists list
81
+
82
+ # Use correct list ID
83
+ $ cakemail lists get 123
84
+ ```
85
+
86
+ ### Error: "Contact not found"
87
+
88
+ **Problem:** Contact ID doesn't exist in specified list.
89
+
90
+ **Solutions:**
91
+ ```bash
92
+ # Search by email
93
+ $ cakemail contacts list 123 --filter "email==user@example.com"
94
+
95
+ # Verify list and contact IDs match
96
+ $ cakemail contacts get 123 501
97
+ ```
98
+
99
+ ## Validation Errors
100
+
101
+ ### Error: "Invalid email format"
102
+
103
+ **Problem:** Email address format is incorrect.
104
+
105
+ **Solutions:**
106
+ ```bash
107
+ # Valid format
108
+ $ cakemail contacts add 123 -e "user@example.com"
109
+
110
+ # Invalid formats
111
+ user@example # Missing domain extension
112
+ user.example.com # Missing @
113
+ @example.com # Missing local part
114
+ ```
115
+
116
+ ### Error: "Required field missing"
117
+
118
+ **Problem:** Command is missing required parameter.
119
+
120
+ **Solutions:**
121
+ ```bash
122
+ # Campaign creation requires name, list, sender
123
+ $ cakemail campaigns create \
124
+ -n "Campaign Name" \
125
+ -l 123 \
126
+ -s 101
127
+
128
+ # Check command help
129
+ $ cakemail campaigns create --help
130
+ ```
131
+
132
+ ### Error: "Invalid JSON format"
133
+
134
+ **Problem:** Malformed JSON in custom attributes or conditions.
135
+
136
+ **Solutions:**
137
+ ```bash
138
+ # Validate JSON first
139
+ $ echo '{"plan":"premium"}' | jq .
140
+
141
+ # Correct format
142
+ $ cakemail contacts add 123 -e "user@example.com" \
143
+ -d '{"plan":"premium","signup_date":"2024-03-15"}'
144
+
145
+ # Common mistakes
146
+ -d '{plan:premium}' # Missing quotes
147
+ -d '{"plan":"premium"' # Missing closing brace
148
+ -d "{\"plan\":\"premium\"}" # Correct (escaped)
149
+ ```
150
+
151
+ ## Permission Errors
152
+
153
+ ### Error: "Insufficient permissions"
154
+
155
+ **Problem:** Account doesn't have access to perform action.
156
+
157
+ **Solutions:**
158
+ ```bash
159
+ # Check account type
160
+ $ cakemail account show
161
+
162
+ # Verify account has necessary permissions
163
+ # Contact Cakemail support if needed
164
+ ```
165
+
166
+ ### Error: "Cannot access list"
167
+
168
+ **Problem:** List belongs to different account or doesn't exist.
169
+
170
+ **Solutions:**
171
+ ```bash
172
+ # Check which account you're using
173
+ $ cakemail account show
174
+
175
+ # List accessible lists
176
+ $ cakemail lists list
177
+
178
+ # Switch accounts if needed
179
+ $ cakemail account use 457
180
+ ```
181
+
182
+ ## Rate Limiting
183
+
184
+ ### Error: "Rate limit exceeded"
185
+
186
+ **Problem:** Too many requests in short time period.
187
+
188
+ **Solutions:**
189
+ ```bash
190
+ # Add delays between requests
191
+ for id in {1..100}; do
192
+ cakemail contacts add 123 -e "user${id}@example.com"
193
+ sleep 1 # Wait 1 second
194
+ done
195
+
196
+ # Use bulk operations instead
197
+ $ cakemail contacts import 123 --file contacts.csv
198
+
199
+ # Wait before retrying
200
+ $ sleep 60 && cakemail campaigns list
201
+ ```
202
+
203
+ ## Network Errors
204
+
205
+ ### Error: "Connection timeout"
206
+
207
+ **Problem:** Cannot connect to Cakemail API.
208
+
209
+ **Solutions:**
210
+ ```bash
211
+ # Check internet connection
212
+ $ ping api.cakemail.com
213
+
214
+ # Check proxy settings if applicable
215
+ $ env | grep -i proxy
216
+
217
+ # Try again
218
+ $ cakemail campaigns list
219
+
220
+ # Check API status
221
+ # Visit status.cakemail.com
222
+ ```
223
+
224
+ ### Error: "Network unreachable"
225
+
226
+ **Problem:** Network configuration issue.
227
+
228
+ **Solutions:**
229
+ ```bash
230
+ # Test network connectivity
231
+ $ curl -I https://api.cakemail.com
232
+
233
+ # Check firewall rules
234
+ # Ensure outbound HTTPS (443) is allowed
235
+
236
+ # Try with different network
237
+ ```
238
+
239
+ ## File Operation Errors
240
+
241
+ ### Error: "File not found"
242
+
243
+ **Problem:** Specified file doesn't exist.
244
+
245
+ **Solutions:**
246
+ ```bash
247
+ # Check file exists
248
+ $ ls -la campaign.html
249
+
250
+ # Use absolute path
251
+ $ cakemail campaigns create -n "Test" \
252
+ --html-file /full/path/to/campaign.html
253
+
254
+ # Check current directory
255
+ $ pwd
256
+ ```
257
+
258
+ ### Error: "Permission denied"
259
+
260
+ **Problem:** Cannot read/write file.
261
+
262
+ **Solutions:**
263
+ ```bash
264
+ # Check file permissions
265
+ $ ls -la .env
266
+
267
+ # Fix permissions
268
+ $ chmod 600 .env
269
+
270
+ # Ensure file is readable
271
+ $ chmod 644 campaign.html
272
+ ```
273
+
274
+ ### Error: "File too large"
275
+
276
+ **Problem:** File exceeds size limit.
277
+
278
+ **Solutions:**
279
+ ```bash
280
+ # Check file size
281
+ $ ls -lh campaign.html
282
+
283
+ # Optimize HTML
284
+ # - Compress images
285
+ # - Minify HTML
286
+ # - Remove unused code
287
+
288
+ # Split into smaller files if needed
289
+ ```
290
+
291
+ ## Import/Export Errors
292
+
293
+ ### Error: "Invalid CSV format"
294
+
295
+ **Problem:** CSV file has formatting issues.
296
+
297
+ **Solutions:**
298
+ ```bash
299
+ # Check CSV structure
300
+ $ head -5 contacts.csv
301
+
302
+ # Ensure proper format
303
+ email,first_name,last_name
304
+ user1@example.com,John,Doe
305
+ user2@example.com,Jane,Smith
306
+
307
+ # Check for common issues
308
+ # - Missing header row
309
+ # - Inconsistent column count
310
+ # - Special characters not escaped
311
+ ```
312
+
313
+ ### Error: "Import failed: duplicate emails"
314
+
315
+ **Problem:** CSV contains duplicate email addresses.
316
+
317
+ **Solutions:**
318
+ ```bash
319
+ # Find duplicates
320
+ $ cut -d',' -f1 contacts.csv | sort | uniq -d
321
+
322
+ # Remove duplicates
323
+ $ sort -u -t',' -k1,1 contacts.csv > contacts-unique.csv
324
+
325
+ # Import cleaned file
326
+ $ cakemail contacts import 123 --file contacts-unique.csv
327
+ ```
328
+
329
+ ## Campaign Errors
330
+
331
+ ### Error: "Cannot schedule draft campaign"
332
+
333
+ **Problem:** Campaign is not in correct state.
334
+
335
+ **Solutions:**
336
+ ```bash
337
+ # Check campaign status
338
+ $ cakemail campaigns get 790 -f json | jq '.status'
339
+
340
+ # If not draft, unschedule first
341
+ $ cakemail campaigns unschedule 790
342
+
343
+ # Then schedule
344
+ $ cakemail campaigns schedule 790
345
+ ```
346
+
347
+ ### Error: "Sender not verified"
348
+
349
+ **Problem:** Sender email address not verified.
350
+
351
+ **Solutions:**
352
+ ```bash
353
+ # List senders
354
+ $ cakemail senders list
355
+
356
+ # Check verification status
357
+ $ cakemail senders get 101 -f json | jq '.confirmed'
358
+
359
+ # Resend verification
360
+ $ cakemail senders verify 101
361
+
362
+ # Use verified sender
363
+ $ cakemail campaigns update 790 --sender-id 102
364
+ ```
365
+
366
+ ### Error: "List has no contacts"
367
+
368
+ **Problem:** Trying to send to empty list.
369
+
370
+ **Solutions:**
371
+ ```bash
372
+ # Check contact count
373
+ $ cakemail lists get 123 -f json | jq '.contacts_count'
374
+
375
+ # Add contacts
376
+ $ cakemail contacts add 123 -e "user@example.com"
377
+
378
+ # Or import
379
+ $ cakemail contacts import 123 --file contacts.csv
380
+ ```
381
+
382
+ ## Debugging Tips
383
+
384
+ ### Enable Verbose Output
385
+
386
+ ```bash
387
+ # Most commands support verbose flag
388
+ $ cakemail campaigns list --verbose
389
+
390
+ # Check raw API responses
391
+ $ cakemail campaigns get 790 -f json | jq .
392
+ ```
393
+
394
+ ### Check CLI Version
395
+
396
+ ```bash
397
+ $ cakemail --version
398
+
399
+ # Update if needed
400
+ $ npm update -g @cakemail-org/cakemail-cli
401
+ ```
402
+
403
+ ### View Configuration
404
+
405
+ ```bash
406
+ # Check .env file
407
+ $ cat .env
408
+
409
+ # Verify account
410
+ $ cakemail account show
411
+ ```
412
+
413
+ ### Test Connectivity
414
+
415
+ ```bash
416
+ # Test authentication
417
+ $ cakemail account test
418
+
419
+ # Simple API call
420
+ $ cakemail lists list
421
+ ```
422
+
423
+ ## Getting Help
424
+
425
+ ### Command Help
426
+
427
+ ```bash
428
+ # General help
429
+ $ cakemail --help
430
+
431
+ # Command-specific help
432
+ $ cakemail campaigns --help
433
+ $ cakemail campaigns create --help
434
+ ```
435
+
436
+ ### Check Logs
437
+
438
+ ```bash
439
+ # Application logs
440
+ $ tail -f ~/.cakemail/logs/cli.log
441
+
442
+ # System logs
443
+ $ journalctl -u cakemail
444
+ ```
445
+
446
+ ### Report Issues
447
+
448
+ ```bash
449
+ # Gather debug information
450
+ $ cakemail --version
451
+ $ cakemail account show
452
+ $ cat .env | grep -v PASSWORD
453
+
454
+ # Report at:
455
+ # https://github.com/anthropics/cakemail-cli/issues
456
+ ```
457
+