Bitterbot-desktop peekaboo
Capture screenshots, inspect UI elements, drive mouse/keyboard input, and manage macOS apps and windows with the Peekaboo CLI. Use when automating macOS UI interactions, taking annotated screenshots, clicking UI elements by ID, typing text, controlling app windows, or navigating menus and Dock items.
install
source · Clone the upstream repo
git clone https://github.com/Bitterbot-AI/bitterbot-desktop
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/Bitterbot-AI/bitterbot-desktop "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/peekaboo" ~/.claude/skills/bitterbot-ai-bitterbot-desktop-peekaboo && rm -rf "$T"
manifest:
skills/peekaboo/SKILL.mdsource content
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
: inspect Peekaboo Bridge host connectivitybridge
: live capture or video ingest + frame extractioncapture
: prune snapshot cache and temp filesclean
: init/show/edit/validate, providers, models, credentialsconfig
: capture screenshots (screen/window/menu bar regions)image
: print the full agent guide + tool cataloglearn
: apps, windows, screens, menubar, permissionslist
: check Screen Recording/Accessibility statuspermissions
: executerun
scripts.peekaboo.json
: pause execution for a durationsleep
: list available tools with filtering/display optionstools
Interaction
: target by ID/query/coords with smart waitsclick
: drag & drop across elements/coords/Dockdrag
: modifier combos likehotkeycmd,shift,t
: cursor positioning with optional smoothingmove
: set clipboard -> paste -> restorepaste
: special-key sequences with repeatspress
: directional scrolling (targeted + smooth)scroll
: gesture-style drags between targetsswipe
: text + control keys (type
, delays)--clear
System
: launch/quit/relaunch/hide/unhide/switch/list appsapp
: read/write clipboard (text/images/files)clipboard
: click/input/file/dismiss/list system dialogsdialog
: launch/right-click/hide/show/list Dock itemsdock
: click/list application menus + menu extrasmenu
: list/click status bar itemsmenubar
: enhancedopen
with app targeting + JSON payloadsopen
: list/switch/move-window (Spaces)space
: exercise Peekaboo visual feedback animationsvisualizer
: close/minimize/maximize/move/resize/focus/listwindow
Vision
: annotated UI maps, snapshot IDs, optional analysissee
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:
(ID from--snapshot
; defaults to latest)see - Element/coords:
/--on
(element ID),--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:
(drag/swipe),--duration
,--steps
(type/scroll/press)--delay - Human-ish movement:
,--profile human|linear
(typing)--wpm - 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
to identify targets before clicking.peekaboo see --annotate