A CLI tool to capture, inspect, and automate macOS UI elements, windows, and applications.

Install

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

Installs to .claude/skills/peekaboo

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.

Capture and automate macOS UI with the Peekaboo CLI.
52 charsno explicit “when” trigger
Intermediate

Key capabilities

  • →Capture application UI and screen regions
  • →Execute clicks and inputs on specific UI elements
  • →Manage window state and application lists
  • →Clean up snapshot cache and temp files

How it works

Executes shell commands that interface with the macOS accessibility and screen capture APIs.

Inputs & outputs

You give it
App name, window ID, coordinates, or UI element query
You get back
Screenshots, UI metadata, or automation success confirmation

When to use peekaboo

  • →Automating repetitive macOS application workflows
  • →Extracting text or data from UI elements
  • →Taking automated screenshots of specific application windows
  • →Simulating complex keyboard and mouse sequences

About this skill

Peekaboo

Use Peekaboo to inspect macOS UI, act on the intended target, and verify the result. The examples below use v4 syntax. Check peekaboo --version and the installed command's --help; for older versions, follow that version's help.

OpenClaw Bridge

The OpenClaw macOS app hosts Peekaboo Bridge when Computer Control is enabled, its provider is Peekaboo, and Peekaboo Bridge is enabled. Keep the existing OpenClaw socket selection when running through that host:

export PEEKABOO_BRIDGE_SOCKET="${PEEKABOO_BRIDGE_SOCKET:-$HOME/Library/Application Support/OpenClaw/bridge.sock}"
peekaboo bridge status --json

Confirm that the selected host and socket are the intended ones. Preserve an explicit PEEKABOO_BRIDGE_SOCKET or --bridge-socket selection. If the required host is unavailable, report that outcome; do not clear the selection or switch Computer Control providers to make a command succeed.

Permissions belong to the process or Bridge host performing the operation. Do not pass --no-remote unless the caller has the required permissions.

Find the installed command

Use leaf help for flags and targeting requirements instead of copying a flag between commands. Use root help to discover the available commands:

peekaboo --help
peekaboo app list --help
peekaboo see --help
peekaboo press --help
peekaboo drag --help

V4 removed these old command roots:

Old commandV4 command
list appsapp list
imagesee --no-elements for pixels without element detection
hotkeypress with chords such as cmd+shift+t
swipedrag --from … --to …

For other operations, including clicking, typing, scrolling, and managing windows or menus, use peekaboo <command> --help. Put command options after the leaf command; --json requests structured output.

Inspect, act, verify

Start with application inventory and a fresh view of the target:

peekaboo app list --json
peekaboo see --app Safari --window-title "Example" --annotate \
  --path /tmp/peekaboo-example.png --json

Read the returned elements before acting. Keep actions tied to the intended app, window, and fresh snapshot; do not reuse example element IDs. After an action, inspect the UI again and check the requested result. Refresh the observation when the window changes or a target becomes stale.

For a screenshot without element detection:

peekaboo see --mode screen --screen-index 0 --no-elements --retina \
  --path /tmp/peekaboo-screen.png --json

Raw keyboard chords require explicit foreground interaction or a fresh exact-window receipt accepted by press. Dragging always moves the shared cursor and requires --foreground. When foreground interaction is authorized:

peekaboo press cmd+shift+t --app Safari --foreground --json
peekaboo drag --from 100,500 --to 100,200 --duration 800ms --foreground --json

Use the actual target and coordinates from the current observation. Prefer explicit duration units such as 800ms; consult each command's help for its options and prerequisites.

Troubleshooting

  • For a removed-command error, use the replacement named by the installed CLI.
  • For host or permission failures, inspect peekaboo bridge status --json and peekaboo permissions status --json for the selected host.
  • For targeting failures, read the leaf help and obtain fresh UI state with see.
  • On macOS 15+, the private window picker prompt is separate from the base Screen Recording grant and can appear even when Bridge permissions are correct.

When not to use it

  • →Automating non-macOS systems
  • →Interacting with kernel-level processes

Prerequisites

MacOSPeekaboo CLIOpenClaw app for bridge access

Limitations

  • →Restricted to macOS
  • →Requires Accessibility and Screen Recording permissions

How it compares

Bypasses manual UI recording software by allowing programmatic control via a CLI.

Compared to similar skills

peekaboo side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
peekaboo (this skill)144moReviewIntermediate
command-development1610moReviewIntermediate
skill-forge1110moReviewIntermediate
codex-skill126moReviewAdvanced

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

command-development

anthropics

This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.

16133

skill-forge

WilliamSaysX

Automated skill creation workshop with intelligent source detection, smart path management, and end-to-end workflow automation. This skill should be used when users want to create a new skill or convert external resources (GitHub repositories, online documentation, or local directories) into a skill. Automatically fetches, organizes, and packages skills with proactive cleanup management.

11115

codex-skill

feiskyer

Use when user asks to leverage codex, gpt-5, or gpt-5.1 to implement something (usually implement a plan or feature designed by Claude). Provides non-interactive automation mode for hands-off task execution without approval prompts.

12110

agent-factory

alirezarezvani

Claude Code agent generation system that creates custom agents and sub-agents with enhanced YAML frontmatter, tool access patterns, and MCP integration support following proven production patterns

8109

subagent-driven-development

davila7

Use when executing implementation plans with independent tasks in the current session

1493

ai-assisted-development

baz-scm

Leveraging AI coding assistants and tools to boost development productivity, while maintaining oversight to ensure quality results.

585

Search skills

Search the agent skills registry