Boogie
jmapcli · JMAP dal terminale
01.
v1.4.0 · macOS
Un client JMAP nativo da riga di comando.

JMAP dalla riga di comando.

jmapcli parla JMAP con Stalwart (e con qualsiasi server JMAP) direttamente dal tuo terminale — inviare, leggere, cercare, sincronizzare, spostare e gestire la posta. Swift nativo, credenziali nel Keychain di macOS, senza telemetria.

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

Una riga. Firmata.

2.1
Homebrew tap
brew tap jasonhollis/boogie && brew install jmapcli — un unico binario firmato, nessuna dipendenza da compilare. Aggiornamenti tramite brew upgrade.
— macOS
Apple silicon
2.2
Autenticazione con Keychain
Le credenziali vengono lette dal Keychain di accesso di macOS per identità JMAP. Niente nei dotfiles, niente nelle env vars.
— security
find-generic
2.3
Nessuna telemetria
Lo strumento non contatta alcun server esterno. L'unica rete a cui accede è il tuo server JMAP.
— zero
SDKs
03.
— Section 3
Credentials
macOS Keychain

La tua password non tocca mai il disco.

jmapcli non conserva alcun segreto su disco. La tua password (o il token bearer) risiede nel Portachiavi di accesso macOS; il file account — ~/.config/jmapcli/config.json, modalità 0600 — contiene solo l’URL del server, il tuo nome utente e un flag predefinito. Non conosci il Portachiavi dal terminale? L’intero flusso di lavoro richiede solo tre comandi integrati security.

1 · Salva un segreto — e rileggilo. macOS chiede il valore in modo interattivo, quindi il segreto non viene mai digitato sulla riga di comando, visualizzato sullo schermo né scritto nella cronologia della shell.

# 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 — il nome che jmapcli cerca: jmap-password per una password, o jmap-token per un token bearer (es. Fastmail); imposta solo quello che usi.
-a
account — il tuo indirizzo email (lo stesso nome utente che fornisci a jmapcli).
-l
label — ciò che vedrai nell’app Accesso Portachiavi; -U aggiorna un elemento esistente.
-w
senza valore — richiede il segreto in modo interattivo. È questo che lo tiene fuori da ~/.zsh_history e dall’elenco dei processi.

2 · Configura jmapcli con il tuo server. Registra l’account una sola volta; il segreto viene prelevato direttamente dall’elemento del Portachiavi appena salvato, quindi non appare mai sulla riga di comando.

$ 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
Niente nella cronologia, nei log — né nel contesto di un’IA
Una volta che il segreto è nel Portachiavi, i comandi quotidiani (list, send, draft, sync) non trasmettono mai una password, quindi non può essere catturata in ~/.zsh_history, nell’elenco dei processi o nei log CI. Questo è ciò che rende jmapcli sicuro da usare con strumenti AI da terminale — all’agente viene consegnato un client JMAP, mai il tuo segreto.
— zsh
CI · agents
3.2
Rotazione o disconnessione
Hai cambiato la password? Riesegui la riga security add-generic-password … -w-U la sovrascrive. Per rimuovere un account, jmapcli logout elimina in un solo passaggio sia la voce di configurazione che il segreto nel Portachiavi (--all cancella tutti gli account).
— rotate
logout
3.3
Per Mac, by design
Il Portachiavi di accesso non viene sincronizzato tramite iCloud — un confine deliberato, affinché la tua password non lasci mai il Mac su cui l’hai digitata. Ripeti il passaggio security una volta per ogni Mac; config.json può risiedere in una cartella home sincronizzata perché non contiene alcun segreto.
— per
machine
04.
— Section 4
Commands
One verb each

Tutto è un sottocomando.

login
Memorizzare le credenziali di un server JMAP nel Keychain
discover
Scoprire la sessione JMAP dal server
accounts
Elenca gli account configurati e ogni identità abilitata all'invio
mailboxes
Elencare tutte le caselle di posta
list
Elencare le email di una casella di posta
search
Cerca nella posta per testo, oggetto, mittente, destinatario o corpo (lato server)
read
Mostrare il contenuto completo dell'email (reso in Markdown)
send
Invia un'email tramite JMAP Submission, da qualsiasi identità abilitata (--from)
reply
Rispondi a un messaggio per ID, in thread e citando l'originale
forward
Inoltra un messaggio per ID, riallegando i suoi allegati
draft
Prepara un'email in Drafts senza inviarla
move · trash · delete
Spostare in una casella, spostare nel Cestino o eliminare definitivamente per ID
sync
Eseguire una sincronizzazione delta e mostrare cosa è cambiato
contacts
Contatti JSContact: elenca, aggiungi, modifica, rimuovi, importa alias
calendar
Elenca calendari ed eventi, crea eventi, imposta i colori dei calendari
sieve
Elenca, recupera, valida e invia i filtri Sieve lato server
alias
Gestire gli alias dei destinatari
mcp
Eseguire come server Model Context Protocol per strumenti IA
logout
Rimuovere le credenziali memorizzate
05.
— Section 5
Changelog
Every release

Novità.

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 di Boogie

Vuoi l'app completa?

jmapcli è gratuito
l'app nativa Mail + Calendario è sull'App Store
KTP Digital Pty Ltd · ABN 85 648 755 980