Boogie
jmapcli · JMAP din terminal
01.
v1.4.0 · macOS
Un client JMAP nativ pentru linia de comandă.

JMAP din linia de comandă.

jmapcli vorbește JMAP cu Stalwart (și cu orice server JMAP) direct din terminal — trimite, citește, caută, sincronizează, mută și gestionează emailuri. Swift nativ, credențiale în Keychain pe macOS, fără telemetrie.

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

O singură linie. Semnată.

2.1
Homebrew tap
brew tap jasonhollis/boogie && brew install jmapcli — un singur binar semnat, fără dependențe de compilat. Actualizări prin brew upgrade.
— macOS
Apple silicon
2.2
Autentificare prin Keychain
Credențialele sunt citite din Keychain-ul de autentificare macOS, în funcție de identitatea JMAP. Nimic în dotfiles, nimic în env vars.
— security
find-generic
2.3
Fără telemetrie
Instrumentul nu trimite nimic acasă. Singura rețea pe care o accesează este serverul tău JMAP.
— zero
SDKs
03.
— Section 3
Credentials
macOS Keychain

Parola ta nu ajunge niciodată pe disc.

jmapcli nu păstrează niciun secret pe disc. Parola (sau tokenul de acces) este stocată în Keychain-ul de autentificare macOS; fișierul de cont — ~/.config/jmapcli/config.json, modul 0600 — conține doar URL-ul serverului, numele de utilizator și un indicator implicit. La primul contact cu Keychain din terminal? Întregul flux de lucru constă în trei comenzi security integrate.

1 · Stochează un secret — și citește-l înapoi. macOS solicită valoarea prin prompt, astfel încât secretul nu este niciodată introdus în linia de comandă, afișat pe ecran sau scris în istoricul shellului.

# 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 — numele pe care îl caută jmapcli: jmap-password pentru o parolă sau jmap-token pentru un token de acces (ex. Fastmail); configurează doar pe cel pe care îl folosești.
-a
account — adresa ta de email (același nume de utilizator pe care îl dai jmapcli).
-l
label — ce vei vedea în aplicația Keychain Access; -U actualizează un element existent în loc.
-w
fără valoare — solicită secretul prin prompt. Acesta este mecanismul care îl ține departe de ~/.zsh_history și din lista de procese.

2 · Indică jmapcli spre serverul tău. Înregistrează contul o singură dată; secretul este preluat direct din elementul Keychain pe care tocmai l-ai stocat, astfel că nu apare niciodată în linia de comandă.

$ 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
Nimic în istoricul tău, jurnale — sau în contextul unui AI
Odată ce secretul se află în Keychain, comenzile de zi cu zi (list, send, draft, sync) nu transmit niciodată o parolă, astfel că nu poate fi capturată în ~/.zsh_history, o listă de procese sau jurnalele CI. De aceea jmapcli este sigur de utilizat din instrumente terminal-AI — unui agent i se oferă un client JMAP, niciodată secretul tău.
— zsh
CI · agents
3.2
Rotire sau deconectare
Ți-ai schimbat parola? Rulează din nou linia security add-generic-password … -w-U o suprascrie în loc. Pentru a elimina un cont, jmapcli logout șterge atât intrarea din configurație cât și secretul din Keychain într-un singur pas (--all șterge toate conturile).
— rotate
logout
3.3
Per-Mac, by design
Keychain-ul de autentificare nu este sincronizat prin iCloud — o limită deliberată, astfel încât parola ta nu părăsește niciodată Mac-ul pe care ai introdus-o. Repetă pasul security o dată per Mac; config.json poate fi plasat într-un folder sincronizat deoarece nu conține niciun secret.
— per
machine
04.
— Section 4
Commands
One verb each

Totul este o subcomandă.

login
Stochează în Keychain credențialele pentru un server JMAP
discover
Descoperă sesiunea JMAP de pe server
accounts
Afișează conturile configurate și fiecare identitate de expediere
mailboxes
Listează toate cutiile poștale
list
Listează emailurile dintr-o cutie poștală
search
Caută în e-mail după text, subiect, expeditor, destinatar sau conținut (pe server)
read
Afișează conținutul complet al emailului (randat din Markdown)
send
Trimite un e-mail prin JMAP Submission, de la orice identitate de expediere (--from)
reply
Răspunde la un mesaj după ID, în fir și citând originalul
forward
Redirecționează un mesaj după ID, reatașând fișierele atașate
draft
Pregătește un e-mail în Drafts fără a-l trimite
move · trash · delete
Mută într-o cutie poștală, mută la Coș sau distruge definitiv după ID
sync
Efectuează o sincronizare delta și arată ce s-a schimbat
contacts
Contacte JSContact: listare, adăugare, editare, ștergere, import alias
calendar
Afișează calendare și evenimente, scrie evenimente, setează culorile
sieve
Listează, preia, validează și încarcă filtre Sieve pe server
alias
Gestionează aliasurile destinatarilor
mcp
Rulează ca server Model Context Protocol pentru instrumente AI
logout
Șterge credențialele stocate
05.
— Section 5
Changelog
Every release

Ce e nou.

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
— Parte din Boogie

Vrei aplicația completă?

jmapcli este gratuit
aplicația nativă Mail + Calendar este pe App Store
KTP Digital Pty Ltd · ABN 85 648 755 980