Boogie
jmapcli · টার্মিনাল থেকে JMAP
01.
v1.4.0 · macOS
একটি নেটিভ JMAP কমান্ড-লাইন ক্লায়েন্ট।

কমান্ড লাইন থেকে JMAP।

jmapcli আপনার টার্মিনাল থেকে সরাসরি Stalwart (এবং যেকোনো JMAP সার্ভার)-এর সাথে 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 প্রমাণীকরণ
ক্রেডেনশিয়াল JMAP পরিচয় অনুযায়ী macOS লগইন Keychain থেকে পড়া হয়। dotfiles-এ কিছু নেই, env vars-এ কিছু নেই।
— security
find-generic
2.3
কোনো টেলিমেট্রি নেই
এই টুল কাউকে কিছু রিপোর্ট করে না। এটি কেবল আপনার JMAP সার্ভারের সাথে নেটওয়ার্ক সংযোগ করে।
— zero
SDKs
03.
— Section 3
Credentials
macOS Keychain

আপনার পাসওয়ার্ড কখনো ডিস্কে সংরক্ষিত হয় না।

jmapcli ডিস্কে কোনো গোপন তথ্য রাখে না। আপনার পাসওয়ার্ড (বা bearer token) macOS লগইন Keychain-এ থাকে; অ্যাকাউন্ট ফাইল — ~/.config/jmapcli/config.json, মোড 0600 — শুধুমাত্র সার্ভার URL, আপনার ব্যবহারকারীনাম এবং একটি ডিফল্ট ফ্ল্যাগ সংরক্ষণ করে। টার্মিনাল থেকে 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, অথবা bearer token-এর জন্য jmap-token (যেমন 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
আপনার হিস্ট্রি, লগ — বা কোনো 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-এ টাইপ করেছেন সেটি কখনো না ছেড়ে যায়। প্রতিটি Mac-এ একবার security ধাপটি পুনরাবৃত্তি করুন; 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
কোনো মেইলবক্সে সরান, Trash-এ পাঠান, বা ID দিয়ে স্থায়ীভাবে মুছে ফেলুন
sync
ডেল্টা সিঙ্ক করুন এবং কী পরিবর্তিত হয়েছে দেখান
contacts
JSContact পরিচিতি: তালিকা, যোগ, সম্পাদনা, মুছুন, উপনাম আমদানি
calendar
ক্যালেন্ডার ও ইভেন্ট তালিকাভুক্ত করুন, ইভেন্ট লিখুন, ক্যালেন্ডারের রং সেট করুন
sieve
সার্ভার-সাইড Sieve ফিল্টার তালিকা, আনুন, যাচাই ও পুশ করুন
alias
প্রাপকের উপনাম পরিচালনা করুন
mcp
AI টুলিংয়ের জন্য 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 বিনামূল্যে
নেটিভ Mail + Calendar অ্যাপ App Store-এ আছে
KTP Digital Pty Ltd · ABN 85 648 755 980