Skip to content

macos-pimp

Active router for ALL macOS automation requests — classifies and routes to the correct macos-* skill before any response. Use when anything involves macOS desktop automation, AppleScript, Peekaboo, GUI control, window management, or AI desktop agents.

ModelSource
sonnetpack: macos-automation
Full Reference If the request involves macOS automation in ANY way — GUI scripting, AppleScript, JXA, Peekaboo, screen capture, clicking, typing, window management, menu interaction, app control, MCP server for desktop automation, AI desktop agents, osascript, or anything else macOS-automation-related — you MUST route through this skill FIRST.

This is not optional. This is not negotiable. You cannot skip this.

The orchestration layer for all macOS desktop automation. Not documentation — an active router. Every macOS automation request flows through this routing table before any response.

Mandatory Announcement — FIRST OUTPUT before anything else:

┏━ 🖥 macos-pimp ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ [one-line description of what request/routing] ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

No exceptions. Box frame first, then route.

The macos-automation pack covers three layers of desktop automation: script execution (AppleScript/JXA), GUI automation (Peekaboo), and AI agent orchestration. 7 skills total — 3 reference skills with deep docs, 2 workflow/utility skills, 1 creative skill, plus this router.

Classify the request. Invoke the matching skill. No response before invocation.

Request PatternSkill
Screenshot, screen capture, see UI elements, list apps/windowspeekaboo
Click, type, press keys, scroll, swipe, drag, move cursor, pastepeekaboo
Window management, app launch/quit, menu click, dock, dialog, Spacespeekaboo
Peekaboo MCP server, tool filtering, bridge, daemonpeekaboo
Peekaboo install, permissions, config, providerspeekaboo
Run AppleScript/JXA via MCP, execute KB script by ID, script searchmacos-automator
Search scripting knowledge base, browse 492 tips, find scriptsmacos-automator
Placeholder substitution, parameterized scripts, MCP_INPUTmacos-automator
macos-automator-mcp install, Claude Desktop config for scriptsmacos-automator
AppleScript syntax, tell blocks, handlers, variables, error handlingapplescript-reference
JXA syntax, ObjC bridge, $.NS* classes, JavaScript for Automationapplescript-reference
App dictionary patterns — automate Safari, Chrome, Mail, Calendar, etc.applescript-reference
applescript-mcp raw bridge, osascript pass-through, SSH remoteapplescript-reference
Generate AppleScript/JXA from description, validate script, test scriptapplescript-forge
Multi-step automation workflow, compose tools, .peekaboo.json scriptsmacos-workflow
See→Act→Verify loop, automation pipeline, error recovery patternsmacos-workflow
Build AI desktop agent, configure agent model, tool chain setupmacos-agent-builder
MCP config export for agents, safety/guardrails, agent patternsmacos-agent-builder
Compare automation tools, “which tool for this?”, general macOS helpmacos-automation-expert agent

Three layers, each with distinct strengths:

LayerToolBest For
Scriptmacos-automator / applescript-mcpApp-specific automation via dictionaries, data extraction, system config
GUIPeekabooVisual interaction, clicking buttons, reading UI state, screenshots
AgentPeekaboo agent modeNL-driven tasks, multi-step with verification, unknown UI layouts

Decision flow:

  1. Can the app be scripted? (has AppleScript dictionary) → Script layer
  2. Need to interact with UI elements visually? → GUI layer (Peekaboo)
  3. Unknown UI, need to explore and decide? → Agent layer
  4. Multi-step combining script + GUI? → macos-workflow (composes both)

Before routing, check what’s available:

CheckCommandResult
Peekaboo installed?which peekabooIf missing, suggest install before GUI tasks
Permissions granted?peekaboo list permissionsAccessibility + Screen Recording needed
macos-automator available?npx -y @steipete/macos-automator-mcp@latest --helpFor script execution tasks
macOS version?sw_vers -productVersionPeekaboo requires macOS 15.0+
Architecture?uname -mPeekaboo requires arm64 (Apple Silicon)
StateAction
Peekaboo missing, GUI task requestedRoute to peekaboo setup.md first
Permissions missingGuide permission grant before proceeding
Intel Mac + GUI taskFall back to Script layer (Peekaboo arm64-only)
Everything availableRoute directly to target skill
  • If request spans multiple layers, invoke the PRIMARY skill first (closest to the core question)
  • “Automate this app” without specifics → check if app has AppleScript dictionary first
  • “Click this button” → always Peekaboo, never script layer
  • “Get data from this app” → script layer first (faster, more reliable), GUI fallback
  • “Build an agent for X” → macos-agent-builder first, it chains to tool skills
User SaysChain
”Automate sending emails in Mail”applescript-reference (app-dictionaries.md) → applescript-forge
”Click the Save button in Photoshop”peekaboo (interaction.md)
“Build a workflow to export Safari tabs to a spreadsheet”macos-workflowpeekaboo + applescript-reference
”Create an AI agent that fills out forms”macos-agent-builderpeekaboo (agent.md)
“Write a script to resize all Finder windows”applescript-forgeapplescript-reference (app-dictionaries.md)
“Set up desktop automation for my project”Route to peekaboo setup.md + macos-automator setup.md

Priority Order (when multiple skills apply)

Section titled “Priority Order (when multiple skills apply)”
  1. macos-workflow — if multi-step, composing tools
  2. peekaboo — if GUI interaction needed
  3. macos-automator — if running scripts via MCP
  4. applescript-reference — if writing/understanding scripts
  5. applescript-forge — if generating scripts
  6. macos-agent-builder — if building agent configs
  • General coding (even on macOS) → shepherd handles
  • iOS/iPadOS automation → not macOS desktop
  • Terminal/shell scripting without GUI/AppleScript → not macOS automation
  • Homebrew package management → not macOS automation
  • Never respond about macOS automation before invoking the target skill
  • No summarizing, planning to invoke, or explaining what you’re about to do
  • If two skills apply, invoke the FIRST one — it chains to the next
  • If unclear, ask ONE clarifying question, then route
  • The skill’s content has the verified facts — always defer to it
  • ALWAYS check State Detection before routing GUI tasks