Boogie
jmapcli · JMAP з термінала
01.
v1.4.0 · macOS
Нативний JMAP-клієнт командного рядка.

JMAP з командного рядка.

jmapcli спілкується через JMAP зі Stalwart (і будь-яким JMAP-сервером) прямо з термінала — надсилання, читання, пошук, синхронізація, переміщення листів і керування ними. Нативний Swift, облікові дані в macOS Keychain, без телеметрії.

$ brew tap jasonhollis/boogie && brew install jmapcli $ jmapcli login # зберігається в macOS Keychain $ jmapcli send --to you@example.com --subject "Hi" --body "From the CLI"
02.
— Section 2
Install
Homebrew

Один рядок. Підписано.

2.1
Homebrew tap
brew tap jasonhollis/boogie && brew install jmapcli — єдиний підписаний бінарник, без залежностей для компіляції. Оновлення через brew upgrade.
— macOS
Apple silicon
2.2
Автентифікація через Keychain
Облікові дані читаються з macOS login Keychain за JMAP-ідентичністю. Нічого в dotfiles, нічого в env vars.
— security
find-generic
2.3
Без телеметрії
Інструмент нікуди не надсилає дані. Єдина мережа, до якої він звертається, — ваш JMAP-сервер.
— zero
SDKs
03.
— Section 3
Credentials
macOS Keychain

Ваш пароль ніколи не торкається диска.

jmapcli не зберігає жодних секретів на диску. Ваш пароль (або bearer-токен) зберігається в macOS login Keychain; файл облікового запису — ~/.config/jmapcli/config.json, режим 0600 — містить лише URL сервера, ваше ім’я користувача та прапорець за замовчуванням. Вперше працюєте з Keychain з терміналу? Весь процес складається з трьох вбудованих команд security.

1 · Збережіть секрет — і зчитайте його. macOS запитує значення, тому секрет ніколи не вводиться в командному рядку, не відображається на екрані й не записується до вашої історії оболонки.

# 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 — ім’я, яке jmapcli шукає: jmap-password для пароля або jmap-token для bearer-токена (наприклад, Fastmail); вкажіть лише той, який використовуєте.
-a
account — ваша електронна адреса (те саме ім’я користувача, яке ви передаєте jmapcli).
-l
label — те, що ви побачите в додатку Keychain Access; -U оновлює наявний запис на місці.
-w
без значення — запит на введення секрету. Саме це не дозволяє йому потрапити до ~/.zsh_history і списку процесів.

2 · Підключіть jmapcli до вашого сервера. Зареєструйте обліковий запис один раз; секрет буде отримано безпосередньо зі збереженого запису Keychain, тому він ніколи не з’явиться в командному рядку.

$ 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
Нічого в історії, журналах — або контексті ШІ
Як тільки секрет опиняється в Keychain, повсякденні команди (list, send, draft, sync) ніколи не передають пароль, тому він не може бути перехоплений у ~/.zsh_history, списку процесів або журналах CI. Саме це робить jmapcli безпечним для використання з термінальними ШІ-інструментами — агент отримує JMAP-клієнт, але ніколи ваш секрет.
— zsh
CI · agents
3.2
Зміна пароля або вихід із системи
Змінили пароль? Повторно запустіть рядок security add-generic-password … -w-U замінить його на місці. Щоб видалити обліковий запис, jmapcli logout видаляє одночасно і запис конфігурації, і секрет з Keychain (--all очищує всі облікові записи).
— rotate
logout
3.3
Прив’язка до Mac за задумом
Login Keychain не синхронізується через iCloud — це свідоме обмеження: ваш пароль ніколи не покидає Mac, на якому ви його ввели. Повторіть крок security один раз для кожного Mac; config.json можна зберігати в синхронізованій домашній теці, оскільки він не містить жодних секретів.
— per
machine
04.
— Section 4
Commands
One verb each

Усе — це підкоманда.

login
Зберегти облікові дані JMAP-сервера в Keychain
discover
Виявити JMAP-сесію із сервера
accounts
Показати налаштовані акаунти й усі особи для надсилання
mailboxes
Показати всі поштові скриньки
list
Показати листи в поштовій скриньці
search
Пошук пошти за текстом, темою, from, to чи тілом (на сервері)
read
Показати повний вміст листа (рендеринг Markdown)
send
Надіслати лист через JMAP Submission з будь-якої особи (--from)
reply
Відповісти на лист за ID — у гілці, з цитуванням оригіналу
forward
Переслати лист за ID, повторно додавши його вкладення
draft
Зберегти лист у Drafts без надсилання
move · trash · delete
Перемістити у скриньку, перемістити в Кошик або видалити назавжди за ID
sync
Виконати дельта-синхронізацію та показати зміни
contacts
Контакти JSContact: список, додати, змінити, видалити, імпорт аліасів
calendar
Календарі й події: показати, записати події, задати кольори календарів
sieve
Серверні фільтри Sieve: показати, отримати, перевірити та надіслати
alias
Керування псевдонімами отримувачів
mcp
Запустити як сервер Model Context Protocol для AI-інструментів
logout
Видалити збережені облікові дані
05.
— Section 5
Changelog
Every release

Що нового.

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
— Частина Boogie

Потрібен повний застосунок?

jmapcli безкоштовний
нативний застосунок Пошта + Календар доступний в App Store
KTP Digital Pty Ltd · ABN 85 648 755 980