From claw-skills
macOS UI automation CLI tool for screen capture, window control, element clicking, text input, and more. Use when users need macOS desktop automation, UI testing, screen capture, window management, or app control.
How this skill is triggered — by the user, by Claude, or both
Slash command
/claw-skills:peekaboo-cliThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
macOS UI automation command-line tool providing complete desktop control capabilities.
references/agent.mdreferences/app.mdreferences/bridge.mdreferences/capture.mdreferences/clean.mdreferences/click.mdreferences/clipboard.mdreferences/config.mdreferences/daemon.mdreferences/dialog.mdreferences/dock.mdreferences/drag.mdreferences/hotkey.mdreferences/image.mdreferences/learn.mdreferences/list.mdreferences/mcp-capture-meta.mdreferences/mcp.mdreferences/menu.mdreferences/menubar.mdmacOS UI automation command-line tool providing complete desktop control capabilities.
Copy this skill to your agent's skills directory:
# Claude Code
mkdir -p ~/.claude/skills/peekaboo-cli
cp -r . ~/.claude/skills/peekaboo-cli/
# OpenClaw
mkdir -p ~/.openclaw/skills/peekaboo-cli
cp -r . ~/.openclaw/skills/peekaboo-cli/
brew install steipete/tap/peekaboo)Before executing any CLI commands, verify permission status first.
peekaboo permissions status
If permissions are not granted, guide the user to enable them:
Peekaboo requires the following macOS permissions:
- Screen Recording: For capturing UI screenshots
- Accessibility: For controlling UI elements
System Settings → Privacy & Security → Screen Recording/Accessibility → Add Terminal app
Then verify:
peekaboo permissions grant
peekaboo list apps
# List running applications
peekaboo list apps
# Capture current window UI with element annotations
peekaboo see --annotate --path /tmp/ui.png
# Click specific element (ID from see command)
peekaboo click --on elem_42
# Type text
peekaboo type "Hello World" --return
# Capture UI element map (recommended before click/type)
peekaboo see --json --annotate --path /tmp/ui.png
# Target specific app/window
peekaboo see --app "Safari" --window-title "GitHub"
# Capture menubar popovers
peekaboo see --menubar
# Capture entire screen
peekaboo see --mode screen
# Click element by ID
peekaboo click --on elem_42
peekaboo click "Submit" --wait-for 8000
# Coordinate-based click
peekaboo click --coords 100,200
# Double-click / Right-click
peekaboo click --on elem_42 --double
peekaboo click --coords 100,200 --right
# Type text
peekaboo type "[email protected]" --return
peekaboo type --clear "new text" # Clear field first
# Key presses and hotkeys
peekaboo press return
peekaboo hotkey "cmd,w" # Cmd+W
# Launch app
peekaboo app launch "Safari"
peekaboo app launch "Xcode" --open ~/Projects/MyApp.xcodeproj
# Quit app
peekaboo app quit --app "Safari"
peekaboo app quit --all --except "Finder,Terminal"
# Switch focus
peekaboo app switch --to Safari --verify
# List windows
peekaboo list windows --app "Safari" --include-details bounds,ids
# Move/Resize window
peekaboo window move --app Safari -x 100 -y 100
peekaboo window resize --app Safari -w 1200 --height 800
# Focus/Close/Minimize/Maximize
peekaboo window focus --app Terminal --space-switch
peekaboo window close --app Safari
# Click menu item
peekaboo menu click --app Safari --path "File,New Tab"
# List menubar status items
peekaboo list menubar
# Scroll
peekaboo scroll --direction down --amount 3
# Drag
peekaboo drag --from 100,100 --to 300,300
# Move mouse
peekaboo move --coords 500,500
# 1. Capture UI to get element IDs
peekaboo see --json --annotate --path /tmp/form.png
# 2. Click input field and type
peekaboo click --on elem_10
peekaboo type "username" --tab
peekaboo type "password" --return
# 1. Launch app
peekaboo app launch "Safari" --wait-until-ready
# 2. Wait and perform actions
peekaboo sleep 2
peekaboo hotkey "cmd,l" # Focus address bar
peekaboo type "https://github.com" --return
Most commands support --json output:
peekaboo see --json | jq '.data.ui_elements[] | {id, label, role}'
peekaboo list apps --json | jq '.data[] | select(.frontmost == true)'
peekaboo permissions status
peekaboo permissions grant
peekaboo see --json--wait-for to increase wait time--coords for coordinate-based targeting--space-switch for cross-Space windowspeekaboo app switch --to <app> --verify to confirm focus--no-auto-focus when already focused manuallynpx claudepluginhub terryso/claw-skills --plugin claw-skillsControls macOS GUI applications via mouse automation, keyboard input, screenshots, image recognition, and AppleScript execution.
Drives native-UI AX-tree snapshots and screenshots on macOS 15+ via steipete/peekaboo. Dispatched by test-runner to capture deterministic JSON output.
Captures screenshots and videos of running macOS app windows via osascript, screencapture, and ffmpeg for UI verification, mockups, and visual comparisons in agent workflows.