peekaboo
Capture and automate macOS UI with the Peekaboo CLI.
DeepseekModel
Curated skill
Quality Excellent · 90
v1.0.0
Get
https://deepseekmodel.com/api/download.php?id=openclaw-openclaw-skills-peekaboo-skill-md&format=skill
Download .skill
Standard format with system_prompt and model_config, ready for any agent framework
The actual content of the system_prompt field in the .skill file.
name peekaboo description Capture and automate macOS UI with the Peekaboo CLI. homepage https://peekaboo.boo metadata {"openclaw":{"emoji":"👀","os":["darwin"],"requires":{"bins":"[Truncated]"},"install":["[Truncated]"]}} 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.
Keywords that activate this skill. Click one to copy it.
This skill does not provide trigger words.
The downloaded .skill package contains the following fields.
| Field | Description |
|---|---|
| format | Format tag (skill/v1) |
| skill_id | Unique skill ID |
| name | Skill name |
| version | Version |
| description | Description |
| category | Categories (array) |
| trigger_words | Trigger words |
| tags | Tags |
| source | Source |
| source_url | Source URL (this page) |
| exported_at | Exported at (set per download) |
| system_prompt | System prompt body |
| model_config | Model config: provider / model / temperature / max_tokens / top_p |
| examples | Examples |
| install_guide | Import guide for Coze / Dify / Claude / custom frameworks |
The same skill can be exported in different platform formats.