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