05.
v1.7.3
Sign-in no longer fails with unexpectedStatus(-25244) when the Keychain already holds an item for the account that another program created: jmapcli replaces it when macOS allows, and Keychain errors now say which item and why (never the secret). jmapcli sync keeps its saved state per account and server, so with several accounts it no longer reports "Full re-sync required (state expired)" on every run. After upgrading, run jmapcli sync --initialize once per account. — 2026-11-10
v1.7.2
Help text only, no change in behaviour. login --help now says that --oauth needs an https:// server, that a plain-HTTP server works with --password or --token (include the port), and that with --oauth the --username must be the account you sign into in the browser, otherwise nothing is stored. jmapcli --help lists login as "Sign in to a JMAP server (password, token or browser OAuth)". — 2026-11-10
v1.7.1
Sign-in fixes. login --password and --token now work against a plain-HTTP JMAP server (--url http://host:port, for example a Stalwart on your LAN); 1.7.0 failed with "Invalid username or password." even when the password was right. The credential goes over plain HTTP only to the exact host and port you typed. login --oauth now stores tokens only when the server says they belong to --username, and refuses an http:// URL up front. — 2026-11-09
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