Boogie
jmapcli · JMAP pelo terminal
01.
v1.4.0 · macOS
Um cliente JMAP nativo de linha de comando.

JMAP na linha de comando.

jmapcli fala JMAP com o Stalwart (e com qualquer servidor JMAP) direto do seu terminal — enviar, ler, pesquisar, sincronizar, mover e gerenciar e-mails. Swift nativo, credenciais no Keychain do macOS, sem telemetria.

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

Uma linha. Assinada.

2.1
Homebrew tap
brew tap jasonhollis/boogie && brew install jmapcli — um único binário assinado, sem dependências para compilar. Atualizações via brew upgrade.
— macOS
Apple silicon
2.2
Autenticação via Keychain
As credenciais são lidas do Keychain de login do macOS por identidade JMAP. Nada em dotfiles, nada em env vars.
— security
find-generic
2.3
Sem telemetria
A ferramenta não contata nenhum servidor externo. A única rede que ela acessa é o seu servidor JMAP.
— zero
SDKs
03.
— Section 3
Credentials
macOS Keychain

Sua senha nunca toca o disco.

jmapcli não mantém nenhum segredo em disco. Sua senha (ou token de portador) fica no Keychain de login do macOS; o arquivo de conta — ~/.config/jmapcli/config.json, modo 0600 — armazena apenas a URL do servidor, seu nome de usuário e uma flag padrão. Nunca usou o Keychain pelo terminal? O fluxo completo são três comandos security nativos do sistema.

1 · Armazene um segredo — e leia-o de volta. O macOS solicita o valor por prompt, então o segredo nunca é digitado na linha de comando, exibido na tela ou gravado no histórico do 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 — o nome que o jmapcli consulta: jmap-password para senha, ou jmap-token para token de portador (ex.: Fastmail); defina apenas o que você usa.
-a
account — seu endereço de e-mail (o mesmo nome de usuário que você fornece ao jmapcli).
-l
label — o que você verá no app Keychain Access; -U atualiza um item existente no lugar.
-w
sem valor — solicita o segredo por prompt. É isso que o mantém fora do ~/.zsh_history e da lista de processos.

2 · Aponte o jmapcli para o seu servidor. Registre a conta uma única vez; o segredo é lido diretamente do item do Keychain que você acabou de armazenar, sem nunca aparecer na linha de 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
Nada no seu histórico, logs — nem no contexto de uma IA
Uma vez que o segredo esteja no Keychain, os comandos do dia a dia (list, send, draft, sync) nunca carregam uma senha, portanto ela não pode ser capturada no ~/.zsh_history, em uma listagem de processos ou nos logs de CI. É isso que torna o jmapcli seguro para uso com ferramentas de terminal com IA — um agente recebe um cliente JMAP, nunca o seu segredo.
— zsh
CI · agents
3.2
Rotacionar ou encerrar sessão
Mudou sua senha? Execute novamente a linha security add-generic-password … -w-U a sobrescreve no lugar. Para remover uma conta, jmapcli logout apaga tanto a entrada de configuração quanto o segredo do Keychain em um único passo (--all limpa todas as contas).
— rotate
logout
3.3
Por design, específico para cada Mac
O Keychain de login não é sincronizado via iCloud — uma barreira deliberada, para que sua senha nunca saia do Mac onde foi digitada. Repita o passo do security uma vez por Mac; o config.json pode ficar em uma pasta home sincronizada porque não carrega nenhum segredo.
— per
machine
04.
— Section 4
Commands
One verb each

Tudo é um subcomando.

login
Armazenar as credenciais de um servidor JMAP no Keychain
discover
Descobrir a sessão JMAP a partir do servidor
accounts
Lista as contas configuradas e cada identidade de envio
mailboxes
Listar todas as caixas de correio
list
Listar os e-mails de uma caixa de correio
search
Pesquisa e-mails por texto, assunto, remetente, destinatário ou corpo (no servidor)
read
Exibir o conteúdo completo do e-mail (renderizado em Markdown)
send
Envia um e-mail via JMAP Submission, a partir de qualquer identidade de envio (--from)
reply
Responde a uma mensagem por ID, encadeada e citando a original
forward
Encaminha uma mensagem por ID, reanexando seus anexos
draft
Prepara um e-mail em Drafts sem enviar
move · trash · delete
Mover para uma caixa de correio, enviar para a Lixeira ou destruir permanentemente por ID
sync
Realizar uma sincronização delta e mostrar o que mudou
contacts
Contatos JSContact: listar, adicionar, editar, remover, importar apelidos
calendar
Lista calendários e eventos, grava eventos, define cores do calendário
sieve
Lista, busca, valida e envia filtros Sieve do servidor
alias
Gerenciar aliases de destinatários
mcp
Executar como servidor Model Context Protocol para ferramentas de IA
logout
Remover as credenciais armazenadas
05.
— Section 5
Changelog
Every release

Novidades.

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

Quer o app completo?

jmapcli é gratuito
o app nativo de E-mail + Calendário está na App Store
KTP Digital Pty Ltd · ABN 85 648 755 980