← Back to Skills Marketplace
lucaperret

macOS Notes

by Luca · GitHub ↗ · v1.0.0
macos ✓ Security Clean
772
Downloads
0
Stars
2
Active Installs
1
Versions
Install in OpenClaw
/install macos-notes
Description
Create, read, search, and manage macOS Notes via AppleScript. Use when the user asks to take a note, jot something down, save an idea, create meeting notes,...
README (SKILL.md)

macOS Notes

Manage Apple Notes via $SKILL_DIR/scripts/notes.sh. Notes content is stored as HTML internally; the script accepts plain text or HTML body and returns plaintext when reading.

Quick start

List folders

Always list folders first to discover accounts and folder names:

"$SKILL_DIR/scripts/notes.sh" list-folders

Output format: account → folder (one per line).

Create a note

echo '\x3Cjson>' | "$SKILL_DIR/scripts/notes.sh" create-note

JSON fields:

Field Required Default Description
title yes - Note title (becomes the first line / heading)
body no "" Note content (plain text — converted to HTML automatically)
html no "" Raw HTML body (overrides body if both provided)
folder no default folder Folder name (from list-folders)
account no default account Account name (from list-folders)

Read a note

echo '\x3Cjson>' | "$SKILL_DIR/scripts/notes.sh" read-note

JSON fields:

Field Required Default Description
name yes - Note title (exact match)
folder no all folders Folder to search in
account no default account Account to search in

List notes

echo '\x3Cjson>' | "$SKILL_DIR/scripts/notes.sh" list-notes

JSON fields:

Field Required Default Description
folder no default folder Folder name
account no default account Account name
limit no 20 Max notes to return

Search notes

echo '\x3Cjson>' | "$SKILL_DIR/scripts/notes.sh" search-notes

JSON fields:

Field Required Default Description
query yes - Text to search for in note titles
account no default account Account to search in
limit no 10 Max results to return

Interpreting natural language

Map user requests to commands:

User says Command Key fields
"Note this down: ..." create-note title, body
"Save meeting notes" create-note title: "Meeting notes — \x3Cdate>", body
"What did I write about X?" search-notes query: "X"
"Show my notes" list-notes (defaults)
"Read my note about X" read-note name: "X"
"Save this in my work notes" create-note Match closest account/folder from list-folders

Example prompts

"Note down the API key format: prefix_xxxx"

echo '{"title":"API key format","body":"Format: prefix_xxxx"}' | "$SKILL_DIR/scripts/notes.sh" create-note

"Show my recent notes"

echo '{}' | "$SKILL_DIR/scripts/notes.sh" list-notes

"What did I write about passwords?"

echo '{"query":"password"}' | "$SKILL_DIR/scripts/notes.sh" search-notes

"Read my note about Hinge"

echo '{"name":"Hinge"}' | "$SKILL_DIR/scripts/notes.sh" read-note

"Create a meeting summary in my iCloud notes"

"$SKILL_DIR/scripts/notes.sh" list-folders

Then:

echo '{"title":"Meeting summary — 2026-02-17","body":"Discussed roadmap.\
- Q1: launch MVP\
- Q2: iterate","account":"iCloud","folder":"Notes"}' | "$SKILL_DIR/scripts/notes.sh" create-note

Critical rules

  1. Always list folders first if the user hasn't specified an account/folder — folder names are reused across accounts
  2. Specify both account and folder when targeting a specific location — folder: "Notes" alone is ambiguous
  3. Password-protected notes are skipped — the script cannot read or modify them
  4. Pass JSON via stdin — never as a CLI argument (avoids leaking data in process list)
  5. All fields are validated by the script (type coercion, range checks) — invalid input is rejected with an error
  6. All actions are logged to logs/notes.log with timestamp, command, and note title
  7. Body uses plain text — newlines in body are converted to \x3Cbr> automatically; use html for rich formatting
  8. Note title = first line — Notes.app treats the first line of the body as the note name
Usage Guidance
This skill runs locally on macOS and uses AppleScript (osascript) and python3 — you will likely be prompted to allow automation/accessibility when it first calls Notes.app. It writes an append-only log (logs/notes.log) containing timestamps, commands and note titles in the skill directory; avoid storing secrets in note titles or bodies if you don't want them retained in that log (or edit the script to stop logging). No network calls or extra credentials are requested, but review the script if you want to verify exact behavior or remove logging before use.
Capability Analysis
Type: OpenClaw Skill Name: macos-notes Version: 1.0.0 The OpenClaw AgentSkill 'macos-notes' is benign. It provides legitimate functionality for managing macOS Notes via AppleScript and demonstrates strong security practices. The `SKILL.md` explicitly instructs the agent to pass JSON via stdin (avoiding process list leakage) and notes that all fields are validated and actions logged. The `scripts/notes.sh` script implements these best practices, featuring robust input validation (type, length, range checks) in Python, HTML escaping for note titles, and safe argument passing to `osascript` to prevent shell injection. All operations are logged to `logs/notes.log`, and password-protected notes are explicitly skipped, respecting user privacy. There is no evidence of malicious intent, data exfiltration, or significant vulnerabilities.
Capability Assessment
Purpose & Capability
Name/description (manage macOS Notes via AppleScript) match what the files and SKILL.md do. Required binaries (osascript, python3) are appropriate and nothing unrelated (no cloud creds, no foreign services) is requested.
Instruction Scope
Runtime instructions only call the bundled script which uses AppleScript to read/create/search notes. All actions are local. Important: the skill logs actions (timestamp, command, note title) to logs/notes.log in the skill directory, which may persist sensitive titles or metadata — the README does disclose this. The script also launches Notes.app if not running and will require macOS automation permissions.
Install Mechanism
No install spec (instruction-only) and only local script files are included. Nothing is downloaded or extracted from external URLs, so install risk is low.
Credentials
No environment variables or credentials are required. Use of SKILL_DIR to locate logs/scripts is expected; the script does not attempt to read unrelated config or secrets.
Persistence & Privilege
always:false and user-invocable:true (normal). The skill does not request persistent system-wide privileges or modify other skills. It writes an append-only local log under the skill directory (expected behavior).
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install macos-notes
  3. After installation, invoke the skill by name or use /macos-notes
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release of macos-notes (v1.0.0): - Create, read, search, and list macOS Notes via AppleScript and shell scripts. - Supports specifying note title, body (plain text or HTML), account, and folder. - Lists folders to identify accounts and folder names before creating or searching notes. - Handles user requests like creating notes, searching, and listing notes using simple JSON input over stdin. - Notes are stored as HTML internally; script ensures plaintext output when reading. - Password-protected notes are skipped and cannot be read or modified. - Actions are logged with command details and timestamps.
Metadata
Slug macos-notes
Version 1.0.0
License
All-time Installs 2
Active Installs 2
Total Versions 1
Frequently Asked Questions

What is macOS Notes?

Create, read, search, and manage macOS Notes via AppleScript. Use when the user asks to take a note, jot something down, save an idea, create meeting notes,... It is an AI Agent Skill for Claude Code / OpenClaw, with 772 downloads so far.

How do I install macOS Notes?

Run "/install macos-notes" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is macOS Notes free?

Yes, macOS Notes is completely free (open-source). You can download, install and use it at no cost.

Which platforms does macOS Notes support?

macOS Notes is cross-platform and runs anywhere OpenClaw / Claude Code is available (macos).

Who created macOS Notes?

It is built and maintained by Luca (@lucaperret); the current version is v1.0.0.

💬 Comments