界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
效率与协作 · SKILL.md

apple-notes-install-auth

apple-notes-install-auth

【效率与协作】Set up macOS automation access for Apple Notes via AppleScript, JXA, and Shortcuts. Use when configuring accessibility permissions, setting up osascript access, or initializing Apple Notes automation on macOS. Trigger: "setup apple notes", "apple notes automation", "apple notes permissions".

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: apple-notes-install-auth description: 'Set up macOS automation access for Apple Notes via AppleScript, JXA, and Shortcuts.

Use when configuring accessibility permissions, setting up osascript access,

or initializing Apple Notes automation on macOS.

Trigger: "setup apple notes", "apple notes automation", "apple notes permissions".

' allowed-tools: Read, Write, Edit, Bash(osascript:), Bash(defaults:), Grep version: 1.6.0 license: MIT author: Jeremy Longshore jeremy@intentsolutions.io tags:

  • saas
  • macos
  • apple-notes
  • automation
  • applescript compatibility: Designed for Claude Code

Apple Notes Install & Auth

Overview

Apple Notes has no REST API. Automation uses macOS scripting technologies: AppleScript, JavaScript for Automation (JXA), Shortcuts, and the osascript command-line tool. No SDK to install — but you need macOS accessibility permissions.

Prerequisites

  • macOS 13+ (Ventura or later recommended)
  • Terminal app or iTerm2
  • System Preferences > Privacy & Security > Automation permissions

Instructions

Step 1: Grant Automation Permissions

# macOS requires explicit permission for scripts to control Notes.app
# The first time you run an osascript command targeting Notes, macOS will prompt.
# You can also pre-grant in: System Preferences > Privacy & Security > Automation

# Test basic Notes access (will trigger permission prompt)
osascript -e 'tell application "Notes" to get name of every note in default account'

Step 2: Verify JXA (JavaScript for Automation) Access

# JXA is the modern alternative to AppleScript
# Run JavaScript via osascript with -l JavaScript flag

osascript -l JavaScript -e '
  const Notes = Application("Notes");
  Notes.includeStandardAdditions = true;
  const noteCount = Notes.defaultAccount.notes.length;
  `Apple Notes accessible: ${noteCount} notes found`;
'

Step 3: Create a Wrapper Script

#!/bin/bash
# scripts/notes-cli.sh — Wrapper for common Apple Notes operations

case "$1" in
  count)
    osascript -l JavaScript -e '
      const Notes = Application("Notes");
      Notes.defaultAccount.notes.length;
    '
    ;;
  list)
    osascript -l JavaScript -e '
      const Notes = Application("Notes");
      const notes = Notes.defaultAccount.notes();
      notes.slice(0, 20).map(n => `${n.id()} | ${n.name()}`).join("\n");
    '
    ;;
  folders)
    osascript -l JavaScript -e '
      const Notes = Application("Notes");
      Notes.defaultAccount.folders().map(f => f.name()).join("\n");
    '
    ;;
  *)
    echo "Usage: notes-cli.sh {count|list|folders}"
    ;;
esac

Step 4: Verify Shortcuts Integration

# Apple Shortcuts can also interact with Notes
# Check available shortcuts
shortcuts list | grep -i note

# Run a shortcut that creates a note
shortcuts run "Create Note" --input-path /dev/stdin <<< "Test content"

Automation Technologies

TechnologyLanguageBest ForDocs
AppleScriptAppleScriptSimple operationsApple Scripting Guide
JXAJavaScriptComplex logic, JSON handlingApple JXA Reference
osascriptCLI wrapperScripts, CI/CDman osascript
ShortcutsVisualNon-developer workflowsShortcuts app
PyXAPythonPython automationpyxa.dev

Output

  • A recorded consent decision for the exact invoking app and macOS user
  • A read-only, scoped authorization result (not a complete note listing)
  • A wrapper that exposes only the approved operations and fails on unknown input
  • An explicit decision on whether any Shortcuts workflow is approved

Examples

For a first-time setup, run one read-only count against the intended account and accept the macOS prompt in the interactive session. Do not use the list wrapper against a production account unless the task specifically requires metadata discovery; it can expose titles in terminal history and CI logs. For Shortcuts, use a non-production shortcut and a test note rather than a workflow that creates notes in a default account.

Error Handling

ErrorCauseSolution
Not authorized to send Apple eventsMissing automation permissionGrant in System Preferences > Privacy > Automation
Notes got an error: AppleEvent timed outNotes.app not runningLaunch Notes first or add activate
-1743 errAEAppNotAllowedDenied by TCCReset TCC: tccutil reset AppleEvents
execution error: Notes is not runningNotes.app closedAdd tell app "Notes" to activate

Resources

Next Steps

Proceed to apple-notes-hello-world for your first note creation.

我的收藏