[BREAKGLASS] Peekaboo is a macOS CLI & optional MCP server that enables AI agents to capture screenshots of applications, or the entire system, with optional visual question answering through local or remote AI models. http://www.peekaboo.boo/
Go to file
2026-05-24 05:31:07 +01:00
.agents/skills/crabbox chore: add constrained Crabbox setup 2026-05-23 05:59:39 +08:00
.github chore: add constrained Crabbox setup 2026-05-23 05:59:39 +08:00
Apps chore(release): prepare 3.2.3 2026-05-24 04:41:14 +01:00
assets fix(app): polish mac app launch chrome 2026-05-10 09:37:40 +01:00
AXorcist@fbb2a577c9 fix(input): bump AXorcist typing reliability 2026-05-08 12:11:19 +01:00
Commander@2a4c2f8309 fix(cli): reject unexpected command arguments 2026-05-09 12:34:46 +01:00
Core chore(release): prepare 3.2.3 2026-05-24 04:41:14 +01:00
docs build: reuse shared mac release tooling 2026-05-21 22:00:27 +01:00
Examples style: normalize swift formatting 2026-03-13 01:21:26 +00:00
experiments/cgs-menu-probe chore: merge fix-ci into main 2025-11-24 19:01:29 +01:00
Helpers/MenuBarHelper style: normalize swift formatting 2026-03-13 01:21:26 +00:00
homebrew chore(release): close 3.2.0 2026-05-15 05:44:25 +01:00
release fix(release): stabilize release metadata 2026-05-11 06:13:48 +01:00
scripts fix(release): handle empty Sparkle key args 2026-05-24 05:14:59 +01:00
skills/peekaboo docs(skills): rename peekaboo skill 2026-05-09 02:07:25 -04:00
Swiftdansi@ed7d8c9d4e build: bump Swiftdansi submodule 2026-05-11 03:33:50 +01:00
Tachikoma@5eafbe963a chore: bump Tachikoma 2026-05-22 13:05:31 +01:00
TauTUI@2e8390466c chore: bump tautui formatting cleanup 2026-05-06 06:50:06 +01:00
tests fix(mcp): harden wrapper restart handling 2026-05-15 18:39:14 +01:00
.crabbox.yaml chore: add constrained Crabbox setup 2026-05-23 05:59:39 +08:00
.envrc Add local poltergeist shim 2025-11-14 14:43:57 +00:00
.gitignore docs(site): add generated documentation hub 2026-05-08 09:04:24 +01:00
.gitmodules chore: track submodules main + extend lint timeout 2025-12-21 14:50:08 +01:00
.mac-release.env build: reuse shared mac release tooling 2026-05-21 22:00:27 +01:00
.npmignore Add build dir, prepare package 2025-05-23 05:57:06 +02:00
.swiftformat build(format): scope root formatter and bridge warnings 2026-03-13 01:21:20 +00:00
.swiftlint-ci.yml ci: add macos lint and tachikoma jobs 2025-11-07 23:54:20 +00:00
.swiftlint.yml feat: adopt AX facades across CLI and services 2025-11-19 18:59:22 +01:00
.watchmanconfig chore(watchman): normalize config metadata 2025-12-17 15:53:15 +00:00
AGENTS.md docs: note grouped git ops 2026-03-13 18:38:14 +00:00
appcast.xml docs: update appcast for 3.2.3 2026-05-24 05:31:07 +01:00
CHANGELOG.md chore(release): prepare 3.2.3 2026-05-24 04:41:14 +01:00
CLAUDE.md style: reformat shared modules and guides 2025-11-05 12:23:48 +00:00
LICENSE Initial commit 2025-05-22 18:09:06 +02:00
package.json chore(release): prepare 3.2.3 2026-05-24 04:41:14 +01:00
Package.swift chore: release 3.0.0-beta4 2026-04-28 01:56:28 +01:00
peekaboo-mcp.js fix(mcp): harden wrapper restart handling 2026-05-15 18:39:14 +01:00
pnpm-lock.yaml build: update chrome devtools mcp 2026-04-27 15:01:12 +01:00
pnpm-workspace.yaml chore: wire oracle cli via pnpm link 2025-11-15 04:55:50 +01:00
poltergeist.config.json fix(clipboard): persist save/restore across invocations 2025-12-17 19:28:05 +00:00
README.md chore(release): prepare 3.2.3 2026-05-24 04:41:14 +01:00
version.json chore(release): prepare 3.2.3 2026-05-24 04:41:14 +01:00

Peekaboo 🫣 - Mac automation that sees the screen and does the clicks.

Peekaboo Banner

npm package License: MIT macOS 15.0+ (Sequoia) Swift 6.2 node >=22 Download macOS Homebrew Ask DeepWiki

Peekaboo brings high-fidelity screen capture, AI analysis, and complete GUI automation to macOS. Version 3 adds native agent flows and multi-screen automation across the CLI and MCP server.

What you get

  • Pixel-accurate captures (windows, screens, menu bar) with optional Retina 2x scaling.
  • Natural-language agent that chains Peekaboo tools (see, click, type, scroll, hotkey, menu, window, app, dock, space).
  • Action-first UI automation for routine clicks/scrolls, with synthetic input fallback for apps that need it.
  • Direct accessibility tools for settable values and named actions (set-value, perform-action).
  • Menu and menubar discovery with structured JSON; no clicks required.
  • Multi-provider AI through Tachikoma, including hosted, local, and OpenAI-/Anthropic-compatible providers.
  • MCP server for Codex, Claude Code, and Cursor plus a native CLI; the same tools in both.
  • Configurable, testable workflows with reproducible sessions and strict typing.
  • Requires macOS Screen Recording + Accessibility permissions (see docs/permissions.md).

Install

  • macOS app + CLI (Homebrew):
    brew install steipete/tap/peekaboo
    
  • MCP server (Node 22+, no global install needed):
    npx -y @steipete/peekaboo
    

Quick start

# Capture full screen at Retina scale and save to Desktop
peekaboo image --mode screen --retina --path ~/Desktop/screen.png

# Click a button by label (captures, resolves, and clicks in one go)
peekaboo see --app Safari --json | jq -r '.data.snapshot_id' | read SNAPSHOT
peekaboo click --on "Reload this page" --snapshot "$SNAPSHOT"

# Directly set a text field value when the accessibility value is settable
peekaboo set-value --on T1 --value "hello" --snapshot "$SNAPSHOT"

# Invoke a named accessibility action on an element
peekaboo perform-action --on B1 --action AXPress --snapshot "$SNAPSHOT"

# Run a natural-language automation
peekaboo agent "Open Notes and create a TODO list with three items"

# Run as an MCP server (Codex, Claude Code, Cursor)
npx -y @steipete/peekaboo

# Minimal MCP client config snippet:
# {
#   "mcpServers": {
#     "peekaboo": {
#       "command": "npx",
#       "args": ["-y", "@steipete/peekaboo"],
#       "env": {
#         "PEEKABOO_AI_PROVIDERS": "openai/gpt-5.5,anthropic/claude-opus-4-7"
#       }
#     }
#   }
# }

Shell completions

Peekaboo can generate shell-native completions directly from the same Commander metadata that powers CLI help and docs:

# Current shell (recommended)
eval "$(peekaboo completions $SHELL)"

# Explicit shells
eval "$(peekaboo completions zsh)"
eval "$(peekaboo completions bash)"
peekaboo completions fish | source

For persistent setup and troubleshooting, see docs/commands/completions.md.

Command Key flags / subcommands What it does
see --app, --mode screen/window, --retina, --json Capture and annotate UI, return snapshot + element IDs
click --on <id/query>, --snapshot, --wait-for, --coords Click by element ID, label, or coordinates
type --text, --clear, --profile, --delay Enter text with pacing options
set-value --on <id/query>, --value, --snapshot Directly set a settable accessibility value
perform-action --on <id/query>, --action, --snapshot Invoke a named accessibility action
press key names, --count, --delay, --hold Special keys and sequences
hotkey combos like cmd,shift,t Modifier combos (cmd/ctrl/alt/shift)
scroll --on <id>, --direction up/down, --amount Scroll views or elements
swipe --from/--to, --duration, --steps Smooth gesture-style drags
drag --from/--to, modifiers, Dock/Trash targets Drag-and-drop between elements/coords
move --to <id/coords>, --screen-index Position the cursor without clicking
window list, move, resize, focus, set-bounds Move/resize/focus windows and Spaces
app launch, quit, relaunch, switch, list Launch, quit, relaunch, switch apps
space list, switch, move-window List or switch macOS Spaces
menu list, list-all, click, click-extra List/click app menus and extras
menubar list, click Target status-bar items by name/index
dock launch, right-click, hide, show, list Interact with Dock items
dialog list, click, input, file, dismiss Drive system dialogs (open/save/etc.)
image --mode screen/window/menu, --retina, --analyze Screenshot screen/window/menu bar (+analyze)
list apps, windows, screens, menubar, permissions Enumerate apps, windows, screens, permissions
tools --verbose, --json, --no-sort Inspect native Peekaboo tools
completions [shell] Generate zsh/bash/fish completion scripts from Commander metadata
config init, show, add, login, models Manage credentials/providers/settings
permissions status, grant Check/grant required macOS permissions
run .peekaboo.json, --output, --no-fail-fast Execute .peekaboo.json automation scripts
sleep --duration (ms) Millisecond delays between steps
clean --all-snapshots, --older-than, --snapshot Prune snapshots and caches
agent --model, --dry-run, --resume, --max-steps, audio Natural-language multi-step automation
mcp serve (default) Run Peekaboo as an MCP server

Models and providers

Peekaboo's provider list changes with Tachikoma and the tested model catalog. See docs/providers.md for the current provider reference, including OpenAI, Anthropic, xAI/Grok, Google Gemini, MiniMax, Ollama, LM Studio, and compatible custom endpoints.

Set providers via PEEKABOO_AI_PROVIDERS or peekaboo config add.

Learn more

Community

  • PeekabooWin — Windows-first rewrite of the Peekaboo automation loop (JavaScript + PowerShell) by @FelixKruger
  • PeekabooX — Linux-first rewrite of the Peekaboo automation loop (Rust + Python) by @nordbyte

Development basics

  • Requirements: see docs/platform-support.md. Node 22+ is only needed for the npm MCP wrapper and pnpm helper scripts.
  • Install deps: pnpm install then pnpm run build:cli or pnpm run test:safe.
  • Lint/format: pnpm run lint && pnpm run format.

License

MIT