Boogie
jmapcli · JMAP aus dem Terminal
01.
v1.4.0 · macOS
Ein nativer JMAP-Kommandozeilen-Client.

JMAP von der Kommandozeile.

jmapcli spricht JMAP mit Stalwart (und jedem JMAP-Server) direkt aus Ihrem Terminal — senden, lesen, durchsuchen, synchronisieren, verschieben und verwalten Sie E-Mails. Natives Swift, Anmeldedaten im macOS Keychain, keine Telemetrie.

$ brew tap jasonhollis/boogie && brew install jmapcli $ jmapcli login # im macOS Keychain gespeichert $ jmapcli send --to you@example.com --subject "Hi" --body "From the CLI"
02.
— Section 2
Install
Homebrew

Eine Zeile. Signiert.

2.1
Homebrew tap
brew tap jasonhollis/boogie && brew install jmapcli — eine einzelne signierte Binärdatei, keine Abhängigkeiten zum Kompilieren. Updates über brew upgrade.
— macOS
Apple silicon
2.2
Keychain-Authentifizierung
Anmeldedaten werden anhand der JMAP-Identität aus dem macOS Login-Keychain gelesen. Nichts in dotfiles, nichts in env vars.
— security
find-generic
2.3
Keine Telemetrie
Das Tool funkt nirgendwohin. Das einzige Netzwerk, das es kontaktiert, ist Ihr JMAP-Server.
— zero
SDKs
03.
— Section 3
Credentials
macOS Keychain

Dein Passwort berührt nie die Festplatte.

jmapcli speichert kein Geheimnis auf der Festplatte. Dein Passwort (oder Bearer-Token) liegt im macOS-Login-Schlüsselbund; die Account-Datei — ~/.config/jmapcli/config.json, Modus 0600 — enthält nur die Server-URL, deinen Benutzernamen und ein Standard-Flag. Neu beim Schlüsselbund aus dem Terminal? Der gesamte Ablauf besteht aus drei eingebauten security-Befehlen.

1 · Geheimnis speichern — und wieder auslesen. macOS fragt nach dem Wert, sodass das Geheimnis niemals in der Befehlszeile eingegeben, auf dem Bildschirm angezeigt oder in deine Shell-Historie geschrieben wird.

# store it — you’re prompted for the secret, nothing echoes $ security add-generic-password -U -s jmap-password -a you@example.com -l "Boogie JMAP password" -w # read it back at any time $ security find-generic-password -s jmap-password -a you@example.com -w # remove it $ security delete-generic-password -s jmap-password -a you@example.com
-s
service — der Name, den jmapcli nachschlägt: jmap-password für ein Passwort, oder jmap-token für ein Bearer-Token (z. B. Fastmail); setze nur den, den du verwendest.
-a
account — deine E-Mail-Adresse (derselbe Benutzername, den du jmapcli übergibst).
-l
label — was du in der Schlüsselbundverwaltung siehst; -U aktualisiert einen vorhandenen Eintrag an Ort und Stelle.
-w
ohne Wert — fordert zur Eingabe des Geheimnisses auf. Das ist der Teil, der es aus ~/.zsh_history und der Prozessliste heraushält.

2 · jmapcli auf deinen Server zeigen. Registriere den Account einmalig; das Geheimnis wird direkt aus dem soeben gespeicherten Schlüsselbund-Eintrag geladen und erscheint so nie in der Befehlszeile.

$ jmapcli login --url https://mail.example.com --username you@example.com \ --password "$(security find-generic-password -s jmap-password -a you@example.com -w)" # token auth: swap --password for --token (and store under jmap-token above) $ jmapcli list # from here on, every command reads the Keychain for you
3.1
Nichts in deiner Historie, in Logs — oder im Kontext einer KI
Sobald das Geheimnis im Schlüsselbund liegt, übermitteln alltägliche Befehle (list, send, draft, sync) niemals ein Passwort — es kann also nicht in ~/.zsh_history, einer Prozessliste oder CI-Logs auftauchen. Das macht jmapcli sicher für den Einsatz mit Terminal-KI-Tools — ein Agent erhält einen JMAP-Client, niemals dein Geheimnis.
— zsh
CI · agents
3.2
Rotieren oder abmelden
Passwort geändert? Führe die Zeile security add-generic-password … -w erneut aus — -U überschreibt den Eintrag an Ort und Stelle. Um einen Account zu entfernen, löscht jmapcli logout sowohl den Konfigurationseintrag als auch das Schlüsselbund-Geheimnis in einem Schritt (--all löscht jeden Account).
— rotate
logout
3.3
Pro Mac — bewusst so
Der Login-Schlüsselbund wird nicht über iCloud synchronisiert — eine bewusste Grenze, damit dein Passwort den Mac, auf dem du es eingegeben hast, nie verlässt. Wiederhole den security-Schritt einmalig pro Mac; config.json kann in einem synchronisierten Home-Ordner liegen, da es kein Geheimnis enthält.
— per
machine
04.
— Section 4
Commands
One verb each

Alles ist ein Unterbefehl.

login
Anmeldedaten für einen JMAP-Server im Keychain speichern
discover
Die JMAP-Sitzung vom Server ermitteln
accounts
Konfigurierte Konten und alle versandfähigen Identitäten auflisten
mailboxes
Alle Postfächer auflisten
list
E-Mails in einem Postfach auflisten
search
Mail nach Text, Betreff, Absender, Empfänger oder Inhalt durchsuchen (serverseitig)
read
Vollständigen E-Mail-Inhalt anzeigen (Markdown-gerendert)
send
Eine E-Mail per JMAP Submission senden, von jeder versandfähigen Identität (--from)
reply
Auf eine Nachricht per ID antworten, im Thread und mit zitiertem Original
forward
Eine Nachricht per ID weiterleiten, samt ihrer Anhänge
draft
Eine E-Mail in Drafts ablegen, ohne sie zu senden
move · trash · delete
In ein Postfach verschieben, in den Papierkorb verschieben oder per ID dauerhaft löschen
sync
Einen Delta-Sync durchführen und Änderungen anzeigen
contacts
JSContact-Kontakte: auflisten, hinzufügen, bearbeiten, entfernen, Aliase importieren
calendar
Kalender und Termine auflisten, Termine schreiben, Kalenderfarben setzen
sieve
Serverseitige Sieve-Filter auflisten, abrufen, prüfen und hochladen
alias
Empfänger-Aliase verwalten
mcp
Als Model Context Protocol-Server für KI-Tools ausführen
logout
Gespeicherte Anmeldedaten entfernen
05.
— Section 5
Changelog
Every release

Was ist neu.

v1.4.0
Full-text search (text, subject, from, to, body); threaded reply and forward; draft — stage in Drafts without sending; multi-account: accounts and identities, and send/reply/forward as any sendable identity via --from; contacts import-aliases; faster multi-recipient sends. — 2026-06-24
v1.3.1
Calendar event write (add, edit, remove); offline-first hardening. — 2026-06-20
v1.3.0
JSContact contacts — read and write, with a lossless round-trip. — 2026-06-15
v1.2.0
Sieve filters — list, get, validate, and push server-side mail rules. — 2026-06-12
v1.1.0
Calendar — list calendars and events, set colours. — 2026-06-11
v1.0.0
Initial release — send, read, search, sync, and triage mail from the terminal, credentials in the macOS Keychain. — 2026-06-06
— Teil von Boogie

Möchten Sie die vollständige App?

jmapcli ist kostenlos
die native Mail- + Kalender-App ist im App Store
KTP Digital Pty Ltd · ABN 85 648 755 980