Installer et Utiliser Resend CLI : Guide Complet

Herve Kom

Herve Kom

17 March 2026

Installer et Utiliser Resend CLI : Guide Complet

Apidog pour les entreprises

Déploiement sur site

SSO & RBAC

Conforme SOC 2

Explorer Apidog Enterprise

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. Vous l'installez avec npm install -g resend-cli ou brew install resend/cli/resend, vous authentifiez avec resend login, et ensuite envoyez des e-mails, gérez des domaines et automatisez votre infrastructure e-mail depuis n'importe quel terminal ou pipeline CI/CD.

Qu'est-ce que Resend ?

Resend est une API d'e-mails pour les développeurs. Vous connectez votre domaine, obtenez une clé API et commencez à envoyer des e-mails transactionnels depuis votre application : réinitialisations de mot de passe, confirmations de commande, séquences d'intégration, tout ce qui se déclenche de manière programmatique.

Le 13 mars 2026, Zeno Rocha, fondateur de Resend, a lancé le CLI de Resend, apportant cette même infrastructure au terminal. Le CLI dispose de 53 commandes réparties sur 13 ressources. Il est écrit en TypeScript, entièrement open source sous licence MIT, et fonctionne pour trois publics différents :

💡
Si vous développez des applications qui envoient des e-mails, vous voudrez un moyen de tester ces appels d'API d'e-mail avant qu'ils n'atteignent la production. Apidog vous offre une interface visuelle et gratuite pour tester les API REST, y compris l'API d'e-mail de Resend, sans écrire de code supplémentaire. Vous pouvez importer la spécification OpenAPI de Resend, configurer vos environnements et exécuter des suites de tests organisées, le tout au même endroit.
button

Installation du CLI de Resend

Il existe quatre façons d'installer le CLI. Choisissez celle qui correspond à votre configuration.

Via cURL (binaire autonome, pas de Node.js requis)

curl -fsSL https://resend.com/install.sh | bash

Ceci télécharge un binaire précompilé pour votre système d'exploitation et le place sur votre PATH. Pas besoin de Node.js.

Via npm

npm install -g resend-cli

Nécessite Node.js 20 ou une version ultérieure. Après l'installation, confirmez qu'il fonctionne :

resend --version

Via Homebrew (macOS et Linux)

brew install resend/cli/resend

C'est l'option la plus propre sur macOS. Homebrew gère les mises à jour automatiquement.

Via PowerShell (Windows)

irm https://resend.com/install.ps1 | iex

Vous pouvez également télécharger les binaires .exe directement depuis la page des versions GitHub.

Pour le développement local

Si vous souhaitez contribuer au CLI ou compiler à partir des sources, vous aurez besoin de Node.js 20+ et de pnpm :

git clone https://github.com/resend/resend-cli.git
cd resend-cli
pnpm install
pnpm build       # outputs ./dist/cli.cjs
pnpm build:bin   # native binary at ./dist/resend

Authentifier votre compte

Exécutez resend login pour connecter le CLI à votre compte Resend :

resend login

Ceci ouvre votre navigateur, vous guide dans la création d'une clé API dans le tableau de bord Resend, et stocke vos identifiants localement à ~/.config/resend/credentials.json avec des permissions restreintes 0600.

Pour les environnements non interactifs (CI/CD, scripts), ignorez le flux du navigateur et passez une clé directement :

resend login --key re_xxxxxxxxxxxxx

Une fois stocké, vous n'avez pas besoin de vous réauthentifier pour chaque commande. Le CLI résout votre clé API dans cet ordre :

  1. Drapeau --api-key (annule tout)
  2. Variable d'environnement RESEND_API_KEY
  3. Le fichier d'identifiants stocké

Pour les pipelines CI, définir RESEND_API_KEY comme variable d'environnement secrète est l'approche standard :

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

Si vous travaillez sur plusieurs organisations ou équipes Resend, le CLI gère cela aussi. Basculez entre les profils stockés sans vous déconnecter :

resend auth switch

Ou passez un profil spécifique pour une seule commande :

resend <command> --profile production

Envoyer votre premier e-mail

La commande principale pour l'envoi est resend emails send. Au minimum, vous avez besoin d'une adresse expéditeur (provenant d'un domaine vérifié), d'un destinataire, d'un sujet et d'un corps de message.

Envoyer un e-mail en texte brut

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 pointez vers un fichier HTML local :

resend emails send \
  --from "team@yourco.com" \
  --to user@example.com \
  --subject "Welcome aboard" \
  --html-file ./templates/welcome.html

Planifier l'envoi

Le CLI analyse les dates en langage naturel ainsi que les horodatages ISO 8601 :

resend emails send \
  --from "you@yourco.com" \
  --to user@example.com \
  --subject "Scheduled check-in" \
  --text "Just checking in." \
  --schedule "tomorrow at 9am"

Fonctionne avec des expressions comme "dans 1 heure", "lundi prochain à 15h", ou un horodatage ISO complet.

Capturer l'ID de l'e-mail

Lorsqu'il est redirigé (piped), le CLI passe automatiquement à la sortie JSON. Utilisez jq pour capturer l'ID de l'e-mail pour les opérations de suivi :

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 jusqu'à 100 e-mails à la fois

Créez un fichier JSON avec un tableau d'objets e-mail :

[
  { "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!" }
]

Ensuite, envoyez le lot :

resend emails send-batch --file emails.json

Chaque requête de lot compte comme un appel API par rapport à votre limite de débit, même si elle envoie jusqu'à 100 e-mails.

Gestion des domaines et des clés API

Avant de pouvoir envoyer des e-mails, vous avez besoin d'un domaine vérifié. Le CLI vous guide tout au long du cycle de vie du domaine.

Ajouter un domaine

resend domains create --name yourdomain.com --region us-east-1

Régions prises en charge : us-east-1, eu-west-1, sa-east-1, ap-northeast-1. Choisissez la région la plus proche de vos utilisateurs pour minimiser la latence.

Vérifier les enregistrements DNS

Après avoir créé le domaine, Resend vous fournit les enregistrements DNS à ajouter (SPF, DKIM, DMARC). Une fois que vous les avez ajoutés à votre fournisseur DNS, exécutez :

resend domains verify --id <domain-id>

Interrogez le statut jusqu'à ce qu'il renvoie "verified" :

resend domains get --id <domain-id>

Configurer le suivi et TLS

resend domains configure --id <domain-id>  # Configuration interactive

Vous pouvez activer le suivi d'ouverture, le suivi de clics et le DKIM personnalisé via cette commande.

Lister tous les domaines

resend domains list

Gérer les clés API

Pour des raisons de sécurité, créez des clés API spécifiques pour chaque service ou environnement au lieu de partager une seule clé partout :

resend api-keys create  # Interactif, vous permet de définir la portée par domaine
resend api-keys list
resend api-keys delete --id <key-id>

Les clés à portée limitée limitent ce que chaque intégration peut faire. Une clé limitée à un domaine ne peut pas accéder à vos autres domaines ou paramètres de compte.

Fonctionnalités avancées : diffusions, webhooks et modèles

Au-delà de l'envoi d'e-mails individuels, le CLI de Resend gère trois autres cas d'utilisation majeurs : les diffusions en masse, la gestion des webhooks et les modèles réutilisables.

Diffusions

Les diffusions vous permettent d'envoyer le même e-mail à une grande liste de contacts. Vous rédigez d'abord, puis envoyez ou planifiez :

resend broadcasts create   # Création interactive de brouillons
resend broadcasts send --id <broadcast-id>
resend broadcasts schedule --id <broadcast-id> --date "next Monday at 10am"

Webhooks

Les webhooks vous donnent des événements de livraison en temps réel : rebonds, ouvertures, clics, rapports de spam. Le CLI gère le cycle de vie complet :

resend webhooks create   # Enregistrer un nouveau point de terminaison
resend webhooks list

Pour le développement local, utilisez la commande webhooks listen pour rediriger les événements de webhook vers votre localhost :

resend webhooks listen --forward-to http://localhost:3000/webhooks/resend

Cela vous évite de configurer ngrok ou des outils de tunneling similaires. Le CLI prend en charge 17 types d'événements, y compris email.sent, email.delivered, email.bounced, email.opened et email.clicked.

Modèles

Les modèles vous permettent de créer un code HTML d'e-mail réutilisable avec des variables dynamiques :

resend templates create  # Constructeur de modèles interactif

Les variables utilisent la syntaxe {{variable_name}} avec des valeurs de secours. Une fois créés, référencez les modèles par ID lors de l'envoi d'e-mails.

Contacts et audiences

Resend intègre la gestion des contacts pour les e-mails marketing :

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

La commande doctor vérifie votre environnement et signale les problèmes :

resend doctor

Elle vérifie la version de votre CLI, la validité de votre clé API, les domaines vérifiés, et détecte même les agents de codage IA (Cursor, Claude Desktop, VS Code, OpenClaw).

Utilisation du CLI de Resend dans les pipelines CI/CD

Le CLI est conçu pour fonctionner efficacement dans les environnements automatisés. Quelques modèles à connaître :

Sortie lisible par machine

Chaque fois que vous redirigez la sortie ou passez --json, le CLI passe à une sortie JSON structurée. Pas de spinners, pas d'invites interactives :

resend emails send --from a@co.com --to b@co.com --subject "Deploy" --text "Done" --json

L'option --quiet supprime également toutes les sorties sauf JSON :

resend emails list --quiet | jq '.[0].id'

Confirmation automatique des opérations destructives

Utilisez --yes pour ignorer les invites de confirmation dans les scripts :

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

La limite de débit de l'API Resend est de 2 requêtes par seconde, partagée entre toutes les clés API de votre équipe. Lors de l'envoi par lots, utilisez send-batch (jusqu'à 100 e-mails par appel) au lieu de boucler sur des envois individuels.

Tester votre API d'e-mail avec Apidog

Le CLI de Resend est excellent pour une utilisation interactive et des scripts simples. Cependant, lorsque vous créez un backend qui appelle directement l'API REST de Resend, vous avez besoin d'un moyen d'explorer et de tester ces points de terminaison avant d'écrire le code de l'application.

Apidog s'en occupe. C'est un client API gratuit qui vous permet d'envoyer des requêtes HTTP, d'inspecter les réponses, d'organiser vos cas de test et de configurer des environnements pour différentes clés API et configurations.

Voici comment Apidog s'intègre dans un flux de travail d'intégration Resend typique :

Importez la spécification de l'API Resend. Resend fournit une documentation de référence de l'API sur resend.com/docs. Vous pouvez importer la spécification de l'API dans Apidog pour obtenir une vue organisée de chaque point de terminaison, y compris les schémas de requête/réponse.

Configurez les environnements. Dans Apidog, créez des environnements pour le développement et la production. Stockez votre RESEND_API_KEY en tant que variable d'environnement et référencez-la dans vos requêtes avec {{RESEND_API_KEY}}. Basculez entre les environnements en un seul clic.

Testez votre logique d'envoi. Avant d'écrire du code pour envoyer des e-mails depuis votre application, exécutez le point de terminaison POST /emails dans Apidog avec votre charge utile exacte. Vérifiez la réponse, assurez-vous que l'ID de l'e-mail est correctement renvoyé, et confirmez le comportement pour les cas limites (champs manquants, adresses invalides, etc.).

Automatisez les tests. L'exécuteur de tests d'Apidog vous permet d'enchaîner les appels API et d'effectuer des assertions sur les valeurs de réponse. Vous pouvez configurer un test qui envoie un e-mail de test, le récupère par ID, puis vérifie son statut, le tout sans écrire de code de test.

Cela permet de détecter les bugs d'intégration avant qu'ils n'apparaissent en production. Combiné avec le CLI de Resend pour le développement local, vous disposez à la fois d'un outil de terminal rapide et d'un environnement de test API complet.

Tarification Resend

Le CLI lui-même est gratuit et open source. La tarification s'applique à la plateforme Resend :

ForfaitPrixE-mails mensuelsLimite quotidienneRétention des logs
Gratuit0 $/mois3 000100/jour1 jour
Pro20 $/mois50 000Pas de limite3 jours
Scale90 $/mois100 000Pas de limite7 jours
EntreprisePersonnaliséPersonnaliséPersonnaliséPersonnalisé

Quelques points importants à savoir sur le niveau gratuit :

Les IP dédiées sont un ajout de 30 $/mois sur le forfait Scale, disponible lorsque vous envoyez plus de 500 e-mails/jour.

button

FAQ

Ai-je besoin de Node.js pour installer le CLI de Resend ?

Pas pour les méthodes d'installation via cURL ou Homebrew, qui téléchargent des binaires autonomes précompilés. La méthode d'installation via npm nécessite Node.js 20+.

Pourquoi ne puis-je pas envoyer depuis n'importe quelle adresse e-mail ?

Resend nécessite un domaine vérifié. Vous devez posséder le domaine, ajouter les enregistrements DNS fournis par Resend (SPF, DKIM, DMARC) et passer l'étape de vérification. Les fournisseurs d'e-mails gratuits comme Gmail ne sont pas pris en charge comme adresses d'expéditeur.

Puis-je envoyer à n'importe quelle adresse e-mail avec le forfait gratuit ?

Oui. Le forfait gratuit ne restreint pas les destinataires. Il vous limite à 3 000 e-mails/mois avec un plafond de 100/jour.

Comment fonctionne la planification en langage naturel ?

Le CLI analyse des expressions telles que "demain à 9h", "dans 2 heures", "vendredi prochain à 15h", ou des horodatages ISO 8601 standard. Les heures sont interprétées selon le fuseau horaire local de votre système, sauf indication contraire.

Que se passe-t-il lorsque je redirige la sortie ?

Le CLI détecte quand il est redirigé et passe automatiquement à une sortie uniquement JSON sans spinners ni invites. Vous n'avez pas besoin de passer --json explicitement.

Puis-je utiliser le CLI avec plusieurs comptes Resend ?

Oui. Utilisez resend login plusieurs fois pour stocker différents profils, puis resend auth switch pour basculer entre eux, ou passez --profile <name> sur n'importe quelle commande pour utiliser un profil spécifique.

Le CLI de Resend est-il open source ?

Oui, il est sous licence MIT et hébergé sur github.com/resend/resend-cli.

Quelle est la différence entre --quiet et --json ?

Les deux produisent une sortie JSON. --json force la sortie JSON. --quiet supprime les indicateurs de progression et les spinners, ce qui implique également le mode JSON. En pratique, ils se comportent de la même manière pour le format de sortie ; --quiet supprime en outre toutes les sorties non liées aux données.

Ressources supplémentaires

Pratiquez le Design-first d'API dans Apidog

Découvrez une manière plus simple de créer et utiliser des API