Resend CLI
Installation
Avant d'exécuter toute commande resend, vérifiez que le CLI est installé :
resend --version
Si la commande n'est pas trouvée, installez-la en utilisant l'une des méthodes ci-dessous :
cURL (macOS / Linux) :
curl -fsSL https://resend.com/install.sh | bash
Homebrew (macOS / Linux) :
brew install resend/cli/resend
Node.js :
npm install -g resend-cli
PowerShell (Windows) :
irm https://resend.com/install.ps1 | iex
Après installation, vérifiez :
resend --version
Agent Protocol
Le CLI détecte automatiquement les environnements non-TTY et affiche JSON — aucun flag --json nécessaire.
Règles pour les agents :
- Fournissez TOUS les flags obligatoires. Le CLI ne posera pas de questions si stdin n'est pas un TTY.
- Passez
--quiet(ou-q) pour supprimer les spinners et messages de statut. - Exit
0= succès,1= erreur. - JSON d'erreur va sur stderr, JSON de succès va sur stdout :
{"error":{"message":"...","code":"..."}} - Utilisez
--api-keyou la variable d'environnementRESEND_API_KEY. Ne comptiez jamais sur une connexion interactive. - Tous les commandes
delete/rmnécessitent--yesen mode non-interactif.
Authentication
L'authentification se résout ainsi : flag --api-key > variable d'environnement RESEND_API_KEY > fichier de config (resend login --key). Utilisez --profile ou RESEND_PROFILE pour les profils multiples.
Flags Globaux
| Flag | Description |
|---|---|
--api-key <key> |
Remplacer la clé API pour cet appel |
-p, --profile <name> |
Sélectionner un profil stocké |
--json |
Forcer la sortie JSON (automatique en non-TTY) |
-q, --quiet |
Supprimer spinners/statut (implique --json) |
Commandes Disponibles
| Groupe de Commande | Ce qu'il fait |
|---|---|
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 |
Commandes utilitaires |
Consultez le fichier de référence correspondant pour les flags détaillés et les formes de sortie.
Dry-run : Seuls emails send et broadcasts create supportent --dry-run (validation de charge utile avant envoi/création). Ils affichent { "dryRun": true, "request": { ... } } sur stdout sans appeler l'API. Il n'y a pas de --dry-run sur emails batch, broadcasts send, ou d'autres commandes pour le moment.
Erreurs Courantes
| # | Erreur | Solution |
|---|---|---|
| 1 | Oublier --yes sur les commandes delete |
Tous les sous-commandes delete/rm nécessitent --yes en mode non-interactif — sinon le CLI sort avec une erreur |
| 2 | Ne pas sauvegarder signing_secret du webhook |
webhooks create affiche le secret une seule fois — il ne peut pas être récupéré ultérieurement. Capturez-le depuis la sortie de commande immédiatement |
| 3 | Omettre --quiet en CI |
Sans -q, les spinners et texte de statut vont quand même sur stderr (pas stdout). Utilisez -q pour JSON sur stdout sans bruit de spinner sur stderr |
| 4 | Utiliser --scheduled-at avec batch |
L'envoi en batch ne supporte pas scheduled_at — utilisez plutôt un seul emails send |
| 5 | S'attendre à ce que domains list inclue les enregistrements DNS |
La liste retourne des résumés seulement — utilisez domains get <id> pour le tableau complet records[] |
| 6 | Envoyer un broadcast créé via le dashboard en utilisant le CLI | Seuls les broadcasts créés par API peuvent être envoyés avec broadcasts send — les broadcasts du dashboard doivent être envoyés depuis le dashboard |
| 7 | Passer --events à webhooks update en s'attendant à un comportement additif |
--events remplace la liste d'abonnement entière — passez toujours l'ensemble complet |
| 8 | S'attendre à ce que logs list inclue les corps request/response |
La liste retourne des champs de résumé seulement — utilisez logs get <id> pour les request_body et response_body complets |
Patterns Courants
Envoyer un email :
resend emails send --from "you@domain.com" --to user@example.com --subject "Hello" --text "Body"
Envoyer un template React Email (.tsx) :
resend emails send --from "you@domain.com" --to user@example.com --subject "Welcome" --react-email ./emails/welcome.tsx
Flux de configuration de domaine :
resend domains create --name example.com --region us-east-1
# Configurez les enregistrements DNS depuis la sortie, puis :
resend domains verify <domain-id>
resend domains get <domain-id> # vérifier le statut
Créer et envoyer un broadcast :
resend broadcasts create --from "news@domain.com" --subject "Update" --segment-id <id> --html "<h1>Hi</h1>" --send
CI/CD (pas de connexion requise) :
RESEND_API_KEY=re_xxx resend emails send --from ... --to ... --subject ... --text ...
Vérifier la santé de l'environnement :
resend doctor -q
Quand Charger les Références
- Envoyer ou lire des emails → references/emails.md
- Configurer ou vérifier un domaine → references/domains.md
- Gérer les clés API → references/api-keys.md
- Créer ou envoyer des broadcasts → references/broadcasts.md
- Gérer les contacts, segments ou topics → references/contacts.md, references/segments.md, references/topics.md
- Définir les propriétés de contact → references/contact-properties.md
- Travailler avec des templates → references/templates.md
- Afficher les logs de requête API → references/logs.md
- Créer des automations ou envoyer des événements → references/automations.md
- Configurer des webhooks ou écouter les événements → references/webhooks.md
- Auth, profils ou vérifications de santé → references/auth.md
- Recettes multi-étapes (setup, CI/CD, workflow broadcast) → references/workflows.md
- Commande échouée avec une erreur → references/error-codes.md
- Intégration SDK Resend (Node.js, Python, Go, etc.) → Installer la skill
resend - Boîte de réception email pour agent IA → Installer la skill
agent-email-inbox