Resend CLI installieren und nutzen: Eine Anleitung

Herve Kom

Herve Kom

17 March 2026

Resend CLI installieren und nutzen: Eine Anleitung

Das Resend CLI ist das offizielle Kommandozeilen-Tool für Resend, eine E-Mail-Plattform, die für Entwickler entwickelt wurde. Sie installieren es mit npm install -g resend-cli oder brew install resend/cli/resend, authentifizieren sich mit resend login und können dann E-Mails senden, Domains verwalten und Ihre E-Mail-Infrastruktur von jedem Terminal oder jeder CI/CD-Pipeline aus automatisieren.

Was ist Resend?

Resend ist eine E-Mail-API für Entwickler. Sie verbinden Ihre Domain, erhalten einen API-Schlüssel und können damit transaktionale E-Mails von Ihrer Anwendung aus senden: Passwort-Resets, Bestellbestätigungen, Onboarding-Sequenzen – alles, was programmatisch ausgelöst wird.

Am 13. März 2026 veröffentlichte Resend-Gründer Zeno Rocha das Resend CLI und brachte damit dieselbe Infrastruktur ins Terminal. Das CLI verfügt über 53 Befehle, verteilt auf 13 Ressourcen. Es ist in TypeScript geschrieben, vollständig Open Source unter MIT-Lizenz und funktioniert für drei verschiedene Zielgruppen:

💡
Wenn Sie Anwendungen entwickeln, die E-Mails versenden, benötigen Sie eine Möglichkeit, diese E-Mail-API-Aufrufe zu testen, bevor sie in Produktion gehen. Apidog bietet Ihnen eine kostenlose, visuelle Oberfläche zum Testen von REST-APIs, einschließlich der E-Mail-API von Resend, ohne zusätzlichen Code schreiben zu müssen. Sie können die Resend OpenAPI-Spezifikation importieren, Ihre Umgebungen konfigurieren und organisierte Testsuiten ausführen – alles an einem Ort.
button

Installation des Resend CLI

Es gibt vier Möglichkeiten, das CLI zu installieren. Wählen Sie diejenige, die zu Ihrer Einrichtung passt.

Via cURL (eigenständige Binärdatei, kein Node.js erforderlich)

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

Dies lädt eine vorgefertigte Binärdatei für Ihr Betriebssystem herunter und legt sie in Ihrem PATH ab. Kein Node.js erforderlich.

Via npm

npm install -g resend-cli

Erfordert Node.js 20 oder neuer. Bestätigen Sie nach der Installation, dass es funktioniert:

resend --version

Via Homebrew (macOS und Linux)

brew install resend/cli/resend

Dies ist die sauberste Option auf macOS. Homebrew übernimmt Updates automatisch.

Via PowerShell (Windows)

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

Sie können .exe-Binärdateien auch direkt von der GitHub Releases-Seite herunterladen.

Für die lokale Entwicklung

Wenn Sie zum CLI beitragen oder es aus dem Quellcode erstellen möchten, benötigen Sie Node.js 20+ und 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

Ihr Konto authentifizieren

Führen Sie resend login aus, um das CLI mit Ihrem Resend-Konto zu verbinden:

resend login

Dies öffnet Ihren Browser, führt Sie durch die Erstellung eines API-Schlüssels im Resend-Dashboard und speichert Ihre Anmeldeinformationen lokal unter ~/.config/resend/credentials.json mit eingeschränkten 0600-Berechtigungen.

Für nicht-interaktive Umgebungen (CI/CD, Skripte) überspringen Sie den Browser-Flow und übergeben Sie einen Schlüssel direkt:

resend login --key re_xxxxxxxxxxxxx

Nachdem der Schlüssel gespeichert wurde, müssen Sie sich nicht für jeden Befehl erneut authentifizieren. Das CLI löst Ihren API-Schlüssel in dieser Reihenfolge auf:

  1. --api-key Flag (überschreibt alles)
  2. RESEND_API_KEY Umgebungsvariable
  3. Die gespeicherte Anmeldedatei

Für CI-Pipelines ist das Festlegen von RESEND_API_KEY als geheime Umgebungsvariable der Standardansatz:

RESEND_API_KEY=re_xxx resend emails send --from builds@yourco.com --to dev@yourco.com --subject "Build passed" --text "All tests green."

Unterstützung für mehrere Konten

Wenn Sie mit mehreren Resend-Organisationen oder -Teams arbeiten, unterstützt das CLI auch dies. Wechseln Sie zwischen gespeicherten Profilen, ohne sich abzumelden:

resend auth switch

Oder übergeben Sie ein spezifisches Profil für einen einzelnen Befehl:

resend <command> --profile production

Ihre erste E-Mail senden

Der Hauptbefehl zum Senden ist resend emails send. Mindestens benötigen Sie eine Absenderadresse (von einer verifizierten Domain), einen Empfänger, einen Betreff und einen Text.

Eine Nur-Text-E-Mail senden

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."

Eine HTML-E-Mail senden

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>"

Oder verweisen Sie auf eine lokale HTML-Datei:

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

Zustellung planen

Das CLI parst Datumsangaben in natürlicher Sprache neben ISO 8601 Zeitstempeln:

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

Funktioniert mit Phrasen wie "in 1 Stunde", "nächsten Montag um 15 Uhr" oder einem vollständigen ISO-Zeitstempel.

Die E-Mail-ID erfassen

Bei Weiterleitung schaltet das CLI automatisch auf JSON-Ausgabe um. Leiten Sie die Ausgabe durch jq, um die E-Mail-ID für Folgeoperationen zu erfassen:

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"

Eine geplante E-Mail abbrechen oder aktualisieren

resend emails cancel $EMAIL_ID
resend emails update $EMAIL_ID --schedule "next Monday at 10am"

Kürzliche E-Mails auflisten

resend emails list

Bis zu 100 auf einmal als Batch senden

Erstellen Sie eine JSON-Datei mit einem Array von E-Mail-Objekten:

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

Senden Sie dann den Batch:

resend emails send-batch --file emails.json

Jede Batch-Anfrage zählt als ein API-Aufruf für Ihr Ratenlimit, obwohl sie bis zu 100 E-Mails sendet.

Domains und API-Schlüssel verwalten

Bevor Sie E-Mails senden können, benötigen Sie eine verifizierte Domain. Das CLI führt Sie durch den gesamten Domain-Lebenszyklus.

Eine Domain hinzufügen

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

Unterstützte Regionen: us-east-1, eu-west-1, sa-east-1, ap-northeast-1. Wählen Sie die Region, die Ihren Benutzern am nächsten liegt, um die Latenz zu minimieren.

DNS-Einträge verifizieren

Nachdem Sie die Domain erstellt haben, stellt Resend Ihnen DNS-Einträge (SPF, DKIM, DMARC) zur Verfügung, die Sie hinzufügen müssen. Sobald Sie diese bei Ihrem DNS-Anbieter hinzugefügt haben, führen Sie aus:

resend domains verify --id <domain-id>

Überprüfen Sie den Status, bis er "verified" (verifiziert) zurückgibt:

resend domains get --id <domain-id>

Tracking und TLS konfigurieren

resend domains configure --id <domain-id>  # Interactive configuration

Sie können Open Tracking, Click Tracking und benutzerdefiniertes DKIM über diesen Befehl aktivieren.

Alle Domains auflisten

resend domains list

API-Schlüssel verwalten

Aus Sicherheitsgründen sollten Sie bereichsbezogene API-Schlüssel für jeden Dienst oder jede Umgebung erstellen, anstatt einen Schlüssel überall zu teilen:

resend api-keys create  # Interactive, lets you scope per domain
resend api-keys list
resend api-keys delete --id <key-id>

Bereichsbezogene Schlüssel beschränken, was jede Integration tun kann. Ein Schlüssel, der auf eine Domain beschränkt ist, kann nicht auf Ihre anderen Domains oder Kontoeinstellungen zugreifen.

Erweiterte Funktionen: Broadcasts, Webhooks und Vorlagen

Über das Senden einzelner E-Mails hinaus deckt das Resend CLI drei weitere wichtige Anwendungsfälle ab: Massen-Broadcasts, Webhook-Verwaltung und wiederverwendbare Vorlagen.

Broadcasts

Broadcasts ermöglichen es Ihnen, dieselbe E-Mail an eine große Kontaktliste zu senden. Sie entwerfen zuerst und senden oder planen dann:

resend broadcasts create   # Interactive draft creation
resend broadcasts send --id <broadcast-id>
resend broadcasts schedule --id <broadcast-id> --date "next Monday at 10am"

Webhooks

Webhooks liefern Ihnen Echtzeit-Zustellungsereignisse: Bounces, Öffnungen, Klicks, Spam-Meldungen. Das CLI verwaltet den gesamten Lebenszyklus:

resend webhooks create   # Register a new endpoint
resend webhooks list

Für die lokale Entwicklung verwenden Sie den Befehl webhooks listen, um Webhook-Ereignisse an Ihren Localhost weiterzuleiten:

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

Dies erspart Ihnen das Einrichten von ngrok oder ähnlichen Tunneling-Tools. Das CLI unterstützt 17 Ereignistypen, darunter email.sent, email.delivered, email.bounced, email.opened und email.clicked.

Vorlagen

Vorlagen ermöglichen es Ihnen, wiederverwendbares E-Mail-HTML mit dynamischen Variablen zu erstellen:

resend templates create  # Interactive template builder

Variablen verwenden die Syntax {{variable_name}} mit Fallback-Werten. Nach der Erstellung können Sie beim Senden von E-Mails auf Vorlagen über deren ID verweisen.

Kontakte und Zielgruppen

Resend verfügt über eine integrierte Kontaktverwaltung für Marketing-E-Mails:

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

Diagnose ausführen

Der Befehl doctor überprüft Ihre Umgebung und meldet Probleme:

resend doctor

Es überprüft Ihre CLI-Version, die Gültigkeit des API-Schlüssels, verifizierte Domains und erkennt sogar KI-Codierungsagenten (Cursor, Claude Desktop, VS Code, OpenClaw).

Verwendung des Resend CLI in CI/CD-Pipelines

Das CLI ist darauf ausgelegt, gut in automatisierten Umgebungen zu funktionieren. Einige Muster, die Sie kennen sollten:

Maschinenlesbare Ausgabe

Jedes Mal, wenn Sie die Ausgabe weiterleiten oder --json übergeben, wechselt das CLI zu strukturiertem JSON. Keine Spinner, keine interaktiven Aufforderungen:

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

Das Flag --quiet unterdrückt ebenfalls die gesamte Ausgabe außer JSON:

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

Destruktive Operationen automatisch bestätigen

Verwenden Sie --yes, um Bestätigungsaufforderungen in Skripten zu überspringen:

resend api-keys delete --id <key-id> --yes

GitHub Actions Beispiel

- 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."

Ratenbegrenzungen

Das Ratenlimit der Resend API beträgt 2 Anfragen pro Sekunde und wird von allen API-Schlüsseln Ihres Teams geteilt. Beim Senden von Batches verwenden Sie send-batch (bis zu 100 E-Mails pro Aufruf) anstatt einzelne Sendungen zu durchlaufen.

Testen Ihrer E-Mail-API mit Apidog

Das Resend CLI eignet sich hervorragend für die interaktive Nutzung und einfache Skripte. Wenn Sie jedoch ein Backend entwickeln, das Resends REST-API direkt aufruft, benötigen Sie eine Möglichkeit, diese Endpunkte zu erkunden und zu testen, bevor Sie Anwendungscode schreiben.

Apidog deckt dies ab. Es ist ein kostenloser API-Client, mit dem Sie HTTP-Anfragen senden, Antworten überprüfen, Ihre Testfälle organisieren und Umgebungen für verschiedene API-Schlüssel und Konfigurationen einrichten können.

So passt Apidog in einen typischen Resend-Integrations-Workflow:

Resend API-Spezifikation importieren. Resend bietet API-Referenzdokumentation unter resend.com/docs. Sie können die API-Spezifikation in Apidog importieren, um eine organisierte Ansicht jedes Endpunkts zu erhalten, einschließlich der Anforderungs-/Antwortschemata.

Umgebungen einrichten. Erstellen Sie in Apidog Umgebungen für Entwicklung und Produktion. Speichern Sie Ihren RESEND_API_KEY als Umgebungsvariable und referenzieren Sie ihn in Ihren Anfragen mit {{RESEND_API_KEY}}. Wechseln Sie mit einem Klick zwischen den Umgebungen.

Ihre Sende-Logik testen. Bevor Sie Code zum Senden von E-Mails aus Ihrer Anwendung schreiben, führen Sie den POST /emails-Endpunkt in Apidog mit Ihrer genauen Nutzlast aus. Überprüfen Sie die Antwort, stellen Sie sicher, dass die E-Mail-ID korrekt zurückgegeben wird, und bestätigen Sie das Verhalten für Randfälle (fehlende Felder, ungültige Adressen usw.).

Tests automatisieren. Der Test-Runner von Apidog ermöglicht es Ihnen, API-Aufrufe zu verketten und auf Antwortwerte zu prüfen. Sie können einen Test einrichten, der eine Test-E-Mail sendet, diese per ID abruft und dann ihren Status überprüft, alles ohne Testcode schreiben zu müssen.

Dies fängt Integrationsfehler ab, bevor sie in der Produktion auftreten. In Kombination mit dem Resend CLI für die lokale Entwicklung verfügen Sie sowohl über ein schnelles Terminal-Tool als auch über eine gründliche API-Testumgebung.

Resend Preise

Das CLI selbst ist kostenlos und Open Source. Die Preisgestaltung gilt für die Resend-Plattform:

PlanPreisMonatliche E-MailsTägliches LimitLog-Aufbewahrung
Kostenlos0 $/Monat3.000100/Tag1 Tag
Pro20 $/Monat50.000Kein Limit3 Tage
Scale90 $/Monat100.000Kein Limit7 Tage
EnterpriseIndividuellIndividuellIndividuellIndividuell

Ein paar wissenswerte Punkte zum kostenlosen Tarif:

Dedizierte IPs sind ein 30 $/Monat Add-on im Scale-Plan, verfügbar, wenn Sie mehr als 500 E-Mails/Tag senden.

button

FAQ

Benötige ich Node.js, um das Resend CLI zu installieren?

Nicht für die Installationsmethoden über cURL oder Homebrew, die vorgefertigte eigenständige Binärdateien herunterladen. Der npm-Installationspfad erfordert Node.js 20+.

Warum kann ich nicht von jeder beliebigen E-Mail-Adresse senden?

Resend erfordert eine verifizierte Domain. Sie müssen die Domain besitzen, die von Resend bereitgestellten DNS-Einträge (SPF, DKIM, DMARC) hinzufügen und den Verifizierungsschritt bestehen. Kostenlose E-Mail-Anbieter wie Gmail werden nicht als Absenderadressen unterstützt.

Kann ich mit dem kostenlosen Plan E-Mails an beliebige Adressen senden?

Ja. Der kostenlose Plan schränkt die Empfänger nicht ein. Er begrenzt Sie auf 3.000 E-Mails/Monat mit einem Limit von 100/Tag.

Wie funktioniert die Terminplanung in natürlicher Sprache?

Das CLI parst Phrasen wie "morgen um 9 Uhr", "in 2 Stunden", "nächsten Freitag um 15 Uhr" oder standardmäßige ISO 8601 Zeitstempel. Zeiten werden in der lokalen Zeitzone Ihres Systems interpretiert, sofern Sie nichts anderes angeben.

Was passiert, wenn ich die Ausgabe weiterleite (pipe)?

Das CLI erkennt, wenn es weitergeleitet wird, und schaltet automatisch auf reine JSON-Ausgabe ohne Spinner oder Aufforderungen um. Sie müssen --json nicht explizit übergeben.

Kann ich das CLI mit mehreren Resend-Konten verwenden?

Ja. Verwenden Sie resend login mehrmals, um verschiedene Profile zu speichern, dann resend auth switch, um zwischen ihnen zu wechseln, oder übergeben Sie --profile <name> bei jedem Befehl, um ein spezifisches Profil zu verwenden.

Ist das Resend CLI Open Source?

Ja, es ist unter MIT-Lizenz veröffentlicht und auf github.com/resend/resend-cli gehostet.

Was ist der Unterschied zwischen --quiet und --json?

Beide erzeugen JSON-Ausgabe. --json erzwingt die JSON-Ausgabe. --quiet unterdrückt Spinner und Fortschrittsanzeigen, was ebenfalls den JSON-Modus impliziert. In der Praxis verhalten sie sich bezüglich des Ausgabeformats gleich; --quiet entfernt zusätzlich alle Nicht-Daten-Ausgaben.

Zusätzliche Ressourcen

Praktizieren Sie API Design-First in Apidog

Entdecken Sie eine einfachere Möglichkeit, APIs zu erstellen und zu nutzen