Boogie
jmapcli · JMAP mula sa terminal
01.
v1.4.0 · macOS
Isang native JMAP command-line client.

JMAP mula sa command line.

jmapcli ay nakikipag-usap sa JMAP sa Stalwart (at sa kahit anong JMAP server) diretso mula sa iyong terminal — mag-send, magbasa, maghanap, mag-sync, maglipat at i-manage ang mail. Native Swift, nasa macOS Keychain ang credentials, walang telemetry.

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

Isang linya. Signed.

2.1
Homebrew tap
brew tap jasonhollis/boogie && brew install jmapcli — isang signed binary, walang dependencies na ico-compile. Mga upgrade via brew upgrade.
— macOS
Apple silicon
2.2
Keychain auth
Binabasa ang credentials mula sa macOS login Keychain ayon sa JMAP identity. Walang nasa dotfiles, walang nasa env vars.
— security
find-generic
2.3
Walang telemetry
Walang pinagre-report ang tool na ito. Ang tanging network na hinahawakan nito ay ang iyong JMAP server.
— zero
SDKs
03.
— Section 3
Credentials
macOS Keychain

Ang iyong password ay hindi kailanman naaabot ang disk.

Hindi nagtatago ang jmapcli ng anumang lihim sa disk. Ang iyong password (o bearer token) ay naninirahan sa macOS login Keychain; ang account file — ~/.config/jmapcli/config.json, mode 0600 — ay naglalaman lamang ng server URL, ang iyong username at isang default na flag. Bago sa Keychain mula sa terminal? Ang buong workflow ay tatlong built-in na security na command.

1 · Mag-imbak ng lihim — at basahin ito pabalik. Hihilingin ng macOS ang halaga, kaya ang lihim ay hindi kailanman nita-type sa command line, ipinapakita sa screen, o isinusulat sa iyong shell history.

# 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 — ang pangalang hinahanap ng jmapcli: jmap-password para sa password, o jmap-token para sa bearer token (hal. Fastmail); itakda lamang ang isang ginagamit mo.
-a
account — ang iyong email address (ang parehong username na ibinibigay mo sa jmapcli).
-l
label — ang makikita mo sa Keychain Access app; ang -U ay nag-a-update ng umiiral na item nang in place.
-w
walang value — magtatanong para sa lihim. Ito ang bahagi na nagpapanatili nitong wala sa ~/.zsh_history at sa listahan ng proseso.

2 · Ituro ang jmapcli sa iyong server. Irehistro ang account nang isang beses; ang lihim ay direktang kinukuha mula sa Keychain item na kakaimbak mo lang, kaya hindi ito kailanman lumalabas sa command line.

$ 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
Wala sa iyong history, logs — o sa konteksto ng AI
Kapag nasa Keychain na ang lihim, ang mga pang-araw-araw na command (list, send, draft, sync) ay hindi na nagdadala ng password, kaya hindi ito maaaring makuha sa ~/.zsh_history, isang listahan ng proseso o mga CI log. Iyon ang dahilan kung bakit ligtas na patakbuhin ang jmapcli mula sa mga terminal-AI tool — ang isang ahente ay binibigyan ng JMAP client, hindi ang iyong lihim.
— zsh
CI · agents
3.2
Mag-rotate o mag-sign out
Binago mo ba ang iyong password? Patakbuhin muli ang linyang security add-generic-password … -w — ang -U ay nagpapalit nito nang in place. Para alisin ang isang account, ang jmapcli logout ay nagtatanggal ng parehong config entry at ng Keychain secret sa isang hakbang (--all ay nagtatanggal ng bawat account).
— rotate
logout
3.3
Per-Mac ayon sa disenyo
Ang login Keychain ay hindi naka-sync sa pamamagitan ng iCloud — isang sadyang hangganan, upang ang iyong password ay hindi kailanman umalis sa Mac na pinagta-type mo nito. Ulitin ang hakbang na security nang isang beses bawat Mac; ang config.json ay maaaring sumakay sa isang synced na home folder dahil hindi ito nagdadala ng lihim.
— per
machine
04.
— Section 4
Commands
One verb each

Lahat ay isang subcommand.

login
I-store ang credentials para sa isang JMAP server sa Keychain
discover
I-discover ang JMAP session mula sa server
accounts
Ilista ang mga naka-configure na account at bawat identity na puwedeng pagpadalhan
mailboxes
Ilista ang lahat ng mailbox
list
Ilista ang mga email sa isang mailbox
search
Maghanap ng mail ayon sa teksto, paksa, from, to, o body (sa server)
read
Ipakita ang buong nilalaman ng email (Markdown-rendered)
send
Magpadala ng email sa pamamagitan ng JMAP Submission, mula sa anumang identity na puwedeng pagpadalhan (--from)
reply
Sumagot sa mesahe gamit ang ID, naka-thread at sinisipi ang orihinal
forward
I-forward ang mesahe gamit ang ID, isinasama muli ang mga attachment nito
draft
Itabi ang email sa Drafts nang hindi ipinapadala
move · trash · delete
Ilipat sa isang mailbox, ilipat sa Trash, o tuluyang burahin ayon sa ID
sync
Magsagawa ng delta sync at ipakita ang nagbago
contacts
Mga JSContact contact: ilista, idagdag, i-edit, alisin, mag-import ng alias
calendar
Ilista ang mga kalendaryo at event, magtala ng event, magtakda ng kulay ng kalendaryo
sieve
Ilista, kunin, suriin at i-push ang mga Sieve filter sa server
alias
I-manage ang mga recipient alias
mcp
Patakbuhin bilang Model Context Protocol server para sa AI tooling
logout
Alisin ang naka-store na credentials
05.
— Section 5
Changelog
Every release

Mga bago.

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
— Bahagi ng Boogie

Gusto mo ba ang buong app?

Libre ang jmapcli
ang native Mail + Calendar app ay nasa App Store
KTP Digital Pty Ltd · ABN 85 648 755 980