Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
rbouschery avatar

Apple Mail

  • 1.4k installs
  • Updated January 22, 2026
  • rbouschery/marketplace

Helps with ai & agent building tasks.

About

apple-mail is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.

  • apple-mail
  • AI & Agent Building
  • AI-coding skill

Apple Mail by the numbers

  • 1,362 all-time installs (skills.sh)
  • +1 installs in the week ending Aug 5, 2026 (Skillselion tracking)
  • Ranked #862 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/rbouschery/marketplace --skill apple-mail

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1.4k
Last updatedJanuary 22, 2026
Repositoryrbouschery/marketplace

What it does

Helps with ai & agent building tasks.

Files

SKILL.mdMarkdownGitHub ↗

Apple Mail Skill

This skill provides commands to interact with Apple Mail on macOS via AppleScript.

Available Scripts

All scripts are in the ../../scripts/ directory (relative to this file). Execute them via bash from the plugin root.

Account & Mailbox Management

ScriptPurposeArguments
list-accounts.shList all email accountsnone
list-mailboxes.shList mailboxes/folders[account] (optional)
get-unread-count.shGet unread email count[account] [mailbox] (optional)

Reading Emails

ScriptPurposeArguments
get-emails.shGet recent emails[account] [mailbox] [limit] [include_content] [unread_only]
get-email-by-id.shGet specific email by ID<id> [account] [mailbox] [include_content]
search-emails.shSearch emails<query> [account] [mailbox] [limit]

Sending & Composing

ScriptPurposeArguments
send-email.shSend an email<to> <subject> <body> [cc] [bcc] [from]
create-draft.shCreate a draft email<subject> <body> [to] [cc] [bcc] [from]
create-reply-draft.shCreate reply to email<message_id> <body> [reply_all] [account] [mailbox]
send-draft.shSend front-most draftnone

Email Management

ScriptPurposeArguments
archive-email.shArchive an email<message_id> [account] [mailbox] [archive_mailbox]
delete-email.shDelete an email<message_id> [account] [mailbox]
mark-read.shMark email as read<message_id> [account] [mailbox]
mark-unread.shMark email as unread<message_id> [account] [mailbox]

Output Format

Scripts use delimiters for structured output:

  • <<>> separates fields within a record
  • ||| separates multiple records
  • ERROR: prefix indicates an error message

Email Record Format

id<<>>subject<<>>sender<<>>to<<>>cc<<>>bcc<<>>dateSent<<>>isRead<<>>content|||

Usage Examples

List accounts

./scripts/list-accounts.sh

Get recent emails from INBOX

./scripts/get-emails.sh "" "INBOX" 10 false false

Get recent unread emails with content

./scripts/get-emails.sh "" "INBOX" 10 true true

Get specific email by ID

./scripts/get-email-by-id.sh 12345 "iCloud" "INBOX" true

Search emails

./scripts/search-emails.sh "meeting notes" "" "" 20

Send an email

./scripts/send-email.sh "recipient@example.com" "Subject" "Body text"

Send with CC and BCC

./scripts/send-email.sh "to@example.com" "Subject" "Body" "cc@example.com" "bcc@example.com"

Create a draft

./scripts/create-draft.sh "Draft Subject" "Draft body" "recipient@example.com"

Reply to an email

./scripts/create-reply-draft.sh 12345 "Thanks for your message!" false "iCloud" "INBOX"

Send the front-most draft

./scripts/send-draft.sh

Archive an email

./scripts/archive-email.sh 12345 "iCloud" "INBOX"

Mark as read/unread

./scripts/mark-read.sh 12345 "iCloud" "INBOX"
./scripts/mark-unread.sh 12345 "iCloud" "INBOX"

Parsing Output

When receiving email records, parse them like this:

1. Split by ||| to get individual records 2. Split each record by <<>> to get fields 3. Fields are: id, subject, sender, to, cc, bcc, dateSent, isRead, content

Example parsing in bash:

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

Notes

  • Scripts require macOS with Apple Mail configured
  • Apple Mail must have at least one account set up
  • First run may trigger macOS permission prompts for automation
  • Empty optional arguments should be passed as empty strings ""
  • For scripts that need arrays (multiple recipients), pass comma-separated values

Reference

For advanced AppleScript patterns and customization, see ./reference/applescript-patterns.md.

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.