agentskills.codes
PE

macOS screenshots, UI inspect, clicks, typing, app/window automation.

Install

mkdir -p .claude/skills/peekaboo-steipete && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/16004" && unzip -o skill.zip -d .claude/skills/peekaboo-steipete && rm skill.zip

Installs to .claude/skills/peekaboo-steipete

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

macOS screenshots, UI inspect, clicks, typing, app/window automation.
69 charsno explicit “when” trigger

About this skill

Peekaboo

Use for macOS screen capture, UI inspection, and GUI automation.

Binary

  • Prefer ~/bin/peekaboo when present; it is Peter's local release copy.
  • Else use peekaboo.
  • Check first: ~/bin/peekaboo --version || peekaboo --version.

Mac app host

  • Launch Peekaboo.app before live capture/automation; the CLI does not auto-launch it.
  • The app owns TCC grants and serves ~/Library/Application Support/Peekaboo/bridge.sock.
  • Installed app: open -a Peekaboo. Repo build: build the Apps/Mac/Peekaboo.xcodeproj Peekaboo scheme, then open the resulting Peekaboo.app.
  • peekaboo daemon start is not an app launch; the daemon has separate permissions and daemon.sock.
  • Verify peekaboo bridge status --verbose --json selects hostKind: gui; use --bridge-socket "$HOME/Library/Application Support/Peekaboo/bridge.sock" when deterministic app routing matters.

Safety

  • Check permissions before capture/automation: peekaboo permissions status --json.
  • Screenshot needs Screen Recording; clicks/typing/window control need Accessibility.
  • On remote Macs, Screenshot may be blocked by missing Screen Recording while clicks/typing still work through Accessibility; continue with clicks or DOM automation when the target is otherwise knowable.
  • Prefer --json for machine parsing and --no-remote when testing local TCC.
  • Do not click/type/destructively automate unless user asked or target is a controlled test.

Common Commands

PB="${PEEKABOO_BIN:-$HOME/bin/peekaboo}"
[ -x "$PB" ] || PB="$(command -v peekaboo)"

"$PB" permissions status --json
open -a Peekaboo
"$PB" bridge status --verbose --json
"$PB" list screens --json
"$PB" list apps --json
"$PB" list windows --app Safari --json
"$PB" image --mode screen --screen-index 0 --path /tmp/screen.png --json --no-remote
"$PB" see --app frontmost --path /tmp/frontmost.png --json --annotate
"$PB" tools --json
"$PB" learn
"$PB" click --coords 100,100 --json
"$PB" type "text" --json

Workflow

  1. Resolve PB as above and confirm version when install state matters.
  2. For live UI work, launch Peekaboo.app; verify the GUI bridge and its permissions.
  3. Run permissions status --json; if missing TCC, report exact missing grant.
  4. For screenshots, use image; include --path, --json, and usually --no-remote only when deliberately testing caller-local TCC.
  5. For element targeting, run see --json --annotate, then click by element id/snapshot.
  6. For long-running/change-aware screen capture, use capture live; for video frame sampling, use capture video.
  7. Use tools --json for command/tool discovery and learn when the full agent guide is useful.
  8. Verify output files with sips -g pixelWidth -g pixelHeight <path> or view the image.

Docs: ~/Projects/Peekaboo/docs/commands/.

More by steipete

View all by steipete

markdown-converter

steipete

Convert documents and files to Markdown using markitdown. Use when converting PDF, Word (.docx), PowerPoint (.pptx), Excel (.xlsx, .xls), HTML, CSV, JSON, XML, images (with EXIF/OCR), audio (with transcription), ZIP archives, YouTube URLs, or EPubs to Markdown format for LLM processing or text analysis.

530

video-transcript-downloader

steipete

Download videos, audio, subtitles, and clean paragraph-style transcripts from YouTube and any other yt-dlp supported site. Use when asked to “download this video”, “save this clip”, “rip audio”, “get subtitles”, “get transcript”, or to troubleshoot yt-dlp/ffmpeg and formats/playlists.

417

instruments-profiling

steipete

Use when profiling native macOS or iOS apps with Instruments/xctrace. Covers correct binary selection, CLI arguments, exports, and common gotchas.

327

domain-dns-ops

steipete

Domain/DNS ops across Cloudflare, DNSimple, Namecheap for Peter. Use for onboarding zones to Cloudflare, flipping nameservers, setting redirects (Page Rules/Rulesets/Workers), updating redirect-worker mappings, and verifying DNS/HTTP. Source of truth: ~/Projects/manager.

27

create-cli

steipete

Design command-line interface parameters and UX: arguments, flags, subcommands, help text, output formats, error messages, exit codes, prompts, config/env precedence, and safe/dry-run behavior. Use when you’re designing a CLI spec (before implementation) or refactoring an existing CLI’s surface area for consistency, composability, and discoverability.

15

swiftui-performance-audit

steipete

Audit and improve SwiftUI runtime performance from code review and architecture. Use for requests to diagnose slow rendering, janky scrolling, high CPU/memory usage, excessive view updates, or layout thrash in SwiftUI apps, and to provide guidance for user-run Instruments profiling when code review alone is insufficient.

12

Search skills

Search the agent skills registry