Search, read, and extract attachments from Apple Mail's local storage. Query emails by sender, recipient, subject, body, date, mailbox, and flags. Read raw RFC822 messages and extract file attachments.
74
91%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Search, read, and extract attachments from Apple Mail's local storage on macOS.
apple-mail.sh — a bash script that queries the Apple Mail SQLite envelope
index and reads .emlx files from disk. Read-only — it never modifies
mail data.
TOOL=~/Development/agent-stuff/skills/apple-mail/apple-mail.sh
# Search emails
$TOOL search --from "peter@" --subject "dinner" --limit 5
$TOOL search --after 2026-02-01 --has-attachment
$TOOL search --body "invoice" --mailbox "INBOX" --unread
$TOOL search --to "armin@" --before 2025-12-31
# Show message metadata, recipients, attachments, and summary
$TOOL info 783660
# Read the raw RFC822 email (headers + body)
$TOOL read 783660
# Extract attachments to a temp directory (prints the path)
$TOOL attachment 783660 # all attachments
$TOOL attachment 783660 "Rechnung.pdf" # specific file
# List all mailboxes with counts
$TOOL mailboxes| Flag | Description |
|---|---|
--from <addr> | Sender address substring |
--to <addr> | Recipient address substring |
--subject <text> | Subject substring |
--body <text> | Body/summary text substring |
--mailbox <name> | Mailbox URL substring (e.g. INBOX, Sent, Trash) |
--after <YYYY-MM-DD> | Received after date |
--before <YYYY-MM-DD> | Received before date |
--unread | Only unread messages |
--flagged | Only flagged messages |
--has-attachment | Only messages with attachments |
--limit <n> | Max results (default: 20) |
search returns pipe-delimited table with header row:
id|sender|sender_name|subject|received|status|flagged|mailbox|attachmentsinfo returns structured metadata sectionsread outputs raw RFC822 email to stdoutattachment prints the temp directory path to stdout, file listing to stderrid column.partial.emlx files contain headers only (body not downloaded); read warns about this/tmp/; clean up when donebody search queries the summaries table (Apple Mail's plaintext preview), not the full email body%5BGmail%5D = [Gmail], %20 = space)d265b8e
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.