OverviewHistoryStatsSecurity
npx skills add ...
Documentation
SKILL.md
npx skills add rbouschery/marketplace --skill apple-mail
Interact with Apple Mail on macOS. Use for reading, sending, searching, and managing emails.
npx skills add rbouschery/marketplace --skill apple-mail
This skill provides commands to interact with Apple Mail on macOS via AppleScript.
All scripts are in the ../../scripts/ directory (relative to this file). Execute them via bash from the plugin root.
| Script | Purpose | Arguments |
|---|---|---|
list-accounts.sh | List all email accounts | none |
list-mailboxes.sh | List mailboxes/folders | [account] (optional) |
get-unread-count.sh | Get unread email count | [account] [mailbox] (optional) |
| Script | Purpose | Arguments |
|---|---|---|
get-emails.sh | Get recent emails | [account] [mailbox] [limit] [include_content] [unread_only] |
get-email-by-id.sh | Get specific email by ID | <id> [account] [mailbox] [include_content] |
search-emails.sh | Search emails | <query> [account] [mailbox] [limit] |
| Script | Purpose | Arguments |
|---|---|---|
send-email.sh | Send an email | <to> <subject> <body> [cc] [bcc] [from] |
create-draft.sh | Create a draft email | <subject> <body> [to] [cc] [bcc] [from] |
create-reply-draft.sh | Create reply to email | <message_id> <body> [reply_all] [account] [mailbox] |
send-draft.sh | Send front-most draft | none |
| Script | Purpose | Arguments |
|---|---|---|
archive-email.sh | Archive an email | <message_id> [account] [mailbox] [archive_mailbox] |
delete-email.sh | Delete an email | <message_id> [account] [mailbox] |
mark-read.sh | Mark email as read | <message_id> [account] [mailbox] |
mark-unread.sh | Mark email as unread | <message_id> [account] [mailbox] |
Scripts use delimiters for structured output:
<<>> separates fields within a record||| separates multiple recordsERROR: prefix indicates an error messageWhen receiving email records, parse them like this:
||| to get individual records<<>> to get fieldsExample parsing in bash:
For advanced AppleScript patterns and customization, see ./reference/applescript-patterns.md.
./scripts/get-email-by-id.sh 12345 "iCloud" "INBOX" true./scripts/search-emails.sh "meeting notes" "" "" 20./scripts/send-email.sh "recipient@example.com" "Subject" "Body text"./scripts/send-email.sh "to@example.com" "Subject" "Body" "cc@example.com" "bcc@example.com"./scripts/create-draft.sh "Draft Subject" "Draft body" "recipient@example.com"./scripts/create-reply-draft.sh 12345 "Thanks for your message!" false "iCloud" "INBOX"./scripts/send-draft.sh./scripts/archive-email.sh 12345 "iCloud" "INBOX"./scripts/mark-read.sh 12345 "iCloud" "INBOX"
./scripts/mark-unread.sh 12345 "iCloud" "INBOX"IFS='|||' read -ra emails <<< "$output"
for email in "${emails[@]}"; do
IFS='<<>>' read -ra fields <<< "$email"
id="${fields[0]}"
subject="${fields[1]}"
sender="${fields[2]}"
# ... etc
done