✓ Verified
💻 Development
✓ Enhanced Data
Mac Notes Agent
Integrate with the macOS Notes app (Apple Notes)
- Rating
- 4.9 (479 reviews)
- Downloads
- 630 downloads
- Version
- 1.0.0
Overview
Integrate with the macOS Notes app (Apple Notes)
Complete Documentation
View Source →
Mac Notes Agent
Overview
This skill lets the agent talk to Apple Notes on macOS using AppleScript
(via osascript). It is implemented as a small Node.js CLI:
bash
node skills/mac-notes-agent/cli.js <command> [options]
Requires macOS with the built-in Notes app and osascript available.All operations target the default Notes account. Optionally you can specify which folder to use.
Commands
1) Add a new note
bash
node skills/mac-notes-agent/cli.js add \
--title "Meeting notes" \
--body "First line\nSecond line\nThird line" \
[--folder "Jarvis"]
--title(required): Note title--body(required): Note body text. Use\nfor line breaks.--folder(optional): Folder name. If omitted, uses system default folder. If folder doesn't exist, it will be created.
Line breaks (\n) are converted totags internally for proper rendering in Notes.
Result (JSON):
json
{
"status": "ok",
"id": "Jarvis::2026-02-09T08:40:00::Meeting notes",
"title": "Meeting notes",
"folder": "Jarvis"
}
2) List notes
bash
node skills/mac-notes-agent/cli.js list [--folder "Jarvis"] [--limit 50]
- Lists notes in the given folder (or all folders if omitted).
- Output is JSON array with
title,folder,creationDate, and syntheticid.
3) Read a note (get)
bash
# By folder + title
node skills/mac-notes-agent/cli.js get \
--folder "Jarvis" \
--title "Meeting notes"
# By synthetic id
node skills/mac-notes-agent/cli.js get --id "Jarvis::2026-02-09T08:40:00::Meeting notes"
4) Update a note (replace body)
bash
node skills/mac-notes-agent/cli.js update \
--folder "Jarvis" \
--title "Meeting notes" \
--body "New content\nReplaces everything"
- Replaces the entire body of the matching note.
- Can also use
--idfor identification.
5) Append to a note
bash
node skills/mac-notes-agent/cli.js append \
--folder "Jarvis" \
--title "Meeting notes" \
--body "\n---\nAdditional notes here"
- Appends new content to the end of the existing note.
6) Delete a note
bash
node skills/mac-notes-agent/cli.js delete \
--folder "Jarvis" \
--title "Meeting notes"
7) Search notes
bash
node skills/mac-notes-agent/cli.js search \
--query "keyword" \
[--folder "Jarvis"] \
[--limit 20]
- Searches note titles and bodies for the keyword.
Identification Model
Apple Notes doesn't expose stable IDs. This CLI uses:
- Primary key:
(folderName, title) - Synthetic ID:
folderName::creationDate::title
Environment
- macOS only: Uses AppleScript via
osascript - No npm dependencies: Uses only Node.js built-ins (
child_process)
Installation
Terminal bash
openclaw install mac-notes-agent
Copied!
💻Code Examples
node skills/mac-notes-agent/cli.js <command> [options]
node-skillsmac-notes-agentclijs-command-options.txt
> Requires macOS with the built-in **Notes** app and `osascript` available.
All operations target the **default Notes account**. Optionally you can specify
which folder to use.
---
## Commands
### 1) Add a new note[--folder "Jarvis"]
---folder-jarvis.txt
- `--title` (required): Note title
- `--body` (required): Note body text. Use `\n` for line breaks.
- `--folder` (optional): Folder name. If omitted, uses system default folder. If folder doesn't exist, it will be created.
> Line breaks (`\n`) are converted to `<br>` tags internally for proper rendering in Notes.
**Result (JSON):**}
.txt
---
### 2) List notesnode skills/mac-notes-agent/cli.js list [--folder "Jarvis"] [--limit 50]
node-skillsmac-notes-agentclijs-list---folder-jarvis---limit-50.txt
- Lists notes in the given folder (or all folders if omitted).
- Output is JSON array with `title`, `folder`, `creationDate`, and synthetic `id`.
---
### 3) Read a note (get)node skills/mac-notes-agent/cli.js get --id "Jarvis::2026-02-09T08:40:00::Meeting notes"
node-skillsmac-notes-agentclijs-get---id-jarvis2026-02-09t084000meeting-notes.txt
---
### 4) Update a note (replace body)--body "New content\nReplaces everything"
---body-new-contentnreplaces-everything.txt
- Replaces the entire body of the matching note.
- Can also use `--id` for identification.
---
### 5) Append to a note--body "\n---\nAdditional notes here"
---body-n---nadditional-notes-here.txt
- Appends new content to the end of the existing note.
---
### 6) Delete a note--title "Meeting notes"
---title-meeting-notes.txt
---
### 7) Search notesexample.sh
node skills/mac-notes-agent/cli.js add \
--title "Meeting notes" \
--body "First line\nSecond line\nThird line" \
[--folder "Jarvis"]example.json
{
"status": "ok",
"id": "Jarvis::2026-02-09T08:40:00::Meeting notes",
"title": "Meeting notes",
"folder": "Jarvis"
}Tags
#apple_apps-and-services
Quick Info
Category Development
Model Claude 3.5
Complexity Multi-Agent
Author swancho
Last Updated 3/10/2026
🚀
Optimized for
Claude 3.5
Ready to Install?
Get started with this skill in seconds
openclaw install mac-notes-agent
Related Skills
✓ Verified
💻 Development
4claw
4claw — a moderated imageboard for AI agents.
🧠 Claude-Ready
)}
★ 4.4 (118)
↓ 4,990
v1.0.0
✓ Verified
💻 Development
Aap Passport
Agent Attestation Protocol - The Reverse Turing Test.
🧠 Claude-Ready
)}
★ 4.3 (89)
↓ 4,621
v1.0.0
✓ Verified
💻 Development
Acestep Lyrics Transcription
Transcribe audio to timestamped lyrics using OpenAI Whisper or ElevenLabs Scribe API.
⚡ GPT-Optimized
)}
★ 3.8 (274)
↓ 17,648
v1.0.0
✓ Verified
💻 Development
Adaptive Suite
A continuously adaptive skill suite that empowers Clawdbot.
🧠 Claude-Ready
)}
★ 4.7 (88)
↓ 1,625
v1.0.0