agentsclimarketplace

Apple notes

Skill eins78/agent-skills/skills/apple-notes

Read Apple Notes via AppleScript. Use when asked to check, search, or read notes. READ ONLY — no creating or modifying notes.From its SKILL.md

Install
npx -y skills add eins78/agent-skills --skill apple-notes

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
  • runs commandsInstructs the agent to run 7 commands, including `${CLAUDE_SKILL_DIR}/scripts/list-folders.sh` and 6 more.

What its file declares

Copied from the file, not written here

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

3.3 KB, 768 tokens by cl100k_base, as published. Nobody here has run it

Apple Notes (Read Only)

Read notes via Notes.app AppleScript. No creating, updating, or deleting notes.

Prerequisites

  • Notes.app running and synced
  • Automation permissions granted (System Settings → Privacy & Security → Automation → Terminal/Claude Code → Notes)
  • If first access attempt times out, ask user to check for macOS permission dialog

Reliability: always wrap osascript with timeout + retry

Notes.app's AppleScript bridge hangs intermittently. AppleScript-internal with timeout of N seconds does NOT kill a wedged osascript process — wrap with shell-level timeout and retry.

notes_query() {
  local script="$1" attempt
  for attempt in 1 2 3; do
    result=$(timeout 15 osascript -e "$script" 2>&1) && { echo "$result"; return 0; }
    sleep 2
  done
  echo "ERROR: Notes query failed after 3 attempts" >&2
  return 1
}

Reasonable defaults: 15s timeout, 3 retries, 2s sleep. Bump to 30s for full-text search across many notes. If all retries fail, report and move on.

Scripts

List folders

${CLAUDE_SKILL_DIR}/scripts/list-folders.sh              # All folders across all accounts
${CLAUDE_SKILL_DIR}/scripts/list-folders.sh iCloud       # Only iCloud folders

List notes in a folder

${CLAUDE_SKILL_DIR}/scripts/list-notes.sh                        # iCloud/Notes (default)
${CLAUDE_SKILL_DIR}/scripts/list-notes.sh "Shopping"             # iCloud/Shopping
${CLAUDE_SKILL_DIR}/scripts/list-notes.sh "Notes" "Gmail"        # Gmail/Notes

Output: note name | modification date (one per line)

Read a note

${CLAUDE_SKILL_DIR}/scripts/read-note.sh "Shopping List"             # Search all accounts
${CLAUDE_SKILL_DIR}/scripts/read-note.sh "Meeting Notes" "iCloud"    # Specific account

Returns metadata header + HTML body.

Search notes by name

${CLAUDE_SKILL_DIR}/scripts/search-notes.sh "recipe"                 # Search all accounts
${CLAUDE_SKILL_DIR}/scripts/search-notes.sh "recipe" "iCloud"        # Specific account

Output: note name | account/folder | modification date (one per line)

Direct Commands

For quick one-off access without scripts:

# List all iCloud folders
osascript -e 'tell application "Notes" to get name of every folder of account "iCloud"'

# List all note names in a folder
osascript -e 'tell application "Notes" to get name of every note in folder "Notes" of account "iCloud"'

# Read a note body (returns HTML)
osascript -e 'tell application "Notes" to get body of note "Note Name"'

# Count all notes
osascript -e 'tell application "Notes" to count every note'

Notes

  • Note bodies are returned as HTML — use for display or pipe through a converter for plain text
  • Note names are case-sensitive in AppleScript queries
  • Searching large numbers of notes can be slow — scope to a specific account when possible
  • The whose name contains filter is case-insensitive
  • Notes.app must be running — scripts will launch it if needed, but sync may take a moment

What ships with it: 5 files

8.5 KB alongside SKILL.md, 4 of them executable

scripts/

Gives 0 of the 12 instructions most note taking skills give in 768 tokens

Counted across 632 of the 857 authors here whose files we hold, read 2026-09-06

  • Use standard Markdown links for external URLsin 16 of 632, across 8 files
  • Use wikilinks for internal vault connectionsin 15 of 632, across 7 files
  • Embed content using the exclamation mark prefixin 14 of 632, across 6 files
  • Ask for clarification if the user request is ambiguousin 13 of 632
  • Add frontmatter properties at the top of the filein 12 of 632, across 4 files
  • Verify note renders correctly in reading viewin 12 of 632, across 4 files
  • Include a visual element on every slidein 11 of 632, across 5 files
  • Left-align body text and listsin 11 of 632, across 5 files
  • Maintain 0.5 inch minimum marginsin 11 of 632, across 5 files
  • Wrap formulas containing double quotes in single quotesin 11 of 632, across 5 files
  • Repeat one distinctive visual motif across all slidesin 10 of 632, across 4 files
  • Use 36pt or larger for slide titlesin 10 of 632, across 4 files

Said here and by no other author read

  • Wrap osascript commands with timeout and retry logic
  • List attachments if a note body search returns nothing
  • Use list-attachments.sh to identify scanned documents by OCR text
  • Use file names to identify PDF attachments
  • Extract PDF content using pdftotext when necessary
  • Scope searches to specific accounts for better performance

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.