peekaboo

peekaboo is a skill for Claude Code from johnkozaris/jko-claude-plugins. It costs 104 tokens per session (1,307 once invoked), scanned A, original, MIT.

A tool for observing and controlling native macOS app interfaces, including what is visible, selected, enabled, or open. It uses accessibility information and screenshots to inspect running SwiftUI or AppKit apps.

In plain words
What is it for?
It is for checking workflows and interface states in running macOS apps, including windows, menus, dialogs, focus, and selections.
Why use it?
It helps answer questions that source code, logs, or command-line checks cannot answer, such as whether a screen looks right or a control can be reached.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the peekaboo-macos-validator plugin — 2 skills, 1 hook shipped together

Good fit It is for checking workflows and interface states in running macOS apps, including windows, menus, dialogs, focus, and selections.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/johnkozaris/jko-claude-plugins/peekaboo
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add johnkozaris/jko-claude-plugins --skill peekaboo
Clone the repo
git clone --depth 1 https://github.com/johnkozaris/jko-claude-plugins

Made for: Claude Code.

Or install peekaboo-macos-validator, the plugin that ships this one along with the rest of its 2 skills, 1 hook.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for peekaboo

README.md
[![agentmods](https://agentmods.dev/badge/skills/johnkozaris/jko-claude-plugins/peekaboo/github.svg)](https://agentmods.dev/skills/johnkozaris/jko-claude-plugins/peekaboo)
Your own site
<a href="https://agentmods.dev/skills/johnkozaris/jko-claude-plugins/peekaboo"><img src="https://agentmods.dev/badge/skills/johnkozaris/jko-claude-plugins/peekaboo/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for peekaboo

Your own site · 80×15
<a href="https://agentmods.dev/skills/johnkozaris/jko-claude-plugins/peekaboo"><img src="https://agentmods.dev/badge/skills/johnkozaris/jko-claude-plugins/peekaboo.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 104 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,307 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00104 $0.01307
Opus 5 $0.00052 $0.00654
Sonnet 5 $0.00021 $0.00261
Haiku 4.5 $0.00010 $0.00131

Measured 9d ago against content hash 82b2391bd092, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-09, from the pricing page.

Security

Grade A, and why

peekaboo scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/peekaboo-macos-validator/skills/peekaboo/SKILL.md · 146 lines

How it starts

The opening of the file, as written. The whole thing — 146 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Peekaboo

Use Peekaboo when the unresolved evidence or action lives in the running native interface: whether a workflow works, what state it reached, and whether that state looks intentional.

Protect context and resources

Apply these rules throughout every workflow:

  • Rule out files, source, CLI commands, app APIs, logs, and processes before using the live UI.
  • Predict JSON size before running a command. Persist accessibility trees, browser snapshots, capture results, and other likely-large JSON, then query only the fields needed for the next decision.
  • Treat every screenshot as large, including crops. Keep pixels on disk and return only compact text findings to the driving conversation.
  • When a screenshot reader is needed, let it read the minimum related captures, then immediately terminate it with the host's kill/stop/remove control and verify through worker listing that it is gone. A blocking or synchronous result does not prove teardown. Do not create the reader if termination and verification are unavailable.
  • Track every task-created artifact. Delete screenshots, JSON, traces, videos, contact sheets, and empty temporary directories by exact path as soon as they are no longer needed and again before the final response. Retain only requested artifacts or necessary failure evidence.

Prefer structured inspection until pixels are necessary. A visual task may compare a small related set such as before/after states, but it must follow the same read-then-terminate and artifact-cleanup lifecycle.

Read references/agent-runtime.md for host-specific options and references/visual-verification.md for the visual-reader contract.

Start from live capabilities

Check the installed CLI and selected runtime before guessing flags:

peekaboo --version
peekaboo permissions status --all-sources --json
peekaboo <command> --help

Screen Recording belongs to the process performing capture; Accessibility belongs to the process inspecting or acting on UI. Event Synthesizing is needed for background keyboard input and coordinate/synthetic fallback. In agent, SSH, or launchd sessions the selected process may be the daemon or Peekaboo.app Bridge rather than the terminal.

Read the full file on GitHub · 146 lines

Files

What ships with it

3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 9d ago First seen · 146 lines · 104 tokens per session scan A 82b2391bd092

Subscribe to this mod's changes

peekaboo is a skill published in the GitHub repository johnkozaris/jko-claude-plugins (11 stars, last pushed 13d ago), licensed MIT. It adds 104 tokens to every session and 1,307 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

dotnet-backend-expert

This skill should be used when the user is writing, reviewing, debugging, or architecting pure .NET backend code for Kestrel-hosted services. It provides expert critique for REST endpoints, SignalR hubs, TypeScript/React client integration shape, pragmatic Rust interop, application services, AppHost-aware project…

mathisk2095/jko-claude-plugins · 181 tokens

esp32-expert

This skill should be used when the user is writing, reviewing, debugging, or architecting C++ firmware for ESP32 and variants (ESP32-S2, S3, C3, C6, H2, P4) using ESP-IDF or PlatformIO. Provides expert critique covering FreeRTOS task design, memory management (IRAM/DRAM/PSRAM), peripheral drivers (I2C/SPI/UART/GPIO)…

mathisk2095/jko-claude-plugins · 193 tokens

python-backend-expert

This skill should be used when the user is writing, reviewing, debugging, or architecting Python backend code using Litestar or FastAPI with SQLAlchemy or Advanced Alchemy. Provides expert critique covering SOLID principles, hexagonal architecture, repository/service patterns, dependency injection, async correctness…

mathisk2095/jko-claude-plugins · 183 tokens

rust-expert

This skill should be used when the user is writing, reviewing, debugging, or architecting Rust code. Detects edition and toolchain from the project. Provides expert critique covering ownership, error handling, unsafe review, async correctness, trait design, type system patterns, performance, SOLID principles, and…

mathisk2095/jko-claude-plugins · 148 tokens

swiftui-expert

This skill should be used when the user is building, reviewing, or debugging SwiftUI views and apps. Detects iOS and Swift version from the project. Covers creating views, state management with @Observable, NavigationStack routing, animations, accessibility, performance optimization, Liquid Glass adoption, design…

mathisk2095/jko-claude-plugins · 162 tokens

dead-code-expert

This skill should be used when the user wants to find, audit, or remove dead code, unused imports, unused functions, unused variables, duplicate implementations, or simplify a codebase. Works across all programming languages. Relevant when the user says "find dead code", "remove dead code", "remove unused imports"…

mathisk2095/jko-claude-plugins · 132 tokens