macos-automation

This skill automates tasks on macOS using tools like AppleScript, JXA, Shortcuts, Automator, osascript, System Events, and the accessibility API, enabling script-based control of apps and system functions.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "macos-automation" with this command: npx skills add alphaonedev/openclaw-graph/alphaonedev-openclaw-graph-macos-automation

macos-automation

Purpose

This skill automates tasks on macOS using tools like AppleScript, JXA, Shortcuts, Automator, osascript, System Events, and the accessibility API, enabling script-based control of apps and system functions.

When to Use

  • Automate repetitive workflows, such as file management or app interactions.

  • Integrate with macOS apps for custom behaviors, like triggering actions via keyboard shortcuts.

  • Script complex sequences involving multiple apps, e.g., when Shortcuts alone isn't sufficient.

  • Handle accessibility tasks, like UI element manipulation, when apps don't expose direct APIs.

  • Use for rapid prototyping of automations in environments like shell scripts or IDEs.

Key Capabilities

  • Execute AppleScript via osascript for app control, e.g., manipulating Finder or Safari.

  • Run JXA (JavaScript for Automation) to interact with macOS APIs, supporting modern JavaScript syntax.

  • Create and invoke Shortcuts programmatically for quick actions, like sharing files.

  • Use Automator workflows as scripts, convertible to applications or services.

  • Leverage System Events for UI automation, including keyboard/mouse simulation via accessibility API.

  • Access macOS-specific APIs like NSAppleScript for embedding in Objective-C/Swift code.

Usage Patterns

  • Run scripts from the command line using osascript; for example, pipe AppleScript code directly.

  • Embed JXA in Node.js environments by loading the JXA module and executing via Application('Finder').activate() .

  • Chain Shortcuts with other tools by exporting as URLs and invoking via open command.

  • Use Automator to build workflows, then save as .applescript files for osascript execution.

  • For accessibility, ensure "Accessibility" is enabled in System Preferences > Security & Privacy, then use System Events to target UI elements like tell application "System Events" to click button "OK" of window "Main" .

  • Always check for required permissions, such as Full Disk Access, before running scripts that access files.

Common Commands/API

  • osascript CLI: Use osascript -e 'tell application "Finder" to make new folder at desktop' to create a folder; handle errors by checking the exit code.

  • JXA Example: In a JavaScript file, use const app = Application('Safari'); app.activate(); app.documents[0].url = 'https://example.com'; to open and navigate a URL.

  • Shortcuts Integration: Run a shortcut via shortcuts run "My Shortcut" -i '{"input": "text"}' ; pass inputs as JSON for parameterized execution.

  • Automator API: Convert workflows to AppleScript with tell application "Automator" to run workflow "path/to/workflow" .

  • System Events API: For UI automation, use osascript -e 'tell application "System Events" to keystroke "a" using {command down}' to simulate Command+A.

  • Config Formats: Store scripts in plain text files (.applescript) and invoke with osascript path/to/script.applescript ; for JXA, use ES6 modules in .js files.

Integration Notes

  • Integrate with other tools by wrapping osascript calls in shell scripts; e.g., use $ export APPLESCRIPT_PATH='/path/to/script' and run via osascript $APPLESCRIPT_PATH .

  • For JXA, require the OSA module in Node.js: npm install osa and use const OSA = require('osa'); OSA.runAppleScript('...') .

  • If accessibility features are needed, set the env var $ACCESSIBILITY_ENABLED=1 after granting permissions in System Preferences.

  • Auth/keys: For scripts accessing protected resources, use env vars like $osascript_API_KEY (though rare); more commonly, handle macOS permissions via tccutil CLI, e.g., tccutil reset AppleEvents com.example.app to reset access.

  • Embed in larger apps by compiling AppleScript into bundles or using JXA in Electron apps for cross-tool integration.

Error Handling

  • Check osascript exit codes: If a script fails, capture with osascript -e 'script' 2>&1 and parse stderr for messages like "Execution error: ...".

  • In JXA, wrap code in try-catch: try { Application('Finder').activate(); } catch (e) { console.error(e.message); } to handle app not found errors.

  • For Shortcuts, verify with shortcuts run "Name" --wait-for-result and check output for failures.

  • Use Automator's built-in logging by enabling in workflow settings, then review logs via Console app.

  • General pattern: Always run scripts with elevated privileges if needed, e.g., via sudo osascript -e '...' , and handle permission errors by prompting users to adjust settings.

Concrete Usage Examples

  • Automate App Launch and Action: Use osascript to open Safari and load a page: osascript -e 'tell application "Safari" to open location "https://example.com"' followed by 'tell application "Safari" to activate' . This is useful for daily workflows; extend by adding error checks.

  • UI Automation with Shortcuts: Create a Shortcut to resize windows, then invoke via CLI: shortcuts run "Resize Window" -i '{"app": "Finder", "width": 800}' . Combine with JXA for dynamic inputs, e.g., in a script: Application('Shortcuts').run('Resize Window', {input: JSON.stringify({app: 'Finder'})}) .

Graph Relationships

  • Related to: macos cluster (direct parent), applescript skill (sub-skill for scripting), shortcuts skill (integrated tool), automation cluster (broader category).

  • Dependencies: Requires macos-os (base system), interacts with accessibility-api skill for UI tasks.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

playwright-scraper

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

clawflows

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

tavily-web-search

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

humanize-ai-text

No summary provided by upstream source.

Repository SourceNeeds Review