Borrowing it
Nothing to install: this file belongs to 54yyyu/pyapple-mcp. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/54yyyu/pyapple-mcp/main/.claude/skills/pyapple/SKILL.mdgit clone --depth 1 https://github.com/54yyyu/pyapple-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/54yyyu/pyapple-mcp/pyapple)<a href="https://agentmods.dev/skills/54yyyu/pyapple-mcp/pyapple"><img src="https://agentmods.dev/badge/skills/54yyyu/pyapple-mcp/pyapple.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00098 | $0.13454 |
| Opus 5 | $0.00049 | $0.06727 |
| Sonnet 5 | $0.00020 | $0.02691 |
| Haiku 4.5 | $0.00010 | $0.01345 |
Grade A, and why
pyapple scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 968 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Driving pyapple
pyapple reads and writes eight Apple apps on the machine it runs on, and
answers two questions about the machine itself. §1 is the lookup table: find the
operation, copy the shape, go. Everything after it is what the shape does not
tell you.
pyapple <tool> <operation> --help remains the authority on defaults and
semantics. Ten tools — messages, mail, contacts, reminders, calendar,
notes, maps, shortcuts, presence, doctor — plus pyapple perms, which
is not a tool.
Two things to reach for before you go anywhere else. After any exit 3, run
pyapple doctor report — it says which macOS grant is missing and where to click,
and it distinguishes that from a grant it could not determine (§2). And if a send
comes back saying Nothing was sent, that is not a failure: this install
requires confirmation, and §11 is the flow.
1. Every operation, and its shape
88 operations. <x> is positional, [x] optional, A|B a fixed choice.
--json, --read-only and --perms work on every one of them and are omitted
here. The class column is what the policy gate charges (§7). --confirm-token
is omitted too and belongs to §11; it is on messages send,
messages send-attachment, messages schedule, mail send, mail reply and
mail forward.
Seven flags take a space-separated list, not a comma-separated one:
messages conversations --participants, and on calendar --invitees,
--recurrence-days, --minutes-before, --alarm-minutes-before, --alarm-at.
Writing --invitees "[email protected],[email protected]" makes one malformed address, and on
--invitees that address gets mail.
Spellings below are canonical, and a handful of flags answer to a second
name so that a wrong guess works rather than exiting 2 — --since/--until
on calendar windows, --from-date on mail and messages reads,
--from-address/--to-address on maps directions, --id for --event-id
and --chat-id, --contact for contacts --name, --title/--name either
way round on a create. Use the canonical one; the full table is in the
README's Alternative flag spellings. Nothing was renamed and no old spelling
was removed.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 7d ago First seen · 968 lines · 98 tokens per session scan A 14e967d05093
pyapple is a skill published in the GitHub repository 54yyyu/pyapple-mcp (17 stars, last pushed 1mo ago), licensed MIT. It adds 98 tokens to every session and 13,454 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
apple-mail
Use this skill when the user wants to manage Apple Mail on macOS - reading, searching, sending, replying to, forwarding, and organizing emails and mailboxes. This skill provides access to Apple Mail through MCP tools.
apple-notes
Manage Apple Notes via memo CLI: create, search, edit.
apple-notes
Use this skill when the user wants to interact with Apple Notes on macOS - creating, searching, reading, updating, deleting, organizing, or formatting notes and folders. This skill provides access to Apple Notes through MCP tools and includes safe formatting guidance.
confirmation-protocol
Foresay-derived confirmation workflow for email operations. Use this skill BEFORE executing archive-mail with vague filters, composeemail (sending mail), deleteemail/moveemail in bulk, or any operation that touches 5+ emails. Show user a structured preview of "what I understood" before taking action, achieving…
bulk-operation-preview
Show structured preview of bulk email operations (5+ emails) before execute. Group by thread, flag false-positive candidates, count side-effect scope (files written, attachments downloaded, mailboxes touched). Use after email-search-disambiguation finishes Phase 1, as Phase 2 of the confirmation protocol.
email-search-disambiguation
A clarification step for email searches when a person, time period, direction, or scope is unclear. It presents specific possible meanings so the user can choose one.