Boogie
jmapcli · JMAP מהטרמינל
01.
v1.4.0 · macOS
לקוח JMAP מקורי לשורת הפקודה.

JMAP משורת הפקודה.

jmapcli מדבר JMAP אל Stalwart (וכל שרת 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 מובנות.

1 · אחסן סוד — וקרא אותו בחזרה. macOS מבקש את הערך, כך שהסוד לעולם אינו מוקלד בשורת הפקודה, מוצג על המסך, או נכתב להיסטוריית ה-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 — השם ש-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
לא בהיסטוריה שלך, לא בלוגים — ולא בהקשר של AI
לאחר שהסוד נמצא ב-Keychain, פקודות יומיומיות (list, send, draft, sync) לעולם אינן נושאות סיסמה, ולכן היא לא יכולה להילכד ב-~/.zsh_history, ברשימת תהליכים או בלוגים של CI. זה מה שהופך את jmapcli לבטוח לשימוש עם כלי AI מבוססי טרמינל — סוכן מקבל לקוח 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 עבור כלי 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