Boogie
jmapcli · JMAP fra terminalen
01.
v1.7.0 · macOS
En innebygd JMAP-kommandolinjeklient.

JMAP fra kommandolinjen.

jmapcli snakker JMAP med Stalwart (og enhver JMAP-server) rett fra terminalen — send, les, søk, synkroniser, flytt og administrer e-post. Innebygd Swift, påloggingsinformasjon i macOS Keychain, ingen telemetri.

$ brew install boogie-digital/boogie/jmapcli $ jmapcli login # lagret i macOS Keychain $ jmapcli send --to you@example.com --subject "Hi" --body "From the CLI"
02.
— Section 2
Install
Homebrew

Én linje. Signert.

2.1
Homebrew tap
brew install boogie-digital/boogie/jmapcli — en enkelt signert binærfil, ingen avhengigheter å kompilere. Oppgraderinger via brew upgrade jmapcli.
— macOS
Apple silicon
2.2
Keychain-autentisering
Påloggingsinformasjon leses fra macOS-påloggings-Keychain etter JMAP-identitet. Ingenting i dotfiles, ingenting i env vars.
— security
find-generic
2.3
Ingen telemetri
Verktøyet ringer ikke hjem noe sted. Det eneste nettverket det berører, er din JMAP-server.
— zero
SDKs
03.
— Section 3
Credentials
macOS Keychain

Passordet ditt berører aldri disken.

jmapcli lagrer ingen hemmeligheter på disk. Passordet ditt (eller bærer-token) ligger i macOS-innloggingsnøkkelringen; kontofilen — ~/.config/jmapcli/config.json, modus 0600 — inneholder bare server-URL-en, brukernavnet ditt og et standardflagg. Ny med Nøkkelringen fra terminalen? Hele arbeidsflyten består av tre innebygde security-kommandoer.

1 · Lagre en hemmelighet — og les den tilbake. macOS spør etter verdien, slik at hemmeligheten aldri skrives på kommandolinjen, ikke vises på skjermen eller skrives til skallets historikk.

# 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
tjeneste — navnet jmapcli slår opp: jmap-password for et passord, eller jmap-token for et bærer-token (f.eks. Fastmail); angi bare det du bruker.
-a
konto — e-postadressen din (det samme brukernavnet du oppgir til jmapcli).
-l
etikett — det du vil se i Nøkkelringtilgang-appen; -U oppdaterer et eksisterende element på stedet.
-w
uten verdi — spør etter hemmeligheten. Dette er delen som holder den borte fra ~/.zsh_history og prosesslisten.

2 · Pek jmapcli mot serveren din. Registrer kontoen én gang; hemmeligheten hentes direkte fra nøkkelringelementet du nettopp lagret, slik at den aldri vises på kommandolinjen.

$ 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
# OAuth — no app password to create, copy, or rotate. # Your browser opens once; the token lands in the Keychain under jmap-oauth. $ jmapcli login --url https://api.fastmail.com --username you@fastmail.com --oauth # Stalwart — or any server that speaks RFC 8252 — same flag. $ jmapcli login --url https://mail.example.com --username you@example.com --oauth
3.1
Ingenting i historikken din, logger — eller en AIs kontekst
Når hemmeligheten er i Nøkkelringen, sender ikke hverdagskommandoer (list, send, draft, sync) noen gang med et passord, slik at det ikke kan fanges opp i ~/.zsh_history, en prosessliste eller CI-logger. Det er det som gjør jmapcli trygt å bruke fra terminal-AI-verktøy — en agent får en JMAP-klient, aldri hemmeligheten din.
— zsh
CI · agents
3.2
Roter eller logg ut
Endret passordet ditt? Kjør security add-generic-password … -w-linjen på nytt — -U overskriver den på stedet. For å fjerne en konto sletter jmapcli logout både konfigurasjonsoppføringen og nøkkelringhemmeligheten i ett trinn (--all tømmer hver konto).
— rotate
logout
3.3
Per Mac — av design
Innloggingsnøkkelringen synkroniseres ikke via iCloud — en bevisst grense, slik at passordet ditt aldri forlater Macen du skrev det inn på. Gjenta security-trinnet én gang per Mac; config.json kan ligge i en synkronisert hjemmappe fordi den ikke inneholder noen hemmelighet.
— per
machine
04.
— Section 4
Commands
One verb each

Alt er en underkommando.

login
Lagre påloggingsinformasjon for en JMAP-server i Keychain
discover
Oppdag JMAP-økten fra serveren
accounts
List opp konfigurerte kontoer og alle avsenderidentiteter
identity
Lister opp alle identiteter du kan sende fra på tvers av kontoene dine, og setter visningsnavnet serveren viser for en av dem.
mailboxes
List opp alle postbokser
list
List opp e-poster i en postboks
search
Søk i e-post etter tekst, emne, fra, til eller brødtekst (på serversiden)
read
Vis fullt e-postinnhold (Markdown-gjengitt)
attachments
Vis vedleggene til en e-post, eller lagre dem i en mappe
send
Send en e-post via JMAP Submission, fra hvilken som helst avsenderidentitet (--from)
reply
Svar på en melding etter ID, i tråd og med sitat av originalen
forward
Videresend en melding etter ID, og legg ved vedleggene på nytt
draft
Legg en e-post i Drafts uten å sende
move · trash · delete
Flytt til en postboks, flytt til Papirkurv, eller slett permanent via ID
sync
Utfør en delta-synkronisering og vis hva som er endret
contacts
JSContact-kontakter: list, legg til, rediger, fjern, importer aliaser
calendar
List kalendere og hendelser, skriv hendelser, sett kalenderfarger
sieve
List, hent, valider og send Sieve-filtre på serversiden
alias
Administrer mottakeraliaser
mcp
Kjør som Model Context Protocol-server for AI-verktøy
logout
Fjern lagret påloggingsinformasjon
05.
— Section 5
Changelog
Every release

Hva er nytt.

v1.7.0
Reply-To and display names: --reply-to sets a message's Reply-To on send, draft, reply and forward, staged drafts included, and replaces the sending identity's own Reply-To for that message. --to, --cc and --bcc now take Name <addr>, so "Jane Doe <jane@example.com>" goes out as a name and an address; a bare address is unchanged. — 2026-10-15
v1.6.0
Attachments: jmapcli attachments lists an email's attachments (index, name, type, size) and --save writes one or all of them to a folder, refusing to overwrite an existing file unless --force. The MCP server gains the same surface: mail.read now reports attachment metadata and the new mail.save_attachment tool writes one attachment to a local directory. — 2026-09-28
v1.5.0
OAuth login: jmapcli login --oauth is a first-class alternative to --password and --token, using loopback PKCE (RFC 8252) and dynamic client registration (RFC 7591). The token is held in the macOS Keychain under jmap-oauth. Verified against Fastmail and Stalwart; app-password and token login are unchanged. — 2026-09-01
v1.4.6
identity list (id, display name, email) and identity set --name to write the server Identity display name. Role aliases no longer have to be renamed via raw Identity/set. — 2026-08-24
v1.4.5
JMAP core from Boogie 1.4.5: Stalwart aliases now appear as send-as identities (accounts identities and send --from); send, contacts, and calendar library fixes from the 1.4.5 cycle. — 2026-08-24
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
— En del av Boogie

Vil du ha hele appen?

jmapcli er gratis
den innebygde e-post- + kalenderappen er i App Store
KTP Digital Pty Ltd · ABN 85 648 755 980