peekabo
Peekabo
Overview
Use Peekaboo to see the macOS UI, capture screenshots, and drive deterministic interactions through element IDs and snapshots.
Installation
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
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.
More from khoi/skills
manipulate-xcodeproj
Manipulate Xcode projects and asset catalogs using XcodeProjectCLI (xcp) only. Use when editing .xcodeproj/.pbxproj files, adding/moving/renaming/deleting groups or files, changing target membership, reading or setting build settings, or managing xcassets assets.
33execplan
When writing complex features or significant refactors or user ask explicitly, use an ExecPlan from design to implementation.
7create-cli-tool
Craft or refactor a CLI interface and behavior using the CLI Guidelines. Use when defining a new CLI spec or reshaping an existing command surface arguments, flags, subcommands, help text, outputs, errors, exit codes, prompts, config/env precedence, and safe/dry-run behavior.
6commit
Create a well-formed git commit from current changes using session history for
2