Peekaboo
A macOS CLI and MCP server: screenshots, accessibility-based UI inspection and app control via clicks and typing
Install
{
"mcpServers": {
"peekaboo": {
"command": "npx",
"args": ["-y", "@steipete/peekaboo", "mcp"]
}
}
}From docs/MCP.md, works for Codex, Claude Code and Cursor.
This is third-party code. Review the repository files before installing.
What it does
Peekaboo captures the screen, windows and apps on a Mac and builds a structured UI map with element IDs. From that map the agent clicks, types, presses keys, scrolls and controls windows, menus, the Dock and dialogs. Actions can be pinned to a specific window and are often delivered in the background without switching apps. The same toolset is exposed as an MCP server over stdio, and a built-in agent runs multi-step tasks from natural-language descriptions.
Who it is for. For macOS developers and automation users who need an agent to see the screen and work with native apps.
Good fit when
- You want the agent to check how your app window looks
- You need to automate a native macOS app that has no API
- You want Codex or Claude Code to get screenshots and UI control
Not a fit when
- You are on Windows or Linux: separate community rewrites exist
- You cannot grant Screen Recording and Accessibility permissions
Example request
Take a screenshot of my app window and check whether any button labels are cut offLimitations
Requires macOS 15 or newer, and Node 22 or newer for the npm package. Needs Screen Recording and Accessibility permissions. HTTP and SSE transports are not implemented yet, only stdio. The built-in agent and image analysis need a configured model provider.
How to disable. Remove the peekaboo block from the MCP config, revoke permissions in System Settings and uninstall the CLI with brew uninstall.
MCP
- Transport
- stdio
- Authentication
- not required
Security check
- Sees the whole screen and controls input in any app
- Requires system Screen Recording and Accessibility permissions
README in short
The README shows CLI install via Homebrew, the npm package with MCP and the menu bar app. The quick start covers permission checks, a screenshot and a JSON UI map of an app. It includes a Safari automation example pinned to a window ID, an agent run and a command map by goal. MCP client setup lives in docs/MCP.md. MIT licensed.
FAQ
Must the app be frontmost?
Often not: with a window target input goes in the background, while untargeted actions need explicit foreground consent.
What happened to steipete/Peekaboo?
The project moved to the openclaw organization; the npm package is still @steipete/peekaboo.
Related
Zapier's official MCP plugin: the agent gets actions across thousands of apps through your Zapier account
An MCP server with n8n node and template knowledge: the agent picks nodes, validates configs and, with API access, creates workflows in your n8n
Awesome Claude Skills by Composio
Awesome Claude Skills
A curated list of Claude skills and plugins, plus Composio's own automation skills for 78 SaaS apps
SDKs, a CLI and MCP access to over a thousand prebuilt SaaS integrations for agents, with auth and per-user sessions