From apple-notes-pack
Optimizes Apple Notes automation performance for large collections using SQLite caching, incremental sync, result limiting, and JXA/bash strategies.
How this skill is triggered — by the user, by Claude, or both
Slash command
/apple-notes-pack:apple-notes-performance-tuningThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
| Operation | 100 notes | 1000 notes | 10000 notes |
| Operation | 100 notes | 1000 notes | 10000 notes |
|---|---|---|---|
| List all | ~0.5s | ~3s | ~30s |
| Search by name | ~0.3s | ~2s | ~20s |
| Full-text search | ~1s | ~8s | ~80s |
| Create note | ~0.2s | ~0.2s | ~0.2s |
| Export all to JSON | ~1s | ~10s | ~100s |
// BAD: Load all notes then slice
const all = Notes.defaultAccount.notes(); // Loads everything
const first10 = all.slice(0, 10);
// BETTER: Specify range (JXA supports this for some operations)
// Unfortunately JXA does not support server-side filtering
// Best approach: cache results locally
# Export to SQLite once, then query locally
osascript -l JavaScript scripts/export-to-sqlite.js
sqlite3 notes-cache.db "SELECT title FROM notes WHERE body LIKE '%project%'"
// Only process notes modified since last sync
const lastSync = new Date(fs.readFileSync(".last-sync", "utf8"));
const modified = allNotes.filter(n => n.modificationDate() > lastSync);
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin apple-notes-packApplies Node.js JXA client patterns for Apple Notes automation: list/create/search notes, batch operations with throttling. Triggers on 'apple notes patterns'. For macOS.
Searches and discovers connections across Apple Notes via an MCP server. Use for recall, synthesis, or surfacing non-obvious links between notes.
Manages Apple Notes on macOS: create, search, read, update, delete and organize notes and folders via natural language commands.