commit caa8d1238e0391d5c415ae1d75a6074c6d94c5d3 Author: zlei9 Date: Sun Mar 29 14:26:05 2026 +0800 Initial commit with translated description diff --git a/SKILL.md b/SKILL.md new file mode 100644 index 0000000..636d435 --- /dev/null +++ b/SKILL.md @@ -0,0 +1,153 @@ +--- +name: peekaboo +description: "使用Peekaboo CLI捕获和自动化macOS UI。" +homepage: https://peekaboo.boo +metadata: {"clawdbot":{"emoji":"👀","os":["darwin"],"requires":{"bins":["peekaboo"]},"install":[{"id":"brew","kind":"brew","formula":"steipete/tap/peekaboo","bins":["peekaboo"],"label":"Install Peekaboo (brew)"}]}} +--- + +# 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 --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 connectivity +- `capture`: live capture or video ingest + frame extraction +- `clean`: prune snapshot cache and temp files +- `config`: init/show/edit/validate, providers, models, credentials +- `image`: capture screenshots (screen/window/menu bar regions) +- `learn`: print the full agent guide + tool catalog +- `list`: apps, windows, screens, menubar, permissions +- `permissions`: check Screen Recording/Accessibility status +- `run`: execute `.peekaboo.json` scripts +- `sleep`: pause execution for a duration +- `tools`: list available tools with filtering/display options + +Interaction +- `click`: target by ID/query/coords with smart waits +- `drag`: drag & drop across elements/coords/Dock +- `hotkey`: modifier combos like `cmd,shift,t` +- `move`: cursor positioning with optional smoothing +- `paste`: set clipboard -> paste -> restore +- `press`: special-key sequences with repeats +- `scroll`: directional scrolling (targeted + smooth) +- `swipe`: gesture-style drags between targets +- `type`: text + control keys (`--clear`, delays) + +System +- `app`: launch/quit/relaunch/hide/unhide/switch/list apps +- `clipboard`: read/write clipboard (text/images/files) +- `dialog`: click/input/file/dismiss/list system dialogs +- `dock`: launch/right-click/hide/show/list Dock items +- `menu`: click/list application menus + menu extras +- `menubar`: list/click status bar items +- `open`: enhanced `open` with app targeting + JSON payloads +- `space`: list/switch/move-window (Spaces) +- `visualizer`: exercise Peekaboo visual feedback animations +- `window`: 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 ` +- `--no-remote`, `--bridge-socket ` + +## Quickstart (happy path) +```bash +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 from `see`; 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 `, `--smooth` + +## Examples +### See -> click -> type (most reliable flow) +```bash +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 +```bash +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 +```bash +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) +```bash +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 +```bash +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 +```bash +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 +```bash +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 +```bash +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 --annotate` to identify targets before clicking. diff --git a/_meta.json b/_meta.json new file mode 100644 index 0000000..0857592 --- /dev/null +++ b/_meta.json @@ -0,0 +1,6 @@ +{ + "ownerId": "kn70pywhg0fyz996kpa8xj89s57yhv26", + "slug": "peekaboo", + "version": "1.0.0", + "publishedAt": 1767545373660 +} \ No newline at end of file