Boogie
jmapcli · JMAP vanuit de terminal
01.
v1.4.0 · macOS
Een native JMAP-opdrachtregelclient.

JMAP vanaf de opdrachtregel.

jmapcli praat JMAP met Stalwart (en elke JMAP-server) rechtstreeks vanuit uw terminal — verstuur, lees, doorzoek, synchroniseer, verplaats en beheer e-mail. Native Swift, inloggegevens in de macOS Keychain, geen telemetrie.

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

Eén regel. Ondertekend.

2.1
Homebrew tap
brew tap jasonhollis/boogie && brew install jmapcli — één enkele ondertekende binary, geen afhankelijkheden om te compileren. Upgraden via brew upgrade.
— macOS
Apple silicon
2.2
Keychain-authenticatie
Inloggegevens worden per JMAP-identiteit uit de macOS login-Keychain gelezen. Niets in dotfiles, niets in env vars.
— security
find-generic
2.3
Geen telemetrie
De tool belt nergens naar huis. Het enige netwerk dat het aanraakt, is uw JMAP-server.
— zero
SDKs
03.
— Section 3
Credentials
macOS Keychain

Uw wachtwoord raakt nooit de schijf.

jmapcli bewaart geen geheimen op schijf. Uw wachtwoord (of bearer-token) staat in de macOS-aanmeldingssleutelhanger; het accountbestand — ~/.config/jmapcli/config.json, modus 0600 — bevat alleen de server-URL, uw gebruikersnaam en een standaardvlag. Nieuw bij de Sleutelhanger via de terminal? De hele werkwijze bestaat uit drie ingebouwde security-opdrachten.

1 · Sla een geheim op — en lees het terug. macOS vraagt naar de waarde, zodat het geheim nooit op de opdrachtregel wordt getypt, op het scherm wordt getoond of in uw shellgeschiedenis wordt opgeslagen.

# 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 — de naam die jmapcli opzoekt: jmap-password voor een wachtwoord, of jmap-token voor een bearer-token (bijv. Fastmail); stel alleen in wat u gebruikt.
-a
account — uw e-mailadres (dezelfde gebruikersnaam die u aan jmapcli opgeeft).
-l
label — wat u ziet in de app Toegang tot sleutelhanger; -U werkt een bestaand item direct bij.
-w
zonder waarde — vraagt om het geheim. Dit is het onderdeel dat het buiten ~/.zsh_history en de proceslijst houdt.

2 · Wijs jmapcli naar uw server. Registreer het account eenmalig; het geheim wordt rechtstreeks uit het Sleutelhanger-item opgehaald dat u zojuist hebt opgeslagen, zodat het nooit op de opdrachtregel verschijnt.

$ 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
Niets in uw geschiedenis, logs — of de context van een AI
Zodra het geheim in de Sleutelhanger staat, dragen alledaagse opdrachten (list, send, draft, sync) nooit een wachtwoord met zich mee, zodat het niet kan worden vastgelegd in ~/.zsh_history, een procesoverzicht of CI-logs. Dat is wat jmapcli veilig maakt om vanuit terminal-AI-tools te gebruiken — een agent krijgt een JMAP-client aangeboden, nooit uw geheim.
— zsh
CI · agents
3.2
Roteer of meld u af
Wachtwoord gewijzigd? Voer de regel security add-generic-password … -w opnieuw uit — -U overschrijft het direct. Om een account te verwijderen verwijdert jmapcli logout zowel het configuratie-item als het Sleutelhanger-geheim in één stap (--all wist elk account).
— rotate
logout
3.3
Per Mac — doelbewust
De aanmeldingssleutelhanger wordt niet via iCloud gesynchroniseerd — een bewuste grens, zodat uw wachtwoord nooit de Mac verlaat waarop u het hebt ingevoerd. Herhaal de stap security eenmalig per Mac; config.json kan in een gesynchroniseerde thuismap staan omdat het geen geheim bevat.
— per
machine
04.
— Section 4
Commands
One verb each

Alles is een subcommando.

login
Sla inloggegevens voor een JMAP-server op in de Keychain
discover
Ontdek de JMAP-sessie van de server
accounts
Toon geconfigureerde accounts en elke verzendbare identiteit
mailboxes
Alle mailboxen weergeven
list
E-mails in een mailbox weergeven
search
Doorzoek mail op tekst, onderwerp, afzender, ontvanger of inhoud (server-side)
read
Volledige e-mailinhoud weergeven (Markdown-gerenderd)
send
Verstuur een e-mail via JMAP Submission, vanaf elke verzendbare identiteit (--from)
reply
Beantwoord een bericht op ID, in de thread en met citaat van het origineel
forward
Stuur een bericht door op ID, met behoud van de bijlagen
draft
Plaats een e-mail in Drafts zonder te verzenden
move · trash · delete
Verplaats naar een mailbox, verplaats naar Prullenbak of vernietig permanent op ID
sync
Voer een delta-synchronisatie uit en toon wat er is gewijzigd
contacts
JSContact-contacten: toon, voeg toe, bewerk, verwijder, importeer aliassen
calendar
Toon agenda's en gebeurtenissen, schrijf gebeurtenissen, stel agendakleuren in
sieve
Toon, haal op, valideer en push server-side Sieve-filters
alias
Beheer ontvangersaliassen
mcp
Uitvoeren als Model Context Protocol-server voor AI-tooling
logout
Verwijder opgeslagen inloggegevens
05.
— Section 5
Changelog
Every release

Wat is er nieuw.

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
— Onderdeel van Boogie

Wilt u de volledige app?

jmapcli is gratis
de native Mail- + Agenda-app staat in de App Store
KTP Digital Pty Ltd · ABN 85 648 755 980