apple-notes-performance-tuning

Featured

Optimize Apple Notes automation performance for large note collections. Trigger: "apple notes performance".

AI & Automation 2,266 stars 315 forks Updated today MIT

Install

View on GitHub

Quality Score: 99/100

Stars 20%
100
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Apple Notes Performance Tuning ## Overview Apple Notes automation performance degrades linearly with note count because JXA loads all note objects into memory when you access a collection. A vault with 10,000+ notes can take 30+ seconds for a simple list operation. The primary bottleneck is the Apple Events bridge between your script and Notes.app — every property access (name, body, date) is a separate IPC call. This guide covers caching strategies, incremental sync, batch optimization, and architectural patterns to keep automation responsive at scale. ## Performance Benchmarks | Operation | 100 notes | 1,000 notes | 10,000 notes | |-----------|----------|-------------|-------------| | List all (names only) | ~0.5s | ~3s | ~30s | | Search by name (`.whose()`) | ~0.3s | ~2s | ~20s | | Full-text search (body scan) | ~1s | ~8s | ~80s | | Create single note | ~0.2s | ~0.2s | ~0.2s | | Export all to JSON | ~1s | ~10s | ~100s | | Count notes only (`.length`) | ~0.1s | ~0.3s | ~1s | ## Strategy 1: Minimize Property Access ```javascript // BAD: Each property access is a separate Apple Event IPC call const Notes = Application("Notes"); const allNotes = Notes.defaultAccount.notes(); allNotes.forEach(n => { console.log(n.name()); // IPC call 1 console.log(n.body()); // IPC call 2 console.log(n.modificationDate()); // IPC call 3 }); // With 1000 notes = 3000 IPC calls // GOOD: Batch extract in a single JXA evaluation const data = Notes.defaultAccount.notes().map(n => ...

Details

Author
jeremylongshore
Repository
jeremylongshore/claude-code-plugins-plus-skills
Created
7 months ago
Last Updated
today
Language
Python
License
MIT

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category