Boogie
jmapcli · JMAP از ترمینال
01.
v1.4.0 · macOS
یک کلاینت بومی JMAP برای خط فرمان.

JMAP از خط فرمان.

jmapcli مستقیماً از ترمینال شما با Stalwart (و هر سرور JMAP) به زبان JMAP صحبت می‌کند — ارسال، خواندن، جستجو، همگام‌سازی، انتقال و مدیریت ایمیل. Swift بومی، اطلاعات ورود در Keychain مربوط به macOS، بدون تله‌متری.

$ brew tap jasonhollis/boogie && brew install jmapcli $ jmapcli login # ذخیره‌شده در Keychain مربوط به macOS $ 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
اطلاعات ورود از Keychain ورود به macOS بر اساس هویت JMAP خوانده می‌شود. هیچ‌چیز در dotfiles، هیچ‌چیز در env vars.
— security
find-generic
2.3
بدون تله‌متری
این ابزار به هیچ‌جایی گزارش نمی‌دهد. تنها شبکه‌ای که با آن در ارتباط است سرور JMAP شماست.
— zero
SDKs
03.
— Section 3
Credentials
macOS Keychain

رمز عبور شما هرگز روی دیسک ذخیره نمی‌شود.

jmapcli هیچ رازی را روی دیسک نگه نمی‌دارد. رمز عبور (یا توکن bearer) شما در Keychain ورود macOS ذخیره می‌شود؛ فایل حساب — ~/.config/jmapcli/config.json، حالت 0600 — فقط آدرس سرور، نام کاربری و یک پرچم پیش‌فرض را نگه می‌دارد. با Keychain از ترمینال آشنا نیستید؟ تمام فرآیند با سه دستور داخلی security انجام می‌شود.

۱ · یک راز ذخیره کنید — و آن را بازخوانی کنید. 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 و لیست پروسه‌ها دور نگه می‌دارد.

۲ · 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 را برای استفاده از ابزارهای هوش مصنوعی ترمینالی ایمن می‌کند — به یک agent یک کلاینت JMAP داده می‌شود، نه راز شما.
— zsh
CI · agents
3.2
تغییر رمز یا خروج از حساب
رمز عبور خود را تغییر داده‌اید؟ خط security add-generic-password … -w را دوباره اجرا کنید — -U آن را در جای خود جایگزین می‌کند. برای حذف یک حساب، jmapcli logout هم ورودی تنظیمات و هم راز Keychain را در یک مرحله حذف می‌کند (--all همه حساب‌ها را پاک می‌کند).
— rotate
logout
3.3
طراحی شده برای هر Mac به صورت جداگانه
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
جست‌وجوی ایمیل بر اساس متن، موضوع، فرستنده، گیرنده یا بدنه (سمت سرور)
read
نمایش کامل محتوای ایمیل (رندرشده با Markdown)
send
ارسال ایمیل از طریق JMAP Submission، از هر هویت قابل ارسال (--from)
reply
پاسخ به یک پیام با ID، به‌صورت رشته‌ای و با نقل‌قول از پیام اصلی
forward
ارجاع یک پیام با ID، همراه با ضمیمه‌های آن
draft
آماده‌سازی یک ایمیل در Drafts بدون ارسال
move · trash · delete
انتقال به یک صندوق پستی، انتقال به سطل زباله، یا حذف دائمی بر اساس شناسه
sync
انجام همگام‌سازی دلتا و نمایش تغییرات
contacts
مخاطبین JSContact: فهرست، افزودن، ویرایش، حذف و درون‌ریزی نام‌های مستعار
calendar
فهرست تقویم‌ها و رویدادها، ثبت رویداد و تنظیم رنگ تقویم
sieve
فهرست، دریافت، اعتبارسنجی و ارسال فیلترهای Sieve سمت سرور
alias
مدیریت نام‌های مستعار گیرنده
mcp
اجرا به‌عنوان سرور Model Context Protocol برای ابزارهای هوش مصنوعی
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