Boogie
jmapcli · JMAP desde la terminal
01.
v1.4.0 · macOS
Un cliente JMAP nativo de línea de comandos.

JMAP desde la línea de comandos.

jmapcli habla JMAP con Stalwart (y con cualquier servidor JMAP) directamente desde tu terminal — enviar, leer, buscar, sincronizar, mover y gestionar el correo. Swift nativo, credenciales en el Keychain de macOS, sin telemetría.

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

Una línea. Firmada.

2.1
Homebrew tap
brew tap jasonhollis/boogie && brew install jmapcli — un único binario firmado, sin dependencias que compilar. Actualizaciones con brew upgrade.
— macOS
Apple silicon
2.2
Autenticación con Keychain
Las credenciales se leen del Keychain de inicio de sesión de macOS según la identidad JMAP. Nada en dotfiles, nada en env vars.
— security
find-generic
2.3
Sin telemetría
La herramienta no contacta con ningún servidor externo. La única red que toca es tu servidor JMAP.
— zero
SDKs
03.
— Section 3
Credentials
macOS Keychain

Tu contraseña nunca toca el disco.

jmapcli no guarda ningún secreto en disco. Tu contraseña (o token de portador) vive en el Llavero de inicio de sesión de macOS; el archivo de cuenta — ~/.config/jmapcli/config.json, modo 0600 — solo contiene la URL del servidor, tu nombre de usuario y un indicador predeterminado. ¿Primera vez con el Llavero desde la terminal? El flujo completo son tres comandos integrados de security.

1 · Guarda un secreto — y recupéralo. macOS solicita el valor, por lo que el secreto nunca se escribe en la línea de comandos, nunca aparece en pantalla ni se escribe en el historial del 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 — el nombre que jmapcli busca: jmap-password para una contraseña, o jmap-token para un token de portador (p. ej., Fastmail); define solo el que vayas a usar.
-a
account — tu dirección de correo electrónico (el mismo nombre de usuario que le das a jmapcli).
-l
label — lo que verás en la app Acceso a Llaveros; -U actualiza un elemento existente en su lugar.
-w
sin valor — solicita el secreto. Esto es lo que evita que aparezca en ~/.zsh_history y en la lista de procesos.

2 · Apunta jmapcli a tu servidor. Registra la cuenta una vez; el secreto se obtiene directamente del elemento del Llavero que acabas de guardar, por lo que nunca aparece en la línea de comandos.

$ 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
Nada en tu historial, registros — ni en el contexto de una IA
Una vez que el secreto está en el Llavero, los comandos cotidianos (list, send, draft, sync) nunca transportan una contraseña, por lo que no puede capturarse en ~/.zsh_history, una lista de procesos ni en registros de CI. Eso es lo que hace que jmapcli sea seguro para usarse con herramientas de IA en la terminal — al agente se le entrega un cliente JMAP, nunca tu secreto.
— zsh
CI · agents
3.2
Rotar o cerrar sesión
¿Cambiaste tu contraseña? Vuelve a ejecutar la línea security add-generic-password … -w-U la sobrescribe en su lugar. Para eliminar una cuenta, jmapcli logout elimina tanto la entrada de configuración como el secreto del Llavero en un solo paso (--all borra todas las cuentas).
— rotate
logout
3.3
Por diseño, vinculado al Mac
El Llavero de inicio de sesión no se sincroniza a través de iCloud — un límite deliberado, para que tu contraseña nunca salga del Mac en el que la escribiste. Repite el paso de security una vez por Mac; config.json puede estar en una carpeta de inicio sincronizada porque no contiene ningún secreto.
— per
machine
04.
— Section 4
Commands
One verb each

Todo es un subcomando.

login
Almacenar las credenciales de un servidor JMAP en el Keychain
discover
Descubrir la sesión JMAP desde el servidor
accounts
Lista las cuentas configuradas y cada identidad de envío
mailboxes
Listar todos los buzones
list
Listar los correos de un buzón
search
Busca correo por texto, asunto, remitente, destinatario o cuerpo (en el servidor)
read
Mostrar el contenido completo del correo (renderizado en Markdown)
send
Envía un correo mediante JMAP Submission, desde cualquier identidad de envío (--from)
reply
Responde a un mensaje por ID, en hilo y citando el original
forward
Reenvía un mensaje por ID, readjuntando sus archivos adjuntos
draft
Prepara un correo en Drafts sin enviarlo
move · trash · delete
Mover a un buzón, enviar a la papelera o destruir permanentemente por ID
sync
Realizar una sincronización delta y mostrar los cambios
contacts
Contactos JSContact: listar, añadir, editar, eliminar, importar alias
calendar
Lista calendarios y eventos, crea eventos, define colores de calendario
sieve
Lista, obtén, valida y publica filtros Sieve del servidor
alias
Gestionar alias de destinatarios
mcp
Ejecutar como servidor Model Context Protocol para herramientas de IA
logout
Eliminar las credenciales almacenadas
05.
— Section 5
Changelog
Every release

Novedades.

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

¿Quieres la app completa?

jmapcli es gratis
la app nativa de Correo + Calendario está en la App Store
KTP Digital Pty Ltd · ABN 85 648 755 980