From apple-notes-pack
Provides reference architecture for Apple Notes automation on macOS using osascript/JXA from Node.js apps, including project structure, constraints, and workarounds.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin apple-notes-packThis skill is limited to using the following tools:
```
Sets up macOS permissions for Apple Notes automation with AppleScript, JXA, osascript, and Shortcuts. Includes access tests, CLI wrapper script, and Shortcuts verification.
Manages Apple Notes on macOS via memo CLI: create, view, edit, delete, search, move, export notes. For terminal-based note CRUD and organization.
Manages Apple Notes on macOS via memo CLI: create, view, edit, delete, search, move notes between folders, and export to HTML/Markdown. Useful for terminal-based note operations.
Share bugs, ideas, or general feedback.
┌────────────────────────────────────────────────┐
│ macOS Machine │
│ │
│ ┌──────────┐ ┌───────────┐ ┌────────────┐ │
│ │ Your App │──▶│ osascript │──▶│ Notes.app │ │
│ │ (Node.js)│ │ (JXA/AS) │ │ (iCloud) │ │
│ └──────────┘ └───────────┘ └────────────┘ │
│ │ │ │
│ ┌────▼─────┐ ┌──────▼───────┐ │
│ │ SQLite │ │ iCloud Sync │ │
│ │ Cache │ │ (automatic) │ │
│ └──────────┘ └──────────────┘ │
└────────────────────────────────────────────────┘
apple-notes-automation/
├── src/
│ ├── notes-client.ts # JXA wrapper class
│ ├── templates/ # Note templates
│ ├── export/ # Export to MD/JSON/SQLite
│ ├── events/ # Change detection polling
│ └── server.ts # Optional: local API server
├── scripts/
│ ├── notes-cli.sh # CLI wrapper
│ ├── export-all.sh # Full export script
│ └── template-create.js # JXA template engine
├── tests/
│ ├── mocks/ # Mock client for CI
│ └── unit/ # Unit tests
└── package.json
| Constraint | Impact | Workaround |
|---|---|---|
| macOS only | No Linux/Windows | Run on Mac; export for cross-platform |
| No REST API | Cannot access remotely | Local-only; export to portable format |
| iCloud sync lag | Writes may not appear instantly | Poll with delay |
| No webhooks | Cannot push events | Poll for changes |
| HTML-only body | No native Markdown | Convert on export |