Boogie
jmapcli · JMAP des del terminal
01.
v1.4.0 · macOS
Un client JMAP natiu de línia d'ordres.

JMAP des de la línia d'ordres.

jmapcli parla JMAP amb Stalwart (i amb qualsevol servidor JMAP) directament des del teu terminal — enviar, llegir, cercar, sincronitzar, moure i gestionar el correu. Swift natiu, credencials al Keychain de macOS, sense telemetria.

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

Una línia. Signada.

2.1
Homebrew tap
brew tap jasonhollis/boogie && brew install jmapcli — un únic binari signat, sense dependències per compilar. Actualitzacions amb brew upgrade.
— macOS
Apple silicon
2.2
Autenticació amb Keychain
Les credencials es llegeixen del Keychain d'inici de sessió de macOS per identitat JMAP. Res als dotfiles, res a les env vars.
— security
find-generic
2.3
Sense telemetria
L'eina no contacta cap servidor extern. L'única xarxa que toca és el teu servidor JMAP.
— zero
SDKs
03.
— Section 3
Credentials
macOS Keychain

La vostra contrasenya no toca mai el disc.

jmapcli no guarda cap secret al disc. La vostra contrasenya (o token de portador) resideix al Keychain d’inici de sessió de macOS; el fitxer de compte — ~/.config/jmapcli/config.json, mode 0600 — només conté l’URL del servidor, el nom d’usuari i un indicador per defecte. Nou al Keychain des del terminal? Tot el flux de treball es redueix a tres ordres integrades de security.

1 · Deseu un secret — i recupereu-lo. macOS demana el valor, de manera que el secret mai s’escriu a la línia d’ordres, no apareix a la pantalla ni s’escriu a l’historial de l’intèrpret d’ordres.

# 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
servei — el nom que jmapcli cerca: jmap-password per a una contrasenya, o jmap-token per a un token de portador (p. ex., Fastmail); establiu només el que feu servir.
-a
compte — la vostra adreça de correu electrònic (el mateix nom d’usuari que proporcioneu a jmapcli).
-l
etiqueta — el que veureu a l’aplicació Keychain Access; -U actualitza un element existent al seu lloc.
-w
sense cap valor — sol·licita el secret. Aquesta és la part que evita que aparegui a ~/.zsh_history i a la llista de processos.

2 · Apunteu jmapcli al vostre servidor. Registreu el compte una vegada; el secret s’obté directament de l’element del Keychain que acabeu de desar, de manera que mai apareix a la línia d’ordres.

$ 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
Res a l’historial, als registres — ni al context d’una IA
Un cop el secret és al Keychain, les ordres habituals (list, send, draft, sync) mai no transporten una contrasenya, de manera que no pot ser capturada a ~/.zsh_history, en un llistat de processos ni als registres de CI. Això és el que fa que jmapcli sigui segur per utilitzar-lo des d’eines d’IA de terminal — un agent rep un client JMAP, mai el vostre secret.
— zsh
CI · agents
3.2
Roteu o tanqueu la sessió
Heu canviat la contrasenya? Torneu a executar la línia security add-generic-password … -w-U la sobreescriu al seu lloc. Per eliminar un compte, jmapcli logout elimina tant l’entrada de configuració com el secret del Keychain en un sol pas (--all esborra tots els comptes).
— rotate
logout
3.3
Per Mac, per disseny
El Keychain d’inici de sessió no es sincronitza mitjançant iCloud — un límit deliberat, de manera que la vostra contrasenya mai surt del Mac on la vau escriure. Repetiu el pas de security una vegada per Mac; config.json pot residir en una carpeta d’inici sincronitzada perquè no conté cap secret.
— per
machine
04.
— Section 4
Commands
One verb each

Tot és una subordre.

login
Desar les credencials d'un servidor JMAP al Keychain
discover
Descobrir la sessió JMAP des del servidor
accounts
Llista els comptes configurats i totes les identitats per enviar
mailboxes
Llistar totes les bústies
list
Llistar els correus d'una bústia
search
Cerca correu per text, assumpte, remitent, destinatari o cos (al servidor)
read
Mostrar el contingut complet del correu (renderitzat en Markdown)
send
Envia un correu via JMAP Submission, des de qualsevol identitat (--from)
reply
Respon un missatge per ID, dins del fil i citant l'original
forward
Reenvia un missatge per ID i hi torna a adjuntar els seus fitxers
draft
Desa un correu a Drafts sense enviar-lo
move · trash · delete
Moure a una bústia, enviar a la Paperera o destruir permanentment per ID
sync
Fer una sincronització delta i mostrar què ha canviat
contacts
Contactes JSContact: llista, afegeix, edita, elimina, importa àlies
calendar
Llista calendaris i esdeveniments, escriu esdeveniments, posa colors al calendari
sieve
Llista, recupera, valida i puja filtres Sieve del servidor
alias
Gestionar els àlies de destinataris
mcp
Executar com a servidor Model Context Protocol per a eines d'IA
logout
Eliminar les credencials desades
05.
— Section 5
Changelog
Every release

Novetats.

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
— Part de Boogie

Vols l'app completa?

jmapcli és gratuït
l'app nativa de Correu + Calendari és a l'App Store
KTP Digital Pty Ltd · ABN 85 648 755 980