[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-openclaw-openclaw-skills-peekaboo":3},{"error":4,"detail":5,"metadata":23,"markdownContent":25,"rawMarkdown":20},false,{"repo_full_name":6,"owner":7,"repo_name":7,"repo_forks":8,"skill_path":9,"repo_stars":10,"name":11,"category_id":12,"description":13,"file_tree":14,"skill_md_content":20,"skill_id":21,"skill_key":22},"openclaw/openclaw","openclaw",64359,"skills/peekaboo",330752,"peekaboo",8,"Capture and automate macOS UI with the Peekaboo CLI.",[15],{"name":16,"path":17,"size":18,"type":19},"SKILL.md","skills/peekaboo/SKILL.md",5970,"file","---\nname: peekaboo\ndescription: Capture and automate macOS UI with the Peekaboo CLI.\nhomepage: https://peekaboo.boo\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"👀\",\n        \"os\": [\"darwin\"],\n        \"requires\": { \"bins\": [\"peekaboo\"] },\n        \"install\":\n          [\n            {\n              \"id\": \"brew\",\n              \"kind\": \"brew\",\n              \"formula\": \"steipete/tap/peekaboo\",\n              \"bins\": [\"peekaboo\"],\n              \"label\": \"Install Peekaboo (brew)\",\n            },\n          ],\n      },\n  }\n---\n\n# Peekaboo\n\nPeekaboo is a full macOS UI automation CLI: capture/inspect screens, target UI\nelements, drive input, and manage apps/windows/menus. Commands share a snapshot\ncache and support `--json`/`-j` for scripting. Run `peekaboo` or\n`peekaboo \u003Ccmd> --help` for flags; `peekaboo --version` prints build metadata.\nTip: run via `polter peekaboo` to ensure fresh builds.\n\n## Features (all CLI capabilities, excluding agent/MCP)\n\nCore\n\n- `bridge`: inspect Peekaboo Bridge host connectivity\n- `capture`: live capture or video ingest + frame extraction\n- `clean`: prune snapshot cache and temp files\n- `config`: init/show/edit/validate, providers, models, credentials\n- `image`: capture screenshots (screen/window/menu bar regions)\n- `learn`: print the full agent guide + tool catalog\n- `list`: apps, windows, screens, menubar, permissions\n- `permissions`: check Screen Recording/Accessibility status\n- `run`: execute `.peekaboo.json` scripts\n- `sleep`: pause execution for a duration\n- `tools`: list available tools with filtering/display options\n\nInteraction\n\n- `click`: target by ID/query/coords with smart waits\n- `drag`: drag & drop across elements/coords/Dock\n- `hotkey`: modifier combos like `cmd,shift,t`\n- `move`: cursor positioning with optional smoothing\n- `paste`: set clipboard -> paste -> restore\n- `press`: special-key sequences with repeats\n- `scroll`: directional scrolling (targeted + smooth)\n- `swipe`: gesture-style drags between targets\n- `type`: text + control keys (`--clear`, delays)\n\nSystem\n\n- `app`: launch/quit/relaunch/hide/unhide/switch/list apps\n- `clipboard`: read/write clipboard (text/images/files)\n- `dialog`: click/input/file/dismiss/list system dialogs\n- `dock`: launch/right-click/hide/show/list Dock items\n- `menu`: click/list application menus + menu extras\n- `menubar`: list/click status bar items\n- `open`: enhanced `open` with app targeting + JSON payloads\n- `space`: list/switch/move-window (Spaces)\n- `visualizer`: exercise Peekaboo visual feedback animations\n- `window`: close/minimize/maximize/move/resize/focus/list\n\nVision\n\n- `see`: annotated UI maps, snapshot IDs, optional analysis\n\nGlobal runtime flags\n\n- `--json`/`-j`, `--verbose`/`-v`, `--log-level \u003Clevel>`\n- `--no-remote`, `--bridge-socket \u003Cpath>`\n\n## Quickstart (happy path)\n\n```bash\npeekaboo permissions\npeekaboo list apps --json\npeekaboo see --annotate --path /tmp/peekaboo-see.png\npeekaboo click --on B1\npeekaboo type \"Hello\" --return\n```\n\n## Common targeting parameters (most interaction commands)\n\n- App/window: `--app`, `--pid`, `--window-title`, `--window-id`, `--window-index`\n- Snapshot targeting: `--snapshot` (ID from `see`; defaults to latest)\n- Element/coords: `--on`/`--id` (element ID), `--coords x,y`\n- Focus control: `--no-auto-focus`, `--space-switch`, `--bring-to-current-space`,\n  `--focus-timeout-seconds`, `--focus-retry-count`\n\n## Common capture parameters\n\n- Output: `--path`, `--format png|jpg`, `--retina`\n- Targeting: `--mode screen|window|frontmost`, `--screen-index`,\n  `--window-title`, `--window-id`\n- Analysis: `--analyze \"prompt\"`, `--annotate`\n- Capture engine: `--capture-engine auto|classic|cg|modern|sckit`\n\n## Common motion/typing parameters\n\n- Timing: `--duration` (drag/swipe), `--steps`, `--delay` (type/scroll/press)\n- Human-ish movement: `--profile human|linear`, `--wpm` (typing)\n- Scroll: `--direction up|down|left|right`, `--amount \u003Cticks>`, `--smooth`\n\n## Examples\n\n### See -> click -> type (most reliable flow)\n\n```bash\npeekaboo see --app Safari --window-title \"Login\" --annotate --path /tmp/see.png\npeekaboo click --on B3 --app Safari\npeekaboo type \"user@example.com\" --app Safari\npeekaboo press tab --count 1 --app Safari\npeekaboo type \"supersecret\" --app Safari --return\n```\n\n### Target by window id\n\n```bash\npeekaboo list windows --app \"Visual Studio Code\" --json\npeekaboo click --window-id 12345 --coords 120,160\npeekaboo type \"Hello from Peekaboo\" --window-id 12345\n```\n\n### Capture screenshots + analyze\n\n```bash\npeekaboo image --mode screen --screen-index 0 --retina --path /tmp/screen.png\npeekaboo image --app Safari --window-title \"Dashboard\" --analyze \"Summarize KPIs\"\npeekaboo see --mode screen --screen-index 0 --analyze \"Summarize the dashboard\"\n```\n\n### Live capture (motion-aware)\n\n```bash\npeekaboo capture live --mode region --region 100,100,800,600 --duration 30 \\\n  --active-fps 8 --idle-fps 2 --highlight-changes --path /tmp/capture\n```\n\n### App + window management\n\n```bash\npeekaboo app launch \"Safari\" --open https://example.com\npeekaboo window focus --app Safari --window-title \"Example\"\npeekaboo window set-bounds --app Safari --x 50 --y 50 --width 1200 --height 800\npeekaboo app quit --app Safari\n```\n\n### Menus, menubar, dock\n\n```bash\npeekaboo menu click --app Safari --item \"New Window\"\npeekaboo menu click --app TextEdit --path \"Format > Font > Show Fonts\"\npeekaboo menu click-extra --title \"WiFi\"\npeekaboo dock launch Safari\npeekaboo menubar list --json\n```\n\n### Mouse + gesture input\n\n```bash\npeekaboo move 500,300 --smooth\npeekaboo drag --from B1 --to T2\npeekaboo swipe --from-coords 100,500 --to-coords 100,200 --duration 800\npeekaboo scroll --direction down --amount 6 --smooth\n```\n\n### Keyboard input\n\n```bash\npeekaboo hotkey --keys \"cmd,shift,t\"\npeekaboo press escape\npeekaboo type \"Line 1\\nLine 2\" --delay 10\n```\n\nNotes\n\n- Requires Screen Recording + Accessibility permissions.\n- Use `peekaboo see --annotate` to identify targets before clicking.\n","e0af87dd-4caf-50c6-b8b6-3fbfcc70a9ec","openclaw-openclaw-skills-peekaboo",{"name":11,"description":13,"homepage":24},"https://peekaboo.boo","\u003Ch1>Peekaboo\u003C/h1>\n\u003Cp>Peekaboo is a full macOS UI automation CLI: capture/inspect screens, target UI\nelements, drive input, and manage apps/windows/menus. Commands share a snapshot\ncache and support \u003Ccode>--json\u003C/code>/\u003Ccode>-j\u003C/code> for scripting. Run \u003Ccode>peekaboo\u003C/code> or\n\u003Ccode>peekaboo &lt;cmd&gt; --help\u003C/code> for flags; \u003Ccode>peekaboo --version\u003C/code> prints build metadata.\nTip: run via \u003Ccode>polter peekaboo\u003C/code> to ensure fresh builds.\u003C/p>\n\u003Ch2>Features (all CLI capabilities, excluding agent/MCP)\u003C/h2>\n\u003Cp>Core\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>bridge\u003C/code>: inspect Peekaboo Bridge host connectivity\u003C/li>\n\u003Cli>\u003Ccode>capture\u003C/code>: live capture or video ingest + frame extraction\u003C/li>\n\u003Cli>\u003Ccode>clean\u003C/code>: prune snapshot cache and temp files\u003C/li>\n\u003Cli>\u003Ccode>config\u003C/code>: init/show/edit/validate, providers, models, credentials\u003C/li>\n\u003Cli>\u003Ccode>image\u003C/code>: capture screenshots (screen/window/menu bar regions)\u003C/li>\n\u003Cli>\u003Ccode>learn\u003C/code>: print the full agent guide + tool catalog\u003C/li>\n\u003Cli>\u003Ccode>list\u003C/code>: apps, windows, screens, menubar, permissions\u003C/li>\n\u003Cli>\u003Ccode>permissions\u003C/code>: check Screen Recording/Accessibility status\u003C/li>\n\u003Cli>\u003Ccode>run\u003C/code>: execute \u003Ccode>.peekaboo.json\u003C/code> scripts\u003C/li>\n\u003Cli>\u003Ccode>sleep\u003C/code>: pause execution for a duration\u003C/li>\n\u003Cli>\u003Ccode>tools\u003C/code>: list available tools with filtering/display options\u003C/li>\n\u003C/ul>\n\u003Cp>Interaction\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>click\u003C/code>: target by ID/query/coords with smart waits\u003C/li>\n\u003Cli>\u003Ccode>drag\u003C/code>: drag &amp; drop across elements/coords/Dock\u003C/li>\n\u003Cli>\u003Ccode>hotkey\u003C/code>: modifier combos like \u003Ccode>cmd,shift,t\u003C/code>\u003C/li>\n\u003Cli>\u003Ccode>move\u003C/code>: cursor positioning with optional smoothing\u003C/li>\n\u003Cli>\u003Ccode>paste\u003C/code>: set clipboard -&gt; paste -&gt; restore\u003C/li>\n\u003Cli>\u003Ccode>press\u003C/code>: special-key sequences with repeats\u003C/li>\n\u003Cli>\u003Ccode>scroll\u003C/code>: directional scrolling (targeted + smooth)\u003C/li>\n\u003Cli>\u003Ccode>swipe\u003C/code>: gesture-style drags between targets\u003C/li>\n\u003Cli>\u003Ccode>type\u003C/code>: text + control keys (\u003Ccode>--clear\u003C/code>, delays)\u003C/li>\n\u003C/ul>\n\u003Cp>System\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>app\u003C/code>: launch/quit/relaunch/hide/unhide/switch/list apps\u003C/li>\n\u003Cli>\u003Ccode>clipboard\u003C/code>: read/write clipboard (text/images/files)\u003C/li>\n\u003Cli>\u003Ccode>dialog\u003C/code>: click/input/file/dismiss/list system dialogs\u003C/li>\n\u003Cli>\u003Ccode>dock\u003C/code>: launch/right-click/hide/show/list Dock items\u003C/li>\n\u003Cli>\u003Ccode>menu\u003C/code>: click/list application menus + menu extras\u003C/li>\n\u003Cli>\u003Ccode>menubar\u003C/code>: list/click status bar items\u003C/li>\n\u003Cli>\u003Ccode>open\u003C/code>: enhanced \u003Ccode>open\u003C/code> with app targeting + JSON payloads\u003C/li>\n\u003Cli>\u003Ccode>space\u003C/code>: list/switch/move-window (Spaces)\u003C/li>\n\u003Cli>\u003Ccode>visualizer\u003C/code>: exercise Peekaboo visual feedback animations\u003C/li>\n\u003Cli>\u003Ccode>window\u003C/code>: close/minimize/maximize/move/resize/focus/list\u003C/li>\n\u003C/ul>\n\u003Cp>Vision\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>see\u003C/code>: annotated UI maps, snapshot IDs, optional analysis\u003C/li>\n\u003C/ul>\n\u003Cp>Global runtime flags\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>--json\u003C/code>/\u003Ccode>-j\u003C/code>, \u003Ccode>--verbose\u003C/code>/\u003Ccode>-v\u003C/code>, \u003Ccode>--log-level &lt;level&gt;\u003C/code>\u003C/li>\n\u003Cli>\u003Ccode>--no-remote\u003C/code>, \u003Ccode>--bridge-socket &lt;path&gt;\u003C/code>\u003C/li>\n\u003C/ul>\n\u003Ch2>Quickstart (happy path)\u003C/h2>\n\u003Cdiv class=\"md-code-block\">\u003Cdiv class=\"md-code-lang\">bash\u003C/div>\u003Cpre>\u003Ccode class=\"hljs language-bash\">peekaboo permissions\npeekaboo list apps --json\npeekaboo see --annotate --path /tmp/peekaboo-see.png\npeekaboo click --on B1\npeekaboo \u003Cspan class=\"hljs-built_in\">type\u003C/span> \u003Cspan class=\"hljs-string\">&quot;Hello&quot;\u003C/span> --\u003Cspan class=\"hljs-built_in\">return\u003C/span>\u003C/code>\u003C/pre>\u003C/div>\u003Ch2>Common targeting parameters (most interaction commands)\u003C/h2>\n\u003Cul>\n\u003Cli>App/window: \u003Ccode>--app\u003C/code>, \u003Ccode>--pid\u003C/code>, \u003Ccode>--window-title\u003C/code>, \u003Ccode>--window-id\u003C/code>, \u003Ccode>--window-index\u003C/code>\u003C/li>\n\u003Cli>Snapshot targeting: \u003Ccode>--snapshot\u003C/code> (ID from \u003Ccode>see\u003C/code>; defaults to latest)\u003C/li>\n\u003Cli>Element/coords: \u003Ccode>--on\u003C/code>/\u003Ccode>--id\u003C/code> (element ID), \u003Ccode>--coords x,y\u003C/code>\u003C/li>\n\u003Cli>Focus control: \u003Ccode>--no-auto-focus\u003C/code>, \u003Ccode>--space-switch\u003C/code>, \u003Ccode>--bring-to-current-space\u003C/code>,\n\u003Ccode>--focus-timeout-seconds\u003C/code>, \u003Ccode>--focus-retry-count\u003C/code>\u003C/li>\n\u003C/ul>\n\u003Ch2>Common capture parameters\u003C/h2>\n\u003Cul>\n\u003Cli>Output: \u003Ccode>--path\u003C/code>, \u003Ccode>--format png|jpg\u003C/code>, \u003Ccode>--retina\u003C/code>\u003C/li>\n\u003Cli>Targeting: \u003Ccode>--mode screen|window|frontmost\u003C/code>, \u003Ccode>--screen-index\u003C/code>,\n\u003Ccode>--window-title\u003C/code>, \u003Ccode>--window-id\u003C/code>\u003C/li>\n\u003Cli>Analysis: \u003Ccode>--analyze &quot;prompt&quot;\u003C/code>, \u003Ccode>--annotate\u003C/code>\u003C/li>\n\u003Cli>Capture engine: \u003Ccode>--capture-engine auto|classic|cg|modern|sckit\u003C/code>\u003C/li>\n\u003C/ul>\n\u003Ch2>Common motion/typing parameters\u003C/h2>\n\u003Cul>\n\u003Cli>Timing: \u003Ccode>--duration\u003C/code> (drag/swipe), \u003Ccode>--steps\u003C/code>, \u003Ccode>--delay\u003C/code> (type/scroll/press)\u003C/li>\n\u003Cli>Human-ish movement: \u003Ccode>--profile human|linear\u003C/code>, \u003Ccode>--wpm\u003C/code> (typing)\u003C/li>\n\u003Cli>Scroll: \u003Ccode>--direction up|down|left|right\u003C/code>, \u003Ccode>--amount &lt;ticks&gt;\u003C/code>, \u003Ccode>--smooth\u003C/code>\u003C/li>\n\u003C/ul>\n\u003Ch2>Examples\u003C/h2>\n\u003Ch3>See -&gt; click -&gt; type (most reliable flow)\u003C/h3>\n\u003Cdiv class=\"md-code-block\">\u003Cdiv class=\"md-code-lang\">bash\u003C/div>\u003Cpre>\u003Ccode class=\"hljs language-bash\">peekaboo see --app Safari --window-title \u003Cspan class=\"hljs-string\">&quot;Login&quot;\u003C/span> --annotate --path /tmp/see.png\npeekaboo click --on B3 --app Safari\npeekaboo \u003Cspan class=\"hljs-built_in\">type\u003C/span> \u003Cspan class=\"hljs-string\">&quot;user@example.com&quot;\u003C/span> --app Safari\npeekaboo press tab --count 1 --app Safari\npeekaboo \u003Cspan class=\"hljs-built_in\">type\u003C/span> \u003Cspan class=\"hljs-string\">&quot;supersecret&quot;\u003C/span> --app Safari --\u003Cspan class=\"hljs-built_in\">return\u003C/span>\u003C/code>\u003C/pre>\u003C/div>\u003Ch3>Target by window id\u003C/h3>\n\u003Cdiv class=\"md-code-block\">\u003Cdiv class=\"md-code-lang\">bash\u003C/div>\u003Cpre>\u003Ccode class=\"hljs language-bash\">peekaboo list windows --app \u003Cspan class=\"hljs-string\">&quot;Visual Studio Code&quot;\u003C/span> --json\npeekaboo click --window-id 12345 --coords 120,160\npeekaboo \u003Cspan class=\"hljs-built_in\">type\u003C/span> \u003Cspan class=\"hljs-string\">&quot;Hello from Peekaboo&quot;\u003C/span> --window-id 12345\u003C/code>\u003C/pre>\u003C/div>\u003Ch3>Capture screenshots + analyze\u003C/h3>\n\u003Cdiv class=\"md-code-block\">\u003Cdiv class=\"md-code-lang\">bash\u003C/div>\u003Cpre>\u003Ccode class=\"hljs language-bash\">peekaboo image --mode screen --screen-index 0 --retina --path /tmp/screen.png\npeekaboo image --app Safari --window-title \u003Cspan class=\"hljs-string\">&quot;Dashboard&quot;\u003C/span> --analyze \u003Cspan class=\"hljs-string\">&quot;Summarize KPIs&quot;\u003C/span>\npeekaboo see --mode screen --screen-index 0 --analyze \u003Cspan class=\"hljs-string\">&quot;Summarize the dashboard&quot;\u003C/span>\u003C/code>\u003C/pre>\u003C/div>\u003Ch3>Live capture (motion-aware)\u003C/h3>\n\u003Cdiv class=\"md-code-block\">\u003Cdiv class=\"md-code-lang\">bash\u003C/div>\u003Cpre>\u003Ccode class=\"hljs language-bash\">peekaboo capture live --mode region --region 100,100,800,600 --duration 30 \\\n  --active-fps 8 --idle-fps 2 --highlight-changes --path /tmp/capture\u003C/code>\u003C/pre>\u003C/div>\u003Ch3>App + window management\u003C/h3>\n\u003Cdiv class=\"md-code-block\">\u003Cdiv class=\"md-code-lang\">bash\u003C/div>\u003Cpre>\u003Ccode class=\"hljs language-bash\">peekaboo app launch \u003Cspan class=\"hljs-string\">&quot;Safari&quot;\u003C/span> --open https://example.com\npeekaboo window focus --app Safari --window-title \u003Cspan class=\"hljs-string\">&quot;Example&quot;\u003C/span>\npeekaboo window set-bounds --app Safari --x 50 --y 50 --width 1200 --height 800\npeekaboo app quit --app Safari\u003C/code>\u003C/pre>\u003C/div>\u003Ch3>Menus, menubar, dock\u003C/h3>\n\u003Cdiv class=\"md-code-block\">\u003Cdiv class=\"md-code-lang\">bash\u003C/div>\u003Cpre>\u003Ccode class=\"hljs language-bash\">peekaboo menu click --app Safari --item \u003Cspan class=\"hljs-string\">&quot;New Window&quot;\u003C/span>\npeekaboo menu click --app TextEdit --path \u003Cspan class=\"hljs-string\">&quot;Format &gt; Font &gt; Show Fonts&quot;\u003C/span>\npeekaboo menu click-extra --title \u003Cspan class=\"hljs-string\">&quot;WiFi&quot;\u003C/span>\npeekaboo dock launch Safari\npeekaboo menubar list --json\u003C/code>\u003C/pre>\u003C/div>\u003Ch3>Mouse + gesture input\u003C/h3>\n\u003Cdiv class=\"md-code-block\">\u003Cdiv class=\"md-code-lang\">bash\u003C/div>\u003Cpre>\u003Ccode class=\"hljs language-bash\">peekaboo move 500,300 --smooth\npeekaboo drag --from B1 --to T2\npeekaboo swipe --from-coords 100,500 --to-coords 100,200 --duration 800\npeekaboo scroll --direction down --amount 6 --smooth\u003C/code>\u003C/pre>\u003C/div>\u003Ch3>Keyboard input\u003C/h3>\n\u003Cdiv class=\"md-code-block\">\u003Cdiv class=\"md-code-lang\">bash\u003C/div>\u003Cpre>\u003Ccode class=\"hljs language-bash\">peekaboo hotkey --keys \u003Cspan class=\"hljs-string\">&quot;cmd,shift,t&quot;\u003C/span>\npeekaboo press escape\npeekaboo \u003Cspan class=\"hljs-built_in\">type\u003C/span> \u003Cspan class=\"hljs-string\">&quot;Line 1\\nLine 2&quot;\u003C/span> --delay 10\u003C/code>\u003C/pre>\u003C/div>\u003Cp>Notes\u003C/p>\n\u003Cul>\n\u003Cli>Requires Screen Recording + Accessibility permissions.\u003C/li>\n\u003Cli>Use \u003Ccode>peekaboo see --annotate\u003C/code> to identify targets before clicking.\u003C/li>\n\u003C/ul>\n"]