Zur Dokumentation springen
CLI

Befehle

Wie ein Befehl aufgebaut ist, die globalen Flags, jeder handgeschriebene Befehl und jeder Ressourcen-Namespace.

Wie ein Befehl aufgebaut ist

Grammatik
openemail <command> [subcommand] [arguments] [flags]
  • Flags stehen irgendwo nach dem Befehl, vor oder nach den Argumenten. Globale Flags wie --profile und --json dürfen auch davor stehen, und jedes andere Flag an dieser Stelle bricht mit dem Hinweis ab, es hinter den Befehlsnamen zu setzen.
  • Ein Wert folgt seinem Flag nach einem Leerzeichen oder einem Gleichheitszeichen, --limit 50 und --limit=50 sind also dasselbe. Kurze Flags nehmen auch Werte, wie in -n 50.
  • Ein Wert, der mit einem Bindestrich beginnt, braucht das Gleichheitszeichen, wie in --subject=-draft-, denn nach einem Leerzeichen gilt er als nächstes Flag, und dem ersten wird ein fehlender Wert gemeldet. Negative Zahlen funktionieren auf beide Arten. Ein leerer Wert ist ein Nutzungsfehler statt eines stillen Standardwerts.
  • Ein Schalter ist mit --flag an und mit --no-flag aus, und --flag=true und --flag=false funktionieren auch.
  • Eine Liste ist durch Kommas getrennt oder wiederholt: --to [email protected],[email protected], oder --to zweimal.
  • Alles nach -- ist ein Argument und nie ein Flag, so kommt eine Suche nach -from:ada durch.
  • Ein unbekannter Befehl oder ein unbekanntes Flag bricht mit Exit-Code 2 ab und schlägt den nächsten Treffer vor.

Globale Flags

FlagWas es tut
-h, --helpHilfe für den Befehl oder die Gruppe
-v, --versionDie Version der CLI ausgeben
--jsonNur JSON auf stdout, Fehler als JSON auf stderr und nie eine Eingabeaufforderung
-y, --yesDestruktive Aktionen ohne Rückfrage bestätigen. Überspringt nie einen Bestätigungscode
--profile <name>Dieses gespeicherte Profil nutzen, wie OPENEMAIL_PROFILE
--api-key <key>Diesen API-Schlüssel nur für diesen Befehl nutzen, Profile ignorieren
--base-url <url>Der API-Ursprung für einen API-Schlüssel oder einen Befehl, der keine Anmeldedaten sendet, wie OPENEMAIL_BASE_URL. Eine gespeicherte Anmeldung nutzt immer ihren eigenen
--no-inputNie fragen. Ein fehlender Wert bricht mit Exit-Code 2 ab
--no-colorKeine Farbe, wie NO_COLOR und FORCE_COLOR=0
--debugRequest-IDs, die fehlgeschlagene Anfrage und Stacktraces ausgeben

Handgeschriebene Befehle

Diese sind für Menschen geschrieben: Sie fragen nach Fehlendem, formatieren ihre Ausgabe und kombinieren mehrere API-Aufrufe, wo das hilft.

BefehlWas es tut
loginMit dem Browser anmelden oder einen API-Schlüssel speichern
whoamiAls wer Sie angemeldet sind, mit Workspace, Scopes und Ablauf
statusWas whoami zeigt, dazu Ihre Absenderadressen und der Stand jeder Domain
verifyJetzt einen Bestätigungscode eingeben, damit heikle Befehle 60 Minuten lang laufen
logoutAbmelden und ein Profil vergessen
profile list, use, current, removeGespeicherte Anmeldungen auflisten, wechseln und entfernen
sendEine E-Mail senden, planen oder übersetzen und senden
inbox [folder]Die Threads in einem Ordner auflisten
search <query>Mail mit der Syntax der App durchsuchen
read <thread-id>Einen Thread Nachricht für Nachricht lesen
reply <thread-id>Auf die letzte Nachricht eines Threads antworten
archive, unarchive, trash, star, unstarEinen oder mehrere Threads ablegen
mark read, mark unreadThreads als gelesen oder ungelesen markieren
snooze, unsnoozeThreads bis später ausblenden oder jetzt zurückholen
label add, label removeLabels an Threads setzen oder entfernen
temp new, list, read, watch, deleteWegwerf-Postfächer, ohne Anmeldung
ai translate, languages, compose, summarizeMail mit KI übersetzen, schreiben und zusammenfassen
mcp config, tools, call, serveKI-Clients verbinden oder MCP-Tools selbst aufrufen
docs ask, open, readDiese Dokumentation befragen, öffnen und lesen
open [page]Eine Seite der Web-App öffnen
api <method> <path>Jeden REST-Endpunkt mit Ihrer Anmeldung aufrufen
updateBei npm nach einem neueren Release sehen
completion <shell>Ein Vervollständigungsskript für bash, zsh oder fish ausgeben
versionDie Versionen von CLI, SDK und Laufzeitumgebung ausgeben
help [command]Die Hilfe zu jedem Befehl zeigen

Ressourcenbefehle

Jede Methode des SDK ist auch ein Befehl, openemail <namespace> <verb>. Der Namespace ist der SDK-Namespace in Kebab-Case, und das Verb ist der Methodenname in Kebab-Case, keys.listRequests ist also openemail keys list-requests. Zusammen decken sie die ganze REST API ab.

Terminal
openemail domains listopenemail domains create --domain acme.comopenemail rules create --data @rule.jsonopenemail keys list-requests 9f2c1a4b7e05d3862c1f0a44 --failed-only --allopenemail files download file_6bb640f5b99e47deb758f1f5 --out report.pdf
  • Eine ID, die die Methode nimmt, ist ein Argument, wie in openemail domains get <id>. Jedes Feld des Request-Bodys ist ein Flag, benannt nach dem Feld in Kebab-Case: replyTo ist --reply-to, und color.backgroundColor ist --color-background-color.
  • Drei Felder, deren Flag mit einem globalen Flag kollidieren würde, sind umbenannt: --template-version, --label-color und --resend-key.
  • --data nimmt den ganzen Body als JSON, inline, aus einer Datei mit @path oder von stdin mit -, und jedes Flag, das Sie zusätzlich übergeben, überschreibt seinen Schlüssel. Ein Flag, das ein Objekt nimmt, liest JSON auf dieselbe Weise.
  • Zahlen und Schalter werden als solche gelesen, und Listen sind durch Kommas getrennt oder wiederholt.
  • Ein fehlender Pflichtwert wird in einem Terminal abgefragt und ist überall sonst ein Nutzungsfehler (Exit-Code 2).
  • Ein List-Verb liest eine Seite. --limit legt ihre Größe fest und --cursor macht beim ausgegebenen Cursor weiter. --all liest jede Seite und streamt die Einträge, --max <n> hört nach so vielen auf, und --ndjson gibt ein JSON-Objekt pro Zeile aus.
  • Alles Destruktive, etwa Löschen, Widerrufen, Rotieren, Abbrechen oder Leeren, bittet um Bestätigung, außer Sie übergeben --yes.
  • Ein Download wird in die Datei aus --out geschrieben, und nur dann auf stdout, wenn stdout kein Terminal ist.

openemail <namespace> <verb> --help zeigt jedes Argument und Flag mit seinem Typ, die Scopes, die der Aufruf braucht, Methode und Pfad, was er zurückgibt, und die Hinweise aus der API-Referenz.

Jeder Namespace

Auch nennt die anderen Namen, auf die ein Namespace hört.

NamespaceAuchVerben
meget, ping, rotate
keyskeylist, get, create, update, delete, rotate, revoke, list-requests, list-activity, list-workspace-requests, list-workspace-activity
addressesaddresslist
languageslanguagelist
emailsemailsend, send-batch, translate, list, get, list-events, get-tracking, cancel, reschedule
templatestemplatelist, get, create, update, duplicate, replace-content, delete, list-versions, get-version, publish, restore-version, delete-version, list-starters, get-starter, list-fonts, render, preview, get-analytics, list-sends, send
trackinglist, get-stats, get, list-opens, list-clicks
threadsthreadlist, get, update, trash, snooze, unsnooze, list-attachments
draftsdraftlist, get, create, update, delete
labelslist, list-colors, get, create, update, delete
contactscontactlist, get, create, update, delete, set-audiences, list-people, save, delete-many, set-photo, remove-photo, block, unblock, list-threads, activity
audiencesaudiencelist, growth, get, create, update, delete, empty, list-contacts, add-contact, remove-contact, add-contacts, remove-contacts, import-contacts
broadcastsbroadcastpreview, send, list, get, stats, list-recipients, get-recipient, cancel
domainsdomainlist, get, create, verify, update, delete, list-addresses, create-address, get-address, update-address, delete-address
rulesrulelist, get, create, update, delete, reorder, test, list-runs
webhookswebhooklist, get, create, update, delete, rotate-secret, test, list-deliveries, get-delivery, replay-delivery, list-workspace-deliveries, list-activity, list-workspace-activity
importsimportlist, get, create, upload-state, upload-chunk, start, cancel, list-failures, delete-upload, import-files
provider-importsprovider-import, providerImportsinspect, create, list, get, cancel
calendarlist-events, get-event, get-event-ics
settingssettingget, update
rolesrolelist, get, create, update, delete, list-permissions
membersmemberlist, get, add, update, remove, grant-address, revoke-address, list-invitations, revoke-invitation, resend-invitation
suppressionssuppressionlist, get, add, remove
filesfilelist, get, stats, download, list-links, create-link, revoke-link, upload, delete, delete-many
temp-mailtempMaillist-domains, create, get, extend, delete, list-messages, get-message, delete-message, list-attachments

Aliasse

AliasFür
lslist
show, viewget
new, addcreate
editupdate
rm, del, removedelete
openemail lsopenemail inbox
openemail showopenemail read

In members und suppressions, deren Verben add und remove heißen, führen new und create zu add, und rm, del und delete zu remove. Einige handgeschriebene Unterbefehle haben eigene Aliasse, die ihre Hilfe nennt.

Jeder REST-Aufruf

openemail api <method> <path> sendet eine Anfrage an die REST API über denselben Transport wie jeder andere Befehl, sodass Ihr Profil oder Schlüssel, die Token-Erneuerung und Bestätigungscodes gelten. Ein Pfad allein ist ein GET. Eine JSON-Antwort wird formatiert ausgegeben, und eine fehlgeschlagene Anfrage gibt den API-Fehler aus und endet mit dem passenden Exit-Code.

Terminal
openemail api /keys/selfopenemail api GET /threads --query folder=inbox --query limit=5openemail api POST /labels --data '{"name":"Receipts"}'openemail api PATCH /threads/CAHk7pQ2x9LmZ4 --data @patch.jsonopenemail api GET /files/file_6bb640f5b99e47deb758f1f5/content --out report.pdf
  • -d, --data nimmt den Body als Inline-JSON, aus einer Datei mit @path oder von stdin mit -. -q, --query und -H, --header nehmen key=value und lassen sich wiederholen, und -o, --out speichert die Antwort unverändert in einer Datei.
  • Der Pfad ist relativ zum API-Ursprung. Eine vollständige URL, ein Pfad, der den Ursprung verlassen würde, und ein Authorization-Header werden mit Exit-Code 2 abgelehnt, bevor etwas gesendet wird, denn die CLI setzt die Anmeldedaten selbst.

Hilfe

Terminal
openemail --helpopenemail help sendopenemail domains --helpopenemail domains create --help

openemail --help listet jeden Befehl nach seinem Zweck. Eine Gruppe listet ihre Unterbefehle mit Beispielen, und ein Befehl zeigt alles, was er nimmt. openemail docs open cli öffnet diese Seiten.

Der Posteingang,
nach eigenen Regeln.

E-Mail-Infrastruktur für Unternehmen, KI, Agenten und persönliche E-Mail. Gebaut für Skalierung, Privatsphäre und Kontrolle. Alles, was E-Mail vom ersten Tag an hätte haben sollen.

OpenEmail

E-Mail-Infrastruktur für Unternehmen, KI, Agenten und persönliche E-Mail. Gebaut für Skalierung, Privatsphäre und Kontrolle. Alles, was E-Mail vom ersten Tag an hätte haben sollen.

© 2026 OpenEmail. Alle Rechte vorbehalten.