Boogie
jmapcli · JMAP z terminala
01.
v1.4.0 · macOS
Natywny klient JMAP dla wiersza poleceń.

JMAP z wiersza poleceń.

jmapcli komunikuje się przez JMAP ze Stalwart (i z dowolnym serwerem JMAP) wprost z terminala — wysyłaj, czytaj, wyszukuj, synchronizuj, przenoś i zarządzaj pocztą. Natywny Swift, dane logowania w Keychain na macOS, bez telemetrii.

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

Jedna linia. Podpisana.

2.1
Homebrew tap
brew tap jasonhollis/boogie && brew install jmapcli — jeden podpisany plik binarny, bez zależności do skompilowania. Aktualizacje przez brew upgrade.
— macOS
Apple silicon
2.2
Uwierzytelnianie przez Keychain
Dane logowania są odczytywane z Keychain logowania macOS według tożsamości JMAP. Nic w dotfiles, nic w env vars.
— security
find-generic
2.3
Bez telemetrii
Narzędzie niczego nie wysyła do twórcy. Jedyną siecią, z którą się łączy, jest twój serwer JMAP.
— zero
SDKs
03.
— Section 3
Credentials
macOS Keychain

Twoje hasło nigdy nie trafia na dysk.

jmapcli nie przechowuje żadnych sekretów na dysku. Twoje hasło (lub token Bearer) jest przechowywane w Keychain logowania macOS; plik konfiguracyjny — ~/.config/jmapcli/config.json, tryb 0600 — zawiera jedynie adres URL serwera, nazwę użytkownika i flagę domyślną. Dopiero zaczynasz z Keychain z poziomu terminala? Cały przepływ pracy sprowadza się do trzech wbudowanych poleceń security.

1 · Zapisz sekret — i odczytaj go z powrotem. macOS prosi o podanie wartości, dzięki czemu sekret nigdy nie jest wpisywany w wierszu poleceń, wyświetlany na ekranie ani zapisywany w historii powłoki.

# 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 — nazwa, której szuka jmapcli: jmap-password dla hasła lub jmap-token dla tokenu Bearer (np. Fastmail); ustaw tylko ten, którego używasz.
-a
account — Twój adres e-mail (ta sama nazwa użytkownika, którą podajesz w jmapcli).
-l
label — to, co zobaczysz w aplikacji Keychain Access; -U aktualizuje istniejący wpis w miejscu.
-w
bez wartości — monit o podanie sekretu. To właśnie ten element sprawia, że sekret nie trafia do ~/.zsh_history ani na listę procesów.

2 · Wskaż jmapcli swój serwer. Zarejestruj konto raz; sekret jest pobierany bezpośrednio z właśnie zapisanego wpisu w Keychain, dzięki czemu nigdy nie pojawia się w wierszu poleceń.

$ 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
Nic w historii, logach — ani w kontekście AI
Gdy sekret jest w Keychain, codzienne polecenia (list, send, draft, sync) nigdy nie przenoszą hasła, więc nie może ono zostać przechwycone przez ~/.zsh_history, listę procesów ani logi CI. To właśnie sprawia, że jmapcli jest bezpieczny w użyciu z narzędziami AI w terminalu — agent otrzymuje klienta JMAP, nigdy Twój sekret.
— zsh
CI · agents
3.2
Rotacja hasła lub wylogowanie
Zmieniłeś hasło? Uruchom ponownie linię security add-generic-password … -w-U nadpisuje je w miejscu. Aby usunąć konto, jmapcli logout usuwa jednocześnie wpis konfiguracyjny i sekret z Keychain (--all czyści wszystkie konta).
— rotate
logout
3.3
Jeden Mac — z założenia
Keychain logowania nie jest synchronizowany przez iCloud — to celowa granica, dzięki której Twoje hasło nigdy nie opuszcza Maca, na którym je wpisałeś. Wykonaj krok security raz na każdym Macu; config.json może być przechowywany w synchronizowanym folderze domowym, ponieważ nie zawiera żadnych sekretów.
— per
machine
04.
— Section 4
Commands
One verb each

Wszystko jest podpoleceniem.

login
Zapisz w Keychain dane logowania do serwera JMAP
discover
Wykryj sesję JMAP z serwera
accounts
Wypisz skonfigurowane konta i wszystkie tożsamości do wysyłki
mailboxes
Wyświetl wszystkie skrzynki pocztowe
list
Wyświetl wiadomości w skrzynce pocztowej
search
Szukaj poczty po tekście, temacie, nadawcy, odbiorcy lub treści (po stronie serwera)
read
Wyświetl pełną treść wiadomości (renderowaną z Markdown)
send
Wyślij e-mail przez JMAP Submission, z dowolnej tożsamości do wysyłki (--from)
reply
Odpowiedz na wiadomość po ID, w wątku i z cytatem oryginału
forward
Prześlij dalej wiadomość po ID, dołączając ponownie jej załączniki
draft
Przygotuj e-mail w Drafts bez wysyłania
move · trash · delete
Przenieś do skrzynki, przenieś do Kosza lub trwale usuń według ID
sync
Wykonaj synchronizację delta i pokaż, co się zmieniło
contacts
Kontakty JSContact: wypisz, dodaj, edytuj, usuń, importuj aliasy
calendar
Wypisz kalendarze i wydarzenia, twórz wydarzenia, ustaw kolory kalendarzy
sieve
Wypisz, pobierz, sprawdź i wyślij serwerowe filtry Sieve
alias
Zarządzaj aliasami odbiorców
mcp
Uruchom jako serwer Model Context Protocol dla narzędzi AI
logout
Usuń zapisane dane logowania
05.
— Section 5
Changelog
Every release

Co nowego.

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
— Część Boogie

Chcesz pełną aplikację?

jmapcli jest darmowy
natywna aplikacja Mail + Calendar jest w App Store
KTP Digital Pty Ltd · ABN 85 648 755 980