PE
peekaboo
macOS screenshots, UI inspect, clicks, typing, app/window automation.
Install
mkdir -p .claude/skills/peekaboo-steipete && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/16004" && unzip -o skill.zip -d .claude/skills/peekaboo-steipete && rm skill.zipInstalls to .claude/skills/peekaboo-steipete
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
macOS screenshots, UI inspect, clicks, typing, app/window automation.69 charsno explicit “when” trigger
About this skill
Peekaboo
Use for macOS screen capture, UI inspection, and GUI automation.
Binary
- Prefer
~/bin/peekaboowhen present; it is Peter's local release copy. - Else use
peekaboo. - Check first:
~/bin/peekaboo --version || peekaboo --version.
Mac app host
- Launch
Peekaboo.appbefore live capture/automation; the CLI does not auto-launch it. - The app owns TCC grants and serves
~/Library/Application Support/Peekaboo/bridge.sock. - Installed app:
open -a Peekaboo. Repo build: build theApps/Mac/Peekaboo.xcodeprojPeekabooscheme, then open the resultingPeekaboo.app. peekaboo daemon startis not an app launch; the daemon has separate permissions anddaemon.sock.- Verify
peekaboo bridge status --verbose --jsonselectshostKind: gui; use--bridge-socket "$HOME/Library/Application Support/Peekaboo/bridge.sock"when deterministic app routing matters.
Safety
- Check permissions before capture/automation:
peekaboo permissions status --json. - Screenshot needs Screen Recording; clicks/typing/window control need Accessibility.
- On remote Macs, Screenshot may be blocked by missing Screen Recording while clicks/typing still work through Accessibility; continue with clicks or DOM automation when the target is otherwise knowable.
- Prefer
--jsonfor machine parsing and--no-remotewhen testing local TCC. - Do not click/type/destructively automate unless user asked or target is a controlled test.
Common Commands
PB="${PEEKABOO_BIN:-$HOME/bin/peekaboo}"
[ -x "$PB" ] || PB="$(command -v peekaboo)"
"$PB" permissions status --json
open -a Peekaboo
"$PB" bridge status --verbose --json
"$PB" list screens --json
"$PB" list apps --json
"$PB" list windows --app Safari --json
"$PB" image --mode screen --screen-index 0 --path /tmp/screen.png --json --no-remote
"$PB" see --app frontmost --path /tmp/frontmost.png --json --annotate
"$PB" tools --json
"$PB" learn
"$PB" click --coords 100,100 --json
"$PB" type "text" --json
Workflow
- Resolve
PBas above and confirm version when install state matters. - For live UI work, launch
Peekaboo.app; verify the GUI bridge and its permissions. - Run
permissions status --json; if missing TCC, report exact missing grant. - For screenshots, use
image; include--path,--json, and usually--no-remoteonly when deliberately testing caller-local TCC. - For element targeting, run
see --json --annotate, then click by element id/snapshot. - For long-running/change-aware screen capture, use
capture live; for video frame sampling, usecapture video. - Use
tools --jsonfor command/tool discovery andlearnwhen the full agent guide is useful. - Verify output files with
sips -g pixelWidth -g pixelHeight <path>or view the image.
Docs: ~/Projects/Peekaboo/docs/commands/.