mcpField
M
macos-automation

macos-automation

github.com/alphaonedevProductivity274 installs
Repository

About macos-automation

macos-automation is a skill for scripting macOS apps and system functions, aimed at people automating repetitive or multi-app tasks. It brings together AppleScript, JXA, Shortcuts, Automator, and accessibility-based UI control.

Key features

  1. 01Control apps with AppleScript and osascript
  2. 02Automate macOS APIs with JXA
  3. 03Create and run Shortcuts programmatically
  4. 04Run Automator workflows as scripts
  5. 05Control interface elements with System Events

Use cases

  1. 01Automate repetitive file management
  2. 02Trigger app actions with keyboard shortcuts
  3. 03Coordinate sequences across multiple apps
  4. 04Control interface elements when direct APIs are unavailable

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill macos-automation

After installing, type/macos-automationin Claude Code to confirm it loaded.

Details

From the project README

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

  1. 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.
  2. 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.

Comments

Markdown supported