Boogie
jmapcli · JMAP từ terminal
01.
v1.4.0 · macOS
Một ứng dụng khách dòng lệnh JMAP gốc.

JMAP từ dòng lệnh.

jmapcli nói JMAP với Stalwart (và bất kỳ máy chủ JMAP nào) trực tiếp từ terminal của bạn — gửi, đọc, tìm kiếm, đồng bộ, di chuyển và quản lý thư. Swift gốc, thông tin đăng nhập trong macOS Keychain, không đo từ xa.

$ brew tap jasonhollis/boogie && brew install jmapcli $ jmapcli login # được lưu trong macOS Keychain $ jmapcli send --to you@example.com --subject "Hi" --body "From the CLI"
02.
— Section 2
Install
Homebrew

Một dòng. Đã ký.

2.1
Homebrew tap
brew tap jasonhollis/boogie && brew install jmapcli — một tệp nhị phân đã ký duy nhất, không có phụ thuộc nào cần biên dịch. Nâng cấp qua brew upgrade.
— macOS
Apple silicon
2.2
Xác thực Keychain
Thông tin đăng nhập được đọc từ Keychain đăng nhập macOS theo danh tính JMAP. Không có gì trong dotfiles, không có gì trong env vars.
— security
find-generic
2.3
Không đo từ xa
Công cụ này không gửi dữ liệu về đâu cả. Mạng duy nhất nó kết nối là máy chủ JMAP của bạn.
— zero
SDKs
03.
— Section 3
Credentials
macOS Keychain

Mật khẩu của bạn không bao giờ chạm vào ổ đĩa.

jmapcli không lưu bất kỳ bí mật nào trên ổ đĩa. Mật khẩu (hoặc bearer token) của bạn được lưu trong Keychain đăng nhập macOS; tệp tài khoản — ~/.config/jmapcli/config.json, chế độ 0600 — chỉ chứa URL máy chủ, tên người dùng và cờ mặc định. Chưa quen dùng Keychain từ terminal? Toàn bộ quy trình chỉ gồm ba lệnh security tích hợp sẵn.

1 · Lưu bí mật — và đọc lại. macOS sẽ nhắc nhập giá trị, vì vậy bí mật không bao giờ được gõ trên dòng lệnh, hiển thị trên màn hình hay ghi vào lịch sử 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 — tên mà jmapcli tra cứu: jmap-password cho mật khẩu, hoặc jmap-token cho bearer token (ví dụ: Fastmail); chỉ đặt loại bạn sử dụng.
-a
account — địa chỉ email của bạn (tên người dùng giống như bạn cung cấp cho jmapcli).
-l
label — tên bạn sẽ thấy trong ứng dụng Keychain Access; -U cập nhật mục hiện có tại chỗ.
-w
không có giá trị — nhắc nhập bí mật. Đây là phần giữ cho bí mật không xuất hiện trong ~/.zsh_history và danh sách tiến trình.

2 · Trỏ jmapcli vào máy chủ của bạn. Đăng ký tài khoản một lần; bí mật được lấy trực tiếp từ mục Keychain bạn vừa lưu, vì vậy nó không bao giờ xuất hiện trên dòng lệnh.

$ 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
Không có gì trong lịch sử, nhật ký — hay ngữ cảnh của AI
Khi bí mật đã nằm trong Keychain, các lệnh hàng ngày (list, send, draft, sync) không bao giờ mang theo mật khẩu, vì vậy nó không thể bị ghi lại trong ~/.zsh_history, danh sách tiến trình hay nhật ký CI. Đó chính là điều khiến jmapcli an toàn khi được điều khiển từ các công cụ terminal AI — agent nhận được một JMAP client, chứ không bao giờ là bí mật của bạn.
— zsh
CI · agents
3.2
Xoay vòng mật khẩu hoặc đăng xuất
Đã thay đổi mật khẩu? Chạy lại dòng security add-generic-password … -w-U sẽ ghi đè tại chỗ. Để xóa tài khoản, jmapcli logout xóa cả mục cấu hình lẫn bí mật Keychain trong một bước (--all xóa mọi tài khoản).
— rotate
logout
3.3
Mỗi Mac độc lập — theo thiết kế
Keychain đăng nhập không được đồng bộ qua iCloud — đây là ranh giới có chủ đích, để mật khẩu không bao giờ rời khỏi chiếc Mac mà bạn đã nhập vào. Lặp lại bước security một lần trên mỗi Mac; config.json có thể được đặt trong thư mục home đồng bộ vì nó không chứa bí mật nào.
— per
machine
04.
— Section 4
Commands
One verb each

Mọi thứ đều là một lệnh con.

login
Lưu thông tin đăng nhập của một máy chủ JMAP vào Keychain
discover
Khám phá phiên JMAP từ máy chủ
accounts
Liệt kê các tài khoản đã cấu hình và mọi danh tính có thể gửi
mailboxes
Liệt kê tất cả hộp thư
list
Liệt kê email trong một hộp thư
search
Tìm thư theo nội dung, chủ đề, người gửi, người nhận hoặc thân thư (phía máy chủ)
read
Hiển thị toàn bộ nội dung email (kết xuất Markdown)
send
Gửi email qua JMAP Submission, từ bất kỳ danh tính nào có thể gửi (--from)
reply
Trả lời một thư theo ID, theo luồng và trích dẫn thư gốc
forward
Chuyển tiếp một thư theo ID, đính kèm lại các tệp của thư
draft
Lưu một email vào Drafts mà không gửi
move · trash · delete
Di chuyển vào một hộp thư, chuyển vào Trash, hoặc xóa vĩnh viễn theo ID
sync
Thực hiện đồng bộ delta và hiển thị những gì đã thay đổi
contacts
Danh bạ JSContact: liệt kê, thêm, sửa, xóa, nhập bí danh
calendar
Liệt kê lịch và sự kiện, ghi sự kiện, đặt màu lịch
sieve
Liệt kê, lấy, kiểm tra và đẩy bộ lọc Sieve phía máy chủ
alias
Quản lý bí danh người nhận
mcp
Chạy như một máy chủ Model Context Protocol cho công cụ AI
logout
Xóa thông tin đăng nhập đã lưu
05.
— Section 5
Changelog
Every release

Có gì mới.

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
— Một phần của Boogie

Muốn ứng dụng đầy đủ?

jmapcli miễn phí
ứng dụng Mail + Calendar gốc có trên App Store
KTP Digital Pty Ltd · ABN 85 648 755 980