Peekabo
Overview
Use Peekaboo to see the macOS UI, capture screenshots, and drive deterministic interactions through element IDs and snapshots.
Installation
code
bunx @steipete/peekaboo npx -y @steipete/peekaboo brew install steipete/tap/peekaboo
Priority is in that order.
Workflow
- •Verify permissions.
- •Run
peekaboo permissions statusbefore any capture or interaction.
- •Run
- •Identify targets.
- •Use
peekaboo listorpeekaboo window list --app <Name>to find apps and windows.
- •Use
- •Capture a snapshot.
- •Run
peekaboo see --app <Name> --json-outputand keepsnapshot_id.
- •Run
- •Act on elements.
- •Prefer element IDs from
seewithclick,type,scroll,drag,hotkey,press. - •Use coordinates only when IDs are unavailable.
- •Prefer element IDs from
- •Validate.
- •Re-run
seeorimageto confirm UI state after actions.
- •Re-run
- •Escalate to agent when needed.
- •Use
peekaboo agent "task"for multi-step natural language flows.
- •Use
Quick start
bash
peekaboo permissions status peekaboo list peekaboo see --app "Safari" --json-output peekaboo click --on B12 peekaboo type "hello" --return peekaboo image --mode screen --retina --path ~/Desktop/screen.png
Decision rules
- •Use
see+ element IDs for reliable clicks and typing. - •Always scope actions with
--app,--window-title, or--window-idwhen multiple windows exist. - •Use
--json-outputfor scripting and to extract snapshot and element IDs. - •If a command fails due to focus or stale snapshots, run
seeagain and retry with the new snapshot.
References
- •Use
references/peekaboo-cli.mdfor command summaries, flags, and examples.