
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)
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
What peekaboo says it does
Peekaboo is a full macOS UI automation CLI: capture/inspect screens, target UI elements, drive input
Requires Screen Recording + Accessibility permissions
npx skills add https://github.com/steipete/clawdis --skill peekabooAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 3.8k |
|---|---|
| repo stars | ★ 385k |
| Security audit | 2 / 3 scanners passed |
| Last updated | August 3, 2026 |
| Repository | steipete/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
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 connectivitycapture: live capture or video ingest + frame extractionclean: prune snapshot cache and temp filesconfig: init/show/edit/validate, providers, models, credentialsimage: capture screenshots (screen/window/menu bar regions)learn: print the full agent guide + tool cataloglist: apps, windows, screens, menubar, permissionspermissions: check Screen Recording/Accessibility statusrun: execute.peekaboo.jsonscriptssleep: pause execution for a durationtools: list available tools with filtering/display options
Interaction
click: target by ID/query/coords with smart waitsdrag: drag & drop across elements/coords/Dockhotkey: modifier combos likecmd,shift,tmove: cursor positioning with optional smoothingpaste: set clipboard -> paste -> restorepress: special-key sequences with repeatsscroll: directional scrolling (targeted + smooth)swipe: gesture-style drags between targetstype: text + control keys (--clear, delays)
System
app: launch/quit/relaunch/hide/unhide/switch/list appsclipboard: read/write clipboard (text/images/files)dialog: click/input/file/dismiss/list system dialogsdock: launch/right-click/hide/show/list Dock itemsmenu: click/list application menus + menu extrasmenubar: list/click status bar itemsopen: enhancedopenwith app targeting + JSON payloadsspace: list/switch/move-window (Spaces)visualizer: exercise Peekaboo visual feedback animationswindow: 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" --returnCommon targeting parameters (most interaction commands)
- App/window:
--app,--pid,--window-title,--window-id,--window-index - Snapshot targeting:
--snapshot(ID fromsee; 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 --returnTarget 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 12345Capture 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/captureApp + 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 SafariMenus, 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 --jsonMouse + 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 --smoothKeyboard input
peekaboo hotkey --keys "cmd,shift,t"
peekaboo press escape
peekaboo type "Line 1\nLine 2" --delay 10Notes
- Requires Screen Recording + Accessibility permissions.
- In OpenClaw subprocesses, set
PEEKABOO_BRIDGE_SOCKETas 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 --annotateto 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.