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
# OAuth — no app password to create, copy, or rotate.
# Your browser opens once; the token lands in the Keychain under jmap-oauth.
$ jmapcli login --url https://api.fastmail.com --username you@fastmail.com --oauth
# Stalwart — or any server that speaks RFC 8252 — same flag.
$ jmapcli login --url https://mail.example.com --username you@example.com --oauth
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