Peekaboo
Capture and automate macOS UI with the Peekaboo CLI.
MIT-0 · Free to use, modify, and redistribute. No attribution required.
⭐ 51 · 17.9k · 947 current installs · 963 all-time installs
byPeter Steinberger@steipete
MIT-0
Security Scan
OpenClaw
Benign
high confidencePurpose & Capability
The name/description advertise macOS UI capture and automation and the instructions exclusively document peekaboo CLI commands (capture, click, type, app/window management, clipboard, etc.). The embedded metadata points to a Homebrew formula to provide the peekaboo binary — this is coherent for a CLI-focused skill.
Instruction Scope
The runtime instructions only tell the agent to run peekaboo CLI commands and pass file paths/flags. They do not instruct reading unrelated system files or environment variables. However, the tool's legitimate features include screen capture and clipboard access and can operate on application windows — these are high-privilege/sensitive operations (you should expect it can capture screen contents and clipboard data when granted permission).
Install Mechanism
The skill package is instruction-only (no installer executed by the platform). The SKILL.md metadata recommends installing the binary via a Homebrew formula: steipete/tap/peekaboo. Homebrew installs are typical for macOS CLIs, but this is a third-party tap (not an official core formula); verify the tap and upstream source before installing binaries from it.
Credentials
The skill declares no required environment variables or credentials. The commands mention a 'config' subcommand that can manage providers/models/credentials — this likely refers to optional configuration stored by the CLI itself, not required by the skill. There is no unexplained request for unrelated secrets in the SKILL.md.
Persistence & Privilege
The skill does not request always:true and is user-invocable only. It does rely on macOS Screen Recording and Accessibility permissions for full functionality — these are OS-level privileges required by any UI automation tool and should be granted only when you trust the binary.
Assessment
This skill appears internally consistent for a macOS UI-automation CLI, but be cautious before installing or running it: 1) Verify the Homebrew tap (steipete/tap) and the binary's upstream source or GitHub repo before installing; prefer official or widely-reviewed releases. 2) Only grant Screen Recording and Accessibility permissions when you trust the binary — these permissions allow screen capture and control of apps and can expose sensitive data. 3) Expect the tool to be able to read the clipboard, take screenshots, and control apps; avoid using it while sensitive information is on screen or in clipboard. 4) If the CLI asks you to store credentials in its config, confirm why those credentials are needed and where they are stored. 5) If you need lower risk, run tests in a limited account or VM, or audit the binary source before use.Like a lobster shell, security has layers — review code before you run it.
Current versionv1.0.0
Download ziplatest
License
MIT-0
Free to use, modify, and redistribute. No attribution required.
Runtime requirements
👀 Clawdis
OSmacOS
Binspeekaboo
Install
Install Peekaboo (brew)
Bins: peekaboo
brew install steipete/tap/peekabooSKILL.md
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.
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" --return
Common 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 --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.
- Use
peekaboo see --annotateto identify targets before clicking.
Files
1 totalSelect a file
Select a file to preview.
Comments
Loading comments…
