Le CLI de Resend est l'outil officiel en ligne de commande pour Resend, une plateforme d'e-mails conçue pour les développeurs. Installez-le via npm install -g resend-cli ou brew install resend/cli/resend, authentifiez-vous avec resend login, puis gérez vos e-mails, domaines et automatisez votre infrastructure e-mail directement depuis votre terminal ou pipeline CI/CD.
Essayez Apidog dès aujourd'hui
Qu'est-ce que Resend ?
Resend est une API d'e-mails pour développeurs. Connectez votre domaine, obtenez une clé API, et commencez à envoyer des e-mails transactionnels depuis votre application (réinitialisations, confirmations, séquences d'onboarding, etc.) de manière programmatique.
Depuis le 13 mars 2026, le CLI de Resend porte cette infrastructure dans votre terminal avec 53 commandes sur 13 ressources. Écrit en TypeScript, open source (MIT), il s’adresse à trois publics :
- Humains : invites interactives, tableaux lisibles, planification en langage naturel ("demain à 9h")
- Agents IA : sortie JSON, idempotence, détection automatique
- Pipelines CI/CD : variables d’environnement, flags scriptables, codes de sortie cohérents
💡Si vous développez des applications qui envoient des e-mails, testez vos appels API avant la production.Apidog vous offre une interface visuelle et gratuite pour tester les API REST telles que Resend, sans coder. Importez la spec OpenAPI, configurez vos environnements, et exécutez vos suites de tests au même endroit.
Installation du CLI de Resend
Quatre méthodes d’installation :
Via cURL (binaire autonome, pas de Node.js requis)
curl -fsSL https://resend.com/install.sh | bash
Télécharge un binaire précompilé et le place sur votre PATH. Node.js non requis.
Via npm
npm install -g resend-cli
Nécessite Node.js 20+. Vérifiez l’installation :
resend --version
Via Homebrew (macOS et Linux)
brew install resend/cli/resend
Option recommandée sur macOS. Homebrew gère les mises à jour.
Via PowerShell (Windows)
irm https://resend.com/install.ps1 | iex
Ou téléchargez les binaires .exe depuis la page GitHub des releases.
Pour le développement local
Pour contribuer ou compiler, Node.js 20+ et pnpm sont requis :
git clone https://github.com/resend/resend-cli.git
cd resend-cli
pnpm install
pnpm build # génère ./dist/cli.cjs
pnpm build:bin # binaire natif ./dist/resend
Authentifier votre compte
Lancez :
resend login
Suivez le flux dans votre navigateur pour générer la clé API. Les identifiants sont stockés localement à ~/.config/resend/credentials.json (permissions 0600).
Pour automatiser ou en CI/CD, passez la clé directement :
resend login --key re_xxxxxxxxxxxxx
Ordre de résolution de la clé API :
- Drapeau
--api-key(prioritaire) - Variable d’environnement
RESEND_API_KEY - Fichier local d’identifiants
En pipeline CI, définissez RESEND_API_KEY :
RESEND_API_KEY=re_xxx resend emails send --from builds@yourco.com --to dev@yourco.com --subject "Build passed" --text "All tests green."
Prise en charge de plusieurs comptes
Gérez plusieurs profils :
resend auth switch
Ou utilisez un profil spécifique :
resend <command> --profile production
Envoyer votre premier e-mail
La commande de base :
resend emails send --from "you@yourdomain.com" --to recipient@example.com --subject "Hello from the CLI" --text "This is a test email sent from the Resend CLI."
Envoyer un e-mail HTML
resend emails send --from "team@yourco.com" --to user@example.com --subject "Your order is confirmed" --html "<h1>Order confirmed</h1><p>Thanks for your purchase.</p>"
Ou depuis un fichier :
resend emails send --from "team@yourco.com" --to user@example.com --subject "Welcome aboard" --html-file ./templates/welcome.html
Planifier l'envoi
resend emails send --from "you@yourco.com" --to user@example.com --subject "Scheduled check-in" --text "Just checking in." --schedule "tomorrow at 9am"
Expressions prises en charge : "dans 1 heure", "lundi prochain à 15h", ou timestamp ISO.
Capturer l'ID de l'e-mail
EMAIL_ID=$(resend emails send \
--from a@acme.com \
--to b@acme.com \
--subject "Test" \
--text "Hi" | jq -r '.data.id')
echo "Sent email: $EMAIL_ID"
Annuler ou mettre à jour un e-mail planifié
resend emails cancel $EMAIL_ID
resend emails update $EMAIL_ID --schedule "next Monday at 10am"
Lister les e-mails récents
resend emails list
Envoyer par lot (max 100 e-mails)
Préparez un fichier JSON :
[
{ "from": "you@yourco.com", "to": "alice@example.com", "subject": "Hi Alice", "text": "Hello!" },
{ "from": "you@yourco.com", "to": "bob@example.com", "subject": "Hi Bob", "text": "Hello!" }
]
Envoyez le lot :
resend emails send-batch --file emails.json
Un appel API par batch, jusqu’à 100 e-mails.
Gestion des domaines et des clés API
Un domaine vérifié est requis pour envoyer des e-mails.
Ajouter un domaine
resend domains create --name yourdomain.com --region us-east-1
Régions : us-east-1, eu-west-1, sa-east-1, ap-northeast-1. Choisissez la plus proche de vos utilisateurs.
Vérifier les enregistrements DNS
Ajoutez les enregistrements SPF/DKIM/DMARC à votre DNS, puis :
resend domains verify --id <domain-id>
Vérifiez le statut :
resend domains get --id <domain-id>
Configurer le suivi et TLS
resend domains configure --id <domain-id>
Activez le suivi d’ouverture, de clics ou DKIM personnalisé.
Lister tous les domaines
resend domains list
Gérer les clés API
Créez une clé par service/environnement pour sécuriser :
resend api-keys create
resend api-keys list
resend api-keys delete --id <key-id>
Limitez la portée des clés à un domaine pour cloisonner les accès.
Fonctionnalités avancées : diffusions, webhooks et modèles
Diffusions
resend broadcasts create # Création interactive
resend broadcasts send --id <broadcast-id>
resend broadcasts schedule --id <broadcast-id> --date "next Monday at 10am"
Webhooks
resend webhooks create
resend webhooks list
Pour le local :
resend webhooks listen --forward-to http://localhost:3000/webhooks/resend
17 types d'événements supportés (email.sent, delivered, bounced, opened, clicked...)
Modèles
resend templates create
Utilisez {{variable_name}} dans le HTML. Référencez le modèle par ID à l’envoi.
Contacts et audiences
resend contacts create --audience-id <id> --email user@example.com --first-name "Alice"
resend contacts list --audience-id <id>
resend contacts update --id <contact-id> --unsubscribed false
Exécuter des diagnostics
resend doctor
Vérifie version, clé API, domaines, et détecte les agents IA.
Utilisation du CLI de Resend dans les pipelines CI/CD
Sortie lisible par machine
Utilisez --json ou des pipes pour une sortie JSON prête à parser :
resend emails send --from a@co.com --to b@co.com --subject "Deploy" --text "Done" --json
resend emails list --quiet | jq '.[0].id'
Confirmation automatique des opérations destructives
resend api-keys delete --id <key-id> --yes
Exemple GitHub Actions
- name: Send deployment notification
env:
RESEND_API_KEY: ${{ secrets.RESEND_API_KEY }}
run: |
resend emails send \
--from deploys@yourco.com \
--to team@yourco.com \
--subject "Deploy to production: ${{ github.sha }}" \
--text "Deployed commit ${{ github.sha }} to production."
Limites de débit
Limite : 2 requêtes/sec, toutes clés confondues. Pour du batch, utilisez send-batch (100 e-mails max par appel), évitez les boucles d’envoi unitaire.
Tester votre API de mail avec Apidog
Le CLI est idéal pour l’interactif et les scripts simples. Pour tester l’API REST directement, Apidog est un client API gratuit pour :
- Envoyer des requêtes HTTP et inspecter les réponses
- Organiser vos cas de tests
- Configurer des environnements (clés API, url, etc.)
Exemple de workflow :
- Import : Importez la spec OpenAPI depuis resend.com/docs pour explorer chaque endpoint et schéma.
-
Environnements : Créez des environnements dev/prod. Stockez
RESEND_API_KEYcomme variable et référencez-la dans vos requêtes ({{RESEND_API_KEY}}). -
Test : Envoyez une requête
POST /emailspour valider vos payloads et comportements (erreurs, champs manquants, etc.). - Automatisation : L’exécuteur de tests permet d’enchaîner les appels API et de valider les réponses, sans écrire de code.
Détectez les bugs d’intégration avant la prod. Combinez le CLI pour le local, Apidog pour les tests d’API structurés.
Tarification Resend
Le CLI est gratuit/open source. Voici la tarification de la plateforme :
| Forfait | Prix | E-mails mensuels | Limite quotidienne | Rétention des logs |
|---|---|---|---|---|
| Gratuit | 0 $/mois | 3 000 | 100/jour | 1 jour |
| Pro | 20 $/mois | 50 000 | Pas de limite | 3 jours |
| Scale | 90 $/mois | 100 000 | Pas de limite | 7 jours |
| Entreprise | Personnalisé | Personnalisé | Personnalisé | Personnalisé |
À retenir sur le plan gratuit :
- Limité à 100/jour : idéal tests, petits projets, pas production
- Suivi ouverture/clic disponible uniquement sur les plans payants
- Logs conservés seulement 24h
- Débit : 2 req/sec partagées
- Dépassement plafonné à 5× le quota mensuel sur les plans payants
IP dédiée : +30 $/mois (plan Scale, min 500 emails/jour).
FAQ
Ai-je besoin de Node.js pour installer le CLI de Resend ?
Non, sauf si vous installez via npm. Les méthodes cURL/Homebrew fournissent des binaires autonomes.
Pourquoi ne puis-je pas envoyer depuis n'importe quelle adresse ?
Vous devez vérifier un domaine (ajout DNS) pour envoyer. Les adresses Gmail, etc. ne sont pas supportées en expéditeur.
Puis-je envoyer à n'importe qui avec le plan gratuit ?
Oui. Limite : 3 000 emails/mois, max 100/jour.
Planification en langage naturel ?
Expressions comme "demain à 9h", "dans 2h", "vendredi à 15h", ou ISO 8601. Les heures sont locales à votre système.
Que se passe-t-il si je redirige la sortie ?
Sortie JSON automatique (pas besoin de --json), sans spinner ni invite.
Multi-comptes ?
Oui. Utilisez resend login pour chaque profil, puis resend auth switch ou --profile pour cibler.
CLI open source ?
Oui, sous licence MIT : github.com/resend/resend-cli
Différence --quiet vs --json ?
Les deux forcent le JSON. --quiet supprime aussi tout affichage non-data (spinners, prompts).
Top comments (0)