DEV Community

Cover image for Resend CLI installieren und nutzen: Eine Anleitung
Emre Demir
Emre Demir

Posted on • Originally published at apidog.com

Resend CLI installieren und nutzen: Eine Anleitung

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.

Teste Apidog noch heute

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:

  1. --api-key Flag
  2. RESEND_API_KEY Umgebungsvariable
  3. 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_KEY als Variable und referenzieren Sie ihn in Ihren Requests.
  • Sende-Logik testen: Führen Sie POST /emails direkt 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.

Zusätzliche Ressourcen

Top comments (0)