Auto-sync: 2026-02-13 13:26:50

This commit is contained in:
Adolfo Reyna
2026-02-13 13:26:50 -05:00
parent 96536f3c86
commit c85db868fd
3 changed files with 77 additions and 0 deletions

View File

@@ -0,0 +1,12 @@
# macOS Notes
Description: Manage Apple Notes via AppleScript.
## Tools
### list
Description: List recent notes or search by title.
Command: osascript skills/macos-notes/list_notes.scpt "{{query}}"
### add
Description: Create a new note or append to an existing one.
Command: osascript skills/macos-notes/add_note.scpt "{{title}}" "{{body}}"

View File

@@ -0,0 +1,33 @@
#!/usr/bin/osascript
on run argv
if (count of argv) < 2 then
return "Usage: add_note.scpt <title> <body>"
end if
set noteTitle to item 1 of argv
set noteBody to item 2 of argv
-- Apple Notes expects HTML for the body.
-- We'll wrap the body in minimal HTML.
set htmlBody to "<div>" & noteBody & "</div>"
-- Replace newlines with <br>
set htmlBody to do shell script "echo " & quoted form of htmlBody & " | sed 's/$/<br>/'"
tell application "Notes"
tell default account
-- Check if note exists to append, or create new
set existingNotes to (notes whose name is noteTitle)
if (count of existingNotes) > 0 then
set currentNote to item 1 of existingNotes
set currentBody to body of currentNote
-- Append to existing body
set body of currentNote to currentBody & "<br>" & htmlBody
return "Appended to note: " & noteTitle
else
make new note with properties {name:noteTitle, body:htmlBody}
return "Created new note: " & noteTitle
end if
end tell
end tell
end run

View File

@@ -0,0 +1,32 @@
#!/usr/bin/osascript
on run argv
set searchObj to ""
if (count of argv) > 0 then
set searchObj to item 1 of argv
end if
tell application "Notes"
if searchObj is "" then
set foundNotes to notes of default account
-- limiting to top 10 recent
set noteCount to count of foundNotes
if noteCount > 10 then set noteCount to 10
set subNotes to items 1 thru noteCount of foundNotes
else
set subNotes to (notes of default account whose name contains searchObj)
end if
set output to ""
repeat with aNote in subNotes
set nName to name of aNote
set nBody to body of aNote -- This is HTML
set nModDate to modification date of aNote
-- Simple HTML cleanup for readability (very basic)
set nBodyClean to do shell script "echo " & quoted form of nBody & " | sed -e 's/<[^>]*>//g'"
set output to output & "Note: " & nName & "\nModified: " & nModDate & "\nBody: " & nBodyClean & "\n---\n"
end repeat
return output
end tell
end run