Befehle
Wie ein Befehl aufgebaut ist, die globalen Flags, jeder handgeschriebene Befehl und jeder Ressourcen-Namespace.
Wie ein Befehl aufgebaut ist
openemail <command> [subcommand] [arguments] [flags]- Flags stehen irgendwo nach dem Befehl, vor oder nach den Argumenten. Globale Flags wie
--profileund--jsondü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 50und--limit=50sind 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
--flagan und mit--no-flagaus, und--flag=trueund--flag=falsefunktionieren auch. - Eine Liste ist durch Kommas getrennt oder wiederholt:
--to [email protected],[email protected], oder--tozweimal. - Alles nach
--ist ein Argument und nie ein Flag, so kommt eine Suche nach-from:adadurch. - Ein unbekannter Befehl oder ein unbekanntes Flag bricht mit Exit-Code
2ab und schlägt den nächsten Treffer vor.
Globale Flags
| Flag | Was es tut |
|---|---|
| -h, --help | Hilfe für den Befehl oder die Gruppe |
| -v, --version | Die Version der CLI ausgeben |
| --json | Nur JSON auf stdout, Fehler als JSON auf stderr und nie eine Eingabeaufforderung |
| -y, --yes | Destruktive 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-input | Nie fragen. Ein fehlender Wert bricht mit Exit-Code 2 ab |
| --no-color | Keine Farbe, wie NO_COLOR und FORCE_COLOR=0 |
| --debug | Request-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.
| Befehl | Was es tut |
|---|---|
| login | Mit dem Browser anmelden oder einen API-Schlüssel speichern |
| whoami | Als wer Sie angemeldet sind, mit Workspace, Scopes und Ablauf |
| status | Was whoami zeigt, dazu Ihre Absenderadressen und der Stand jeder Domain |
| verify | Jetzt einen Bestätigungscode eingeben, damit heikle Befehle 60 Minuten lang laufen |
| logout | Abmelden und ein Profil vergessen |
| profile list, use, current, remove | Gespeicherte Anmeldungen auflisten, wechseln und entfernen |
| send | Eine 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, unstar | Einen oder mehrere Threads ablegen |
| mark read, mark unread | Threads als gelesen oder ungelesen markieren |
| snooze, unsnooze | Threads bis später ausblenden oder jetzt zurückholen |
| label add, label remove | Labels an Threads setzen oder entfernen |
| temp new, list, read, watch, delete | Wegwerf-Postfächer, ohne Anmeldung |
| ai translate, languages, compose, summarize | Mail mit KI übersetzen, schreiben und zusammenfassen |
| mcp config, tools, call, serve | KI-Clients verbinden oder MCP-Tools selbst aufrufen |
| docs ask, open, read | Diese Dokumentation befragen, öffnen und lesen |
| open [page] | Eine Seite der Web-App öffnen |
| api <method> <path> | Jeden REST-Endpunkt mit Ihrer Anmeldung aufrufen |
| update | Bei npm nach einem neueren Release sehen |
| completion <shell> | Ein Vervollständigungsskript für bash, zsh oder fish ausgeben |
| version | Die 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.
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:replyToist--reply-to, undcolor.backgroundColorist--color-background-color. - Drei Felder, deren Flag mit einem globalen Flag kollidieren würde, sind umbenannt:
--template-version,--label-colorund--resend-key. --datanimmt den ganzen Body als JSON, inline, aus einer Datei mit@pathoder 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.
--limitlegt ihre Größe fest und--cursormacht beim ausgegebenen Cursor weiter.--allliest jede Seite und streamt die Einträge,--max <n>hört nach so vielen auf, und--ndjsongibt 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
--outgeschrieben, 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.
| Namespace | Auch | Verben |
|---|---|---|
| me | get, ping, rotate | |
| keys | key | list, get, create, update, delete, rotate, revoke, list-requests, list-activity, list-workspace-requests, list-workspace-activity |
| addresses | address | list |
| languages | language | list |
| emails | email | send, send-batch, translate, list, get, list-events, get-tracking, cancel, reschedule |
| templates | template | list, 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 |
| tracking | list, get-stats, get, list-opens, list-clicks | |
| threads | thread | list, get, update, trash, snooze, unsnooze, list-attachments |
| drafts | draft | list, get, create, update, delete |
| labels | list, list-colors, get, create, update, delete | |
| contacts | contact | list, get, create, update, delete, set-audiences, list-people, save, delete-many, set-photo, remove-photo, block, unblock, list-threads, activity |
| audiences | audience | list, growth, get, create, update, delete, empty, list-contacts, add-contact, remove-contact, add-contacts, remove-contacts, import-contacts |
| broadcasts | broadcast | preview, send, list, get, stats, list-recipients, get-recipient, cancel |
| domains | domain | list, get, create, verify, update, delete, list-addresses, create-address, get-address, update-address, delete-address |
| rules | rule | list, get, create, update, delete, reorder, test, list-runs |
| webhooks | webhook | list, get, create, update, delete, rotate-secret, test, list-deliveries, get-delivery, replay-delivery, list-workspace-deliveries, list-activity, list-workspace-activity |
| imports | import | list, get, create, upload-state, upload-chunk, start, cancel, list-failures, delete-upload, import-files |
| provider-imports | provider-import, providerImports | inspect, create, list, get, cancel |
| calendar | list-events, get-event, get-event-ics | |
| settings | setting | get, update |
| roles | role | list, get, create, update, delete, list-permissions |
| members | member | list, get, add, update, remove, grant-address, revoke-address, list-invitations, revoke-invitation, resend-invitation |
| suppressions | suppression | list, get, add, remove |
| files | file | list, get, stats, download, list-links, create-link, revoke-link, upload, delete, delete-many |
| temp-mail | tempMail | list-domains, create, get, extend, delete, list-messages, get-message, delete-message, list-attachments |
Aliasse
| Alias | Für |
|---|---|
| ls | list |
| show, view | get |
| new, add | create |
| edit | update |
| rm, del, remove | delete |
| openemail ls | openemail inbox |
| openemail show | openemail 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.
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,--datanimmt den Body als Inline-JSON, aus einer Datei mit@pathoder von stdin mit-.-q,--queryund-H,--headernehmenkey=valueund lassen sich wiederholen, und-o,--outspeichert 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-Code2abgelehnt, bevor etwas gesendet wird, denn die CLI setzt die Anmeldedaten selbst.
Hilfe
openemail --helpopenemail help sendopenemail domains --helpopenemail domains create --helpopenemail --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.