skills/email/SKILL.md
Use this skill when the user asks about email - reading, searching, sending, drafting, archiving, or managing emails.
npx skillsauth add pietz/skills emailInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill uses small bash scripts (AppleScript under the hood) to automate the native macOS Mail.app. Scripts live in the scripts/ subfolder and are intended to be called with parameters instead of editing AppleScript snippets inline.
Use these scripts as a small toolbox. The typical path is:
list_accounts.sh. Treat this as the source of truth for localized mailbox names.list_recent.sh or search_inbox.sh to get IDs.search_mailbox.sh using the exact mailbox name from step 1.read_by_id.sh to inspect, open_by_id.sh to show in Mail.app, reply.sh to draft a reply.send.sh, archive_*.sh, delete.sh, mark_read.sh), always confirm with the user first and double-check the ID.This keeps the skill portable across different languages and account setups without hardcoded aliases.
scripts/list_accounts.sh list accounts and mailboxes.scripts/list_recent.sh [limit] list recent inbox messages (default 10).scripts/list_unread.sh list unread inbox messages.scripts/read_by_id.sh --id <id> [--account <name|email>] [--mailbox <name>] [--max-chars <n>] read full email.scripts/open_by_id.sh --id <id> open email in Mail.app.scripts/search_inbox.sh --term <text> [--field subject|sender|content] [--limit <n>] search inbox.scripts/search_mailbox.sh --account <name|email> --mailbox <name> --term <text> [--field subject|sender|content] [--limit <n>] search a specific mailbox (archive, etc.), includes IDs.scripts/compose.sh --from <email> --to <email[,email]> [--cc ...] [--bcc ...] [--subject ...] [--body ...] open compose window.scripts/send.sh --from <email> --to <email[,email]> [--cc ...] [--bcc ...] [--subject ...] [--body ...] send immediately (confirm first).scripts/reply.sh --id <id> open reply window.scripts/mark_read.sh --id <id> [--status true|false] mark as read/unread.scripts/archive_exchange.sh --id <id> [--mailbox <archive_mailbox>] archive for Exchange/Outlook.scripts/archive_gmail.sh --id <id> --account <name|email> [--inbox <mailbox>] [--all-mail <mailbox>] archive for Gmail.scripts/delete.sh --id <id> [--account <name|email>] [--mailbox <name>] [--trash <mailbox>] move to trash (use account/mailbox for Sent, Archive, etc.)../scripts/list_accounts.sh
./scripts/list_recent.sh 5
./scripts/search_inbox.sh --term "invoice" --field subject --limit 5
./scripts/read_by_id.sh --id 12345 --max-chars 1000
./scripts/compose.sh --from "[email protected]" --to "[email protected]" --subject "Hello" --body $'Line 1\nLine 2'
search_mailbox.sh and then read_by_id.sh with --account/--mailbox.list_accounts.sh to confirm. Scripts accept account name or account email and try a partial mailbox-name match if the exact name is not found.development
Finish a build session by shipping the work. Ensure tests exist and pass, validate the functionality, spawn a fresh-eyes subagent review when the change is large or risky, then commit and push to main. Use when the user says "ship", "ship it", "wrap this up and push", "test, commit and push", or otherwise wants the session's changes tested, reviewed, committed, and pushed.
development
Search YouTube and read video transcripts from the command line. Use this whenever the user wants to find YouTube videos or channels, answer a question using knowledge from YouTube videos, get/read/summarize a video's transcript or captions, or find where in a video something is discussed. Also consider this skill for general purpose research, since YouTube is a rich source of information.
development
Create visual documents (presentations, flyers, brochures, posters) by generating HTML/CSS and converting to PDF via headless Chromium. Use this skill when the user wants to create slides, presentations, pitch decks, flyers, brochures, or posters.
development
Find and remove incidental architectural complexity in an existing codebase — structure that accreted through many locally-reasonable edits until the whole became more complex than the problem warrants. Preserves what the software does for its callers while simplifying how it's built. NOT for bug fixes, feature work, formatting/style cleanup, or refactors whose change is already obvious.