Skip to content
AI & Agents
Skill

/peekaboo

Capture and automate macOS UI with the Peekaboo CLI.

BOOST
From plugin
openagent
5.7k54 skills
Install
$ npx -y skills add the-open-agent/openagent --skill peekaboo --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/peekaboo

Context preview

The summary Claude sees to decide when to auto-load this skill.

Capture and automate macOS UI with the Peekaboo CLI.

SKILL.md

peekaboo.SKILL.md
name: peekaboo
description: Capture and automate macOS UI with the Peekaboo CLI.
homepage: https://peekaboo.boo
metadata:
  {
    "openclaw":
      {
        "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 <cmd> --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 <level>`
  • `--no-remote`, `--bridge-socket <path>`

Quickstart (happy path)

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 <ticks>`, `--smooth`

Examples

See -> click -> type (most reliable flow)

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

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

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)

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

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

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

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

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.
Read more
Ships withopenagent

⚡️next-generation personal AI assistant powered by LLM, RAG and agent loops, supporting computer-use, browser-use and coding agent, demo: https://demo.openagentai.org

Get the whole plugin
Stats
5,691
Stars
667
Forks
Active
Maintenance
Go
Language
Apache-2.0
License
11h ago
Last commit
6y ago
Created
1d ago
Added

Repo: the-open-agent/openagent

Other skills on openagent.