Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
steipete avatar

Peekaboo

  • 3.8k installs
  • 385k repo stars
  • Updated August 3, 2026
  • steipete/clawdis

peekaboo is a macOS CLI skill for UI automation including screenshots, element inspection, clicks, typing, and app or window control with OpenClaw Bridge support.

About

Peekaboo is a macOS UI automation CLI that captures screens, inspects UI elements, drives input, and manages apps, windows, and menus with JSON scriptable output. Commands span bridge connectivity, capture and image screenshots, see for annotated UI maps with snapshot IDs, click, drag, type, scroll, swipe, hotkey, and press interactions, plus app launch, window focus, dock, menu, menubar, dialog, clipboard, and space management. Global flags include --json, --verbose, --bridge-socket, and --no-remote for routing through OpenClaw Bridge so subprocesses reuse Screen Recording and Accessibility grants from the host app socket at ~/Library/Application Support/OpenClaw/bridge.sock. The recommended flow runs peekaboo see --annotate to identify element IDs, then click --on and type with app or window targeting parameters. Capture supports retina screenshots, live region recording with motion-aware FPS, and optional analyze prompts on images. Installation is via brew formula steipete/tap/peekaboo and requires Screen Recording plus Accessibility permissions; macOS 15 adds a separate private window picker grant. The skill excludes agent and MCP features and documents diagnose steps when Bri.

  • Full macOS UI automation CLI with see-annotate-click-type workflow and JSON output.
  • OpenClaw Bridge socket lets subprocesses reuse host Screen Recording and Accessibility grants.
  • Covers apps, windows, menus, dock, dialogs, clipboard, spaces, and vision analyze capture.
  • Targeting supports snapshot IDs, element queries, window-title, pid, and coordinate clicks.
  • Requires macOS permissions; diagnose with bridge status and permissions status JSON checks.

Peekaboo by the numbers

  • 3,847 all-time installs (skills.sh)
  • +163 installs in the week ending Aug 2, 2026 (Skillselion tracking)
  • Ranked #50 of 550 CLI & Terminal skills by installs in the Skillselion catalog
  • Security screen: HIGH risk (skills.sh audit)
  • Data as of Aug 3, 2026 (Skillselion catalog sync)
At a glance

peekaboo capabilities & compatibility

Capabilities
annotated ui maps with snapshot ids via peekaboo · click, type, scroll, drag, hotkey, and gesture i · screenshot and live region capture with optional · app, window, menu, dock, and dialog management c · openclaw bridge socket routing for permission re
Use cases
testing · orchestration
Platforms
macOS
From the docs

What peekaboo says it does

Peekaboo is a full macOS UI automation CLI: capture/inspect screens, target UI elements, drive input
SKILL.md
Requires Screen Recording + Accessibility permissions
SKILL.md
npx skills add https://github.com/steipete/clawdis --skill peekaboo

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs3.8k
repo stars385k
Security audit2 / 3 scanners passed
Last updatedAugust 3, 2026
Repositorysteipete/clawdis

How do agents capture and interact with macOS application UI reliably from CLI with JSON output and proper permission routing?

Automate macOS UI with Peekaboo CLI for screenshots, element targeting, clicks, typing, menus, windows, and OpenClaw Bridge screen-recording permissions.

Who is it for?

Developers automating macOS GUI tests or agent-driven UI flows who can install peekaboo and grant Screen Recording access.

Skip if: Skip on Linux or Windows hosts or when you only need headless API testing without native macOS UI access.

When should I use this skill?

User wants macOS UI automation, Peekaboo CLI screenshots, OpenClaw Bridge routing, or see-annotate-click scripting.

What you get

Scriptable peekaboo commands that annotate UI, target elements, drive input, and manage apps or windows with Bridge-backed permissions when needed.

  • annotated UI screenshots
  • JSON command transcripts
  • automated UI interaction scripts

Files

SKILL.mdMarkdownGitHub ↗

Peekaboo

Peekaboo is a full macOS UI automation CLI: capture/inspect screens, target UI elements, drive input, and manage apps/windows/menus. Commands share a snapshot cache and support --json/-j for scripting. Run peekaboo or peekaboo <cmd> --help for flags; peekaboo --version prints build metadata. Tip: run via polter peekaboo to ensure fresh builds.

OpenClaw Bridge

The OpenClaw macOS app hosts Peekaboo Bridge at ~/Library/Application Support/OpenClaw/bridge.sock. Before running Peekaboo from OpenClaw, select that socket so the CLI uses the app's Screen Recording and Accessibility grants instead of starting its standalone daemon:

export PEEKABOO_BRIDGE_SOCKET="${PEEKABOO_BRIDGE_SOCKET:-$HOME/Library/Application Support/OpenClaw/bridge.sock}"

Confirm routing with peekaboo bridge status --json; hostKind must be gui and the socket path must end in OpenClaw/bridge.sock.

Features (all CLI capabilities, excluding agent/MCP)

Core

  • bridge: inspect Peekaboo Bridge host connectivity
  • capture: live capture or video ingest + frame extraction
  • clean: prune snapshot cache and temp files
  • config: init/show/edit/validate, providers, models, credentials
  • image: capture screenshots (screen/window/menu bar regions)
  • learn: print the full agent guide + tool catalog
  • list: apps, windows, screens, menubar, permissions
  • permissions: check Screen Recording/Accessibility status
  • run: execute .peekaboo.json scripts
  • sleep: pause execution for a duration
  • tools: list available tools with filtering/display options

Interaction

  • click: target by ID/query/coords with smart waits
  • drag: drag & drop across elements/coords/Dock
  • hotkey: modifier combos like cmd,shift,t
  • move: cursor positioning with optional smoothing
  • paste: set clipboard -> paste -> restore
  • press: special-key sequences with repeats
  • scroll: directional scrolling (targeted + smooth)
  • swipe: gesture-style drags between targets
  • type: text + control keys (--clear, delays)

System

  • app: launch/quit/relaunch/hide/unhide/switch/list apps
  • clipboard: read/write clipboard (text/images/files)
  • dialog: click/input/file/dismiss/list system dialogs
  • dock: launch/right-click/hide/show/list Dock items
  • menu: click/list application menus + menu extras
  • menubar: list/click status bar items
  • open: enhanced open with app targeting + JSON payloads
  • space: list/switch/move-window (Spaces)
  • visualizer: exercise Peekaboo visual feedback animations
  • window: close/minimize/maximize/move/resize/focus/list

Vision

  • see: annotated UI maps, snapshot IDs, optional analysis

Global runtime flags

  • --json/-j, --verbose/-v, --log-level <level>
  • --no-remote, --bridge-socket <path>

Quickstart (happy path)

peekaboo permissions
peekaboo list apps --json
peekaboo see --annotate --path /tmp/peekaboo-see.png
peekaboo click --on B1
peekaboo type "Hello" --return

Common targeting parameters (most interaction commands)

  • App/window: --app, --pid, --window-title, --window-id, --window-index
  • Snapshot targeting: --snapshot (ID from see; defaults to latest)
  • Element/coords: --on/--id (element ID), --coords x,y
  • Focus control: --no-auto-focus, --space-switch, --bring-to-current-space,

--focus-timeout-seconds, --focus-retry-count

Common capture parameters

  • Output: --path, --format png|jpg, --retina
  • Targeting: --mode screen|window|frontmost, --screen-index,

--window-title, --window-id

  • Analysis: --analyze "prompt", --annotate
  • Capture engine: --capture-engine auto|classic|cg|modern|sckit

Common motion/typing parameters

  • Timing: --duration (drag/swipe), --steps, --delay (type/scroll/press)
  • Human-ish movement: --profile human|linear, --wpm (typing)
  • Scroll: --direction up|down|left|right, --amount <ticks>, --smooth

Examples

See -> click -> type (most reliable flow)

peekaboo see --app Safari --window-title "Login" --annotate --path /tmp/see.png
peekaboo click --on B3 --app Safari
peekaboo type "user@example.com" --app Safari
peekaboo press tab --count 1 --app Safari
peekaboo type "supersecret" --app Safari --return

Target by window id

peekaboo list windows --app "Visual Studio Code" --json
peekaboo click --window-id 12345 --coords 120,160
peekaboo type "Hello from Peekaboo" --window-id 12345

Capture screenshots + analyze

peekaboo image --mode screen --screen-index 0 --retina --path /tmp/screen.png
peekaboo image --app Safari --window-title "Dashboard" --analyze "Summarize KPIs"
peekaboo see --mode screen --screen-index 0 --analyze "Summarize the dashboard"

Live capture (motion-aware)

peekaboo capture live --mode region --region 100,100,800,600 --duration 30 \
  --active-fps 8 --idle-fps 2 --highlight-changes --path /tmp/capture

App + window management

peekaboo app launch "Safari" --open https://example.com
peekaboo window focus --app Safari --window-title "Example"
peekaboo window set-bounds --app Safari --x 50 --y 50 --width 1200 --height 800
peekaboo app quit --app Safari

Menus, menubar, dock

peekaboo menu click --app Safari --item "New Window"
peekaboo menu click --app TextEdit --path "Format > Font > Show Fonts"
peekaboo menu click-extra --title "WiFi"
peekaboo dock launch Safari
peekaboo menubar list --json

Mouse + gesture input

peekaboo move 500,300 --smooth
peekaboo drag --from B1 --to T2
peekaboo swipe --from-coords 100,500 --to-coords 100,200 --duration 800
peekaboo scroll --direction down --amount 6 --smooth

Keyboard input

peekaboo hotkey --keys "cmd,shift,t"
peekaboo press escape
peekaboo type "Line 1\nLine 2" --delay 10

Notes

  • Requires Screen Recording + Accessibility permissions.
  • In OpenClaw subprocesses, set PEEKABOO_BRIDGE_SOCKET as shown above. Do not

pass --no-remote unless the calling process has its own Screen Recording grant.

  • Diagnose subprocess capture failures with peekaboo bridge status --json,

then peekaboo permissions status --json, then a normal Bridge-routed capture such as peekaboo image --mode screen --json.

  • On macOS 15+, the "bypass private window picker" prompt is separate from the

base Screen Recording grant; it can appear even when Bridge permissions are otherwise correct.

  • Use peekaboo see --annotate to identify targets before clicking.

Related skills

Forks & variants (2)

Peekaboo has 2 known copies in the catalog totaling 17 installs. They canonicalize to this original listing.

How it compares

Use peekaboo for native macOS desktop UI; use browser automation MCP tools when testing web apps inside Chrome or Safari only.

FAQ

What permissions does Peekaboo require?

Screen Recording and Accessibility permissions; OpenClaw Bridge routes grants when PEEKABOO_BRIDGE_SOCKET is set.

What is the recommended interaction flow?

Run peekaboo see --annotate to get element IDs, then peekaboo click --on and type against the target app or window.

How is it installed?

brew install steipete/tap/peekaboo per the skill metadata install formula.

Is Peekaboo safe to install?

skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

CLI & Terminalintegrationstesting

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.