@steipete/peekaboo
AmacOS screenshots, UI inspect, clicks, typing, app/window automation.
Install
agr install @steipete/peekaboo --target claudeWrites 1 file into .claude/skills/, pinned to git-190c6cac.
- .claude/skills/peekaboo/SKILL.md
Document
name: peekaboo description: "macOS screenshots, UI inspect, clicks, typing, app/window automation."
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/.
Trustgrade A
- passBody integrity
Whether the stored document is plausibly the kind of file the artifact declares, rather than something fetched by mistake.
- passType matchnot applicable to this artifact type
Whether the artifact is really the kind of thing its metadata claims it is.
- passFreshness
How long since the source repository was last pushed to.
- passPrompt injection
Scans the artifact's own text for instructions aimed at your agent rather than at you.
- passLicense
Whether the source repository declares an SPDX license permissive enough to redistribute.
How the grade is calculated
Each check contributes 0 points when it passes, 1 when it warns, and 2 when it fails. The total maps to a letter:
- Aevery check passed
- Bone warning
- Ctwo warnings
- Dprompt injection or body integrity failed, or three warnings
- Fone of those failed, and something else is wrong
These are automated hygiene checks, not a security audit, and not a dependency or vulnerability scan. A grade of A means nothing was flagged — not that the artifact is safe.
Versions
git-190c6cac62cd2026-07-31