Das Resend CLI ist das offizielle Kommandozeilen-Tool für Resend, eine E-Mail-Plattform speziell für Entwickler. Installieren Sie das CLI mit npm install -g resend-cli oder brew install resend/cli/resend, authentifizieren Sie sich mit resend login und automatisieren Sie E-Mail-Versand, Domain-Management und Ihre gesamte E-Mail-Infrastruktur direkt vom Terminal oder aus Ihrer CI/CD-Pipeline.
Was ist Resend?
Resend ist eine E-Mail-API für Entwickler. Verbinden Sie Ihre Domain, generieren Sie einen API-Schlüssel und senden Sie transaktionale E-Mails wie Passwort-Resets, Bestellbestätigungen oder Onboarding-Sequenzen direkt aus Ihrer Anwendung.
Am 13. März 2026 veröffentlichte Resend-Gründer Zeno Rocha das Resend CLI. Das CLI bietet 53 Befehle über 13 Ressourcen, ist in TypeScript geschrieben, Open Source (MIT-Lizenz) und adressiert drei Zielgruppen:
- Menschen: Interaktive Prompts, Tabellen, Zeitangaben in natürlicher Sprache ("morgen um 9 Uhr")
- KI-Agenten: JSON-Modus, Idempotenz-Keys, automatische Agentenerkennung
- CI/CD-Pipelines: Auth via Umgebungsvariablen, skriptbare Flags, konsistente Exit-Codes
💡Wenn Sie Anwendungen entwickeln, die E-Mails verschicken, sollten Sie Ihre E-Mail-API-Calls testen, bevor es in Produktion geht. Apidog bietet eine kostenlose, visuelle Oberfläche zum Testen von REST-APIs, inklusive der Resend E-Mail-API – ganz ohne Code. Importieren Sie die Resend OpenAPI-Spezifikation, konfigurieren Sie Umgebungen und führen Sie organisierte Testsuiten aus – alles zentral.
Installation des Resend CLI
Es gibt vier Möglichkeiten, das CLI zu installieren. Wählen Sie die passende Methode für Ihr Setup:
Via cURL (Standalone-Binary, kein Node.js nötig)
curl -fsSL https://resend.com/install.sh | bash
Lädt das Binary für Ihr OS herunter und platziert es im PATH. Node.js ist nicht erforderlich.
Via npm
npm install -g resend-cli
Node.js 20+ erforderlich. Nach Installation Funktion prüfen:
resend --version
Via Homebrew (macOS & Linux)
brew install resend/cli/resend
Empfohlen für macOS. Updates werden automatisch gehandhabt.
Via PowerShell (Windows)
irm https://resend.com/install.ps1 | iex
Alternativ können Sie .exe-Binärdateien direkt von der GitHub Releases-Seite laden.
Für die lokale Entwicklung
Zum Mitentwickeln oder Builden aus dem Quellcode (Node.js 20+, pnpm):
git clone https://github.com/resend/resend-cli.git
cd resend-cli
pnpm install
pnpm build # ergibt ./dist/cli.cjs
pnpm build:bin # natives Binary in ./dist/resend
Konto authentifizieren
Mit resend login verbinden Sie das CLI mit Ihrem Resend-Konto:
resend login
Der Browser öffnet sich, Sie erstellen einen API-Key im Dashboard und Ihre Zugangsdaten werden lokal unter ~/.config/resend/credentials.json (0600 Permissions) gespeichert.
Für CI/CD oder Skripte: Überspringen Sie den Browser und geben Sie den Key direkt an:
resend login --key re_xxxxxxxxxxxxx
API-Keys werden in folgender Reihenfolge aufgelöst:
-
--api-keyFlag -
RESEND_API_KEYUmgebungsvariable - Gespeicherte Datei
Standard in der Pipeline: RESEND_API_KEY als Secret setzen:
RESEND_API_KEY=re_xxx resend emails send --from builds@yourco.com --to dev@yourco.com --subject "Build passed" --text "All tests green."
Mehrere Konten nutzen
Arbeiten Sie mit mehreren Resend-Organisationen? Mit Profilen wechseln Sie einfach:
resend auth switch
Oder Profil direkt an einen Befehl hängen:
resend <command> --profile production
Erste E-Mail senden
Befehl: resend emails send. Notwendig: Absenderadresse (verifizierte Domain), Empfänger, Betreff, Text.
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."
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 lokale HTML-Datei referenzieren:
resend emails send \
--from "team@yourco.com" \
--to user@example.com \
--subject "Welcome aboard" \
--html-file ./templates/welcome.html
E-Mail-Zustellung planen
CLI versteht natürliche Sprache und ISO 8601 Zeitangaben:
resend emails send \
--from "you@yourco.com" \
--to user@example.com \
--subject "Scheduled check-in" \
--text "Just checking in." \
--schedule "tomorrow at 9am"
Beispiele: "in 1 Stunde", "nächsten Montag um 15 Uhr", ISO-Zeitstempel.
E-Mail-ID erfassen
Für Folgeoperationen ID extrahieren:
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"
Geplante E-Mail abbrechen/aktualisieren
resend emails cancel $EMAIL_ID
resend emails update $EMAIL_ID --schedule "next Monday at 10am"
E-Mails auflisten
resend emails list
Batch-Send (bis 100 E-Mails)
JSON-Datei mit E-Mail-Objekten erstellen:
[
{ "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:
resend emails send-batch --file emails.json
Ein Batch zählt als ein API-Call (max. 100 E-Mails).
Domains und API-Schlüssel verwalten
Vor dem Senden E-Mails: Domain verifizieren. Das CLI unterstützt jede Phase.
Domain hinzufügen
resend domains create --name yourdomain.com --region us-east-1
Regionen: us-east-1, eu-west-1, sa-east-1, ap-northeast-1. Wählen Sie die Region nahe Ihrer User.
DNS-Einträge verifizieren
Nach Domain-Erstellung SPF/DKIM/DMARC-Records zu Ihrem DNS hinzufügen. Dann:
resend domains verify --id <domain-id>
Status prüfen:
resend domains get --id <domain-id>
Tracking und TLS konfigurieren
resend domains configure --id <domain-id>
Open Tracking, Click Tracking und Custom DKIM lassen sich interaktiv aktivieren.
Domains auflisten
resend domains list
API-Schlüssel verwalten
Empfohlen: Für jede Umgebung/Dienst einen scoped API-Key anlegen:
resend api-keys create
resend api-keys list
resend api-keys delete --id <key-id>
Scoped Keys beschränken Integrationen auf bestimmte Domains oder Funktionen.
Erweiterte Funktionen: Broadcasts, Webhooks, Vorlagen
Neben Einzelversand unterstützt das CLI Broadcasts (Massenversand), Webhook-Management und Templates.
Broadcasts
resend broadcasts create
resend broadcasts send --id <broadcast-id>
resend broadcasts schedule --id <broadcast-id> --date "next Monday at 10am"
Webhooks
resend webhooks create
resend webhooks list
Für lokale Entwicklung Webhooks an localhost weiterleiten:
resend webhooks listen --forward-to http://localhost:3000/webhooks/resend
Unterstützt alle gängigen Ereignistypen (z.B. email.sent, email.bounced, email.opened).
Vorlagen
resend templates create
Templates verwenden {{variable_name}}-Syntax mit Fallbacks. Beim Senden kann auf Template-ID referenziert werden.
Kontakte und Zielgruppen
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 prüfen
resend doctor
Checkt CLI-Version, API-Key-Gültigkeit, Domain-Status und erkennt KI-Codeagents.
Resend CLI in CI/CD-Pipelines nutzen
Für automatisierte Umgebungen konzipiert. Praktische Patterns:
Maschinenlesbare Ausgabe
resend emails send --from a@co.com --to b@co.com --subject "Deploy" --text "Done" --json
--quiet unterdrückt alle Ausgaben außer JSON:
resend emails list --quiet | jq '.[0].id'
Automatische Bestätigung für destruktive Aktionen
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
API-Limit: 2 Requests/Sekunde, teamweit geteilt. Für Bulk-Versand send-batch verwenden (bis 100 E-Mails pro Call).
E-Mail-API mit Apidog testen
Für interaktive Nutzung und Skripte ist das CLI optimal. Entwickeln Sie aber ein Backend, das Resends REST-API direkt nutzt, empfiehlt sich Apidog als API-Client:
- API-Spezifikation importieren: Importieren Sie die OpenAPI-Spezifikation von Resend (resend.com/docs) in Apidog für eine strukturierte Übersicht aller Endpunkte.
-
Umgebungen einrichten: Legen Sie Umgebungen für Entwicklung/Produktion an, speichern Sie
RESEND_API_KEYals Variable und referenzieren Sie ihn in Ihren Requests. -
Sende-Logik testen: Führen Sie
POST /emailsdirekt in Apidog aus, prüfen Sie die Antwort und testen Sie Edge Cases. - Automatisierte Tests: Mit dem Test-Runner verketten Sie API-Calls und prüfen Antwortwerte – alles ohne eigenen Testcode.
So werden Integrationsfehler früh erkannt. In Kombination mit dem CLI haben Sie ein schnelles Terminal-Tool und eine umfassende API-Testumgebung.
Resend Preise
Das CLI selbst ist kostenlos/open source. Die Preisstruktur gilt für die Plattform:
| Plan | Preis | Monatliche E-Mails | Tägliches Limit | Log-Aufbewahrung |
|---|---|---|---|---|
| Kostenlos | 0 $/Monat | 3.000 | 100/Tag | 1 Tag |
| Pro | 20 $/Monat | 50.000 | Kein Limit | 3 Tage |
| Scale | 90 $/Monat | 100.000 | Kein Limit | 7 Tage |
| Enterprise | Individuell | Individuell | Individuell | Individuell |
Wichtige Hinweise zum Free-Plan:
- 100/Tag-Limit ist für Tests/kleine Projekte, nicht Produktion
- Analytics (Open-/Click-Tracking) nur mit Bezahlplan
- Log-Aufbewahrung nur 1 Tag (danach keine Statusabfrage möglich)
- Ratenlimit: 2 Requests/Sekunde teamweit
- Bezahlpläne erlauben Überziehung bis zum 5-fachen des Kontingents (Schutz vor Überraschungsrechnungen)
Dedizierte IPs: $30/Monat Add-on im Scale-Tarif, ab 500 E-Mails/Tag verfügbar.
FAQ
Benötige ich Node.js für das CLI?
Nein, nicht mit cURL-/Homebrew-Installation (nutzt Binary). npm-Installation erfordert Node.js 20+.
Warum kann ich nicht von beliebigen Adressen senden?
Es muss eine verifizierte Domain hinterlegt sein (SPF/DKIM/DMARC im DNS). Kostenlose Mailprovider (z.B. Gmail) sind als Absender nicht möglich.
Kann ich mit dem Free-Plan beliebige Empfänger nutzen?
Ja, aber begrenzt auf 3.000 Mails/Monat, 100/Tag.
Wie funktioniert die Terminplanung?
Das CLI versteht natürliche Sprache ("morgen 9 Uhr", "in 2 Stunden", ISO-Zeitstempel). Zeiten gelten in Ihrer Systemzeitzone.
Was passiert beim Pipe der Ausgabe?
Das CLI erkennt Weiterleitungen und gibt dann automatisch reines JSON ohne Spinner oder Prompts aus. --json ist nicht nötig.
Kann ich mehrere Resend-Konten nutzen?
Ja. Mit resend login mehrere Profile anlegen, mit resend auth switch wechseln oder --profile <name> pro Befehl nutzen.
Ist das Resend CLI Open Source?
Ja, MIT-Lizenz. Code: github.com/resend/resend-cli
Unterschied zwischen --quiet und --json?
Beide liefern JSON. --json erzwingt JSON-Output, --quiet unterdrückt alle nicht-Daten-Ausgaben (z.B. Spinner), aktiviert damit ebenfalls JSON-Modus.
Top comments (0)