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