OpenClaw plugin for Apple Notes - read, create, update, and delete notes via AppleScript
npm install openclaw-apple-notesRead, create, update, and delete Apple Notes via AppleScript.
- macOS (uses AppleScript via osascript)
- Apple Notes app
- OpenClaw gateway running on macOS host (not in a container)
``bash`
openclaw plugins install openclaw-apple-notes
This downloads the plugin from npm and extracts it to ~/.openclaw/extensions/apple-notes/.
Alternative: install from source
`bash`
git clone https://github.com/androidStern/openclaw-apple-notes.git
openclaw plugins install ./openclaw-apple-notes
Add to ~/.openclaw/openclaw.json:
`json`
{
"plugins": {
"entries": {
"apple-notes": {
"enabled": true
}
}
}
}
Since these tools can modify data, they are registered as optional: true and must be explicitly allowed.
Add "apple-notes" to your sandbox tool allowlist in ~/.openclaw/openclaw.json:
`json`
{
"tools": {
"sandbox": {
"tools": {
"allow": ["group:runtime", "group:fs", "apple-notes"]
}
}
}
}
`bash`
openclaw gateway restart
`bash`
openclaw plugins listShould show: Apple Notes | apple-notes | loaded
| Tool | Description |
|------|-------------|
| apple_notes_list | List all notes with ID, folder, and title |apple_notes_read
| | Read note content (HTML) by ID |apple_notes_create
| | Create a note in a folder with title and HTML body |apple_notes_update
| | Update note content by ID |apple_notes_delete
| | Delete a note by ID |
Use apple_notes_list to see all my notes
`$3
`
Read the note with ID "x-coredata://..." using apple_notes_read
`$3
`
Create a new note in "Notes" folder titled "Shopping List" with content "Shopping
- Milk
"
`$3
`
Update note ID "x-coredata://..." with new HTML content
`Notes
- Content is HTML. Apple Notes uses a subset of HTML (basic tags like
, ,
, , , , etc.)
- The "Recently Deleted" folder is automatically excluded from listings
- Note IDs are CoreData URIs (e.g., x-coredata://...)Security
- Runs AppleScript via
osascript as a local subprocess
- Requires macOS automation permissions for the Notes app
- Tools are marked optional: true` so they must be explicitly allowedMIT