Peekaboo vs ShadowCursor: a fair comparison of two Mac computer use tools
Peekaboo is a free, scriptable Mac CLI and MCP server; ShadowCursor gives every agent its own cursor, keyboard and clipboard. Where each is stronger, checked against Peekaboo's own docs.
Short answer: Peekaboo is a free, MIT-licensed macOS CLI, menu bar app and MCP server with broad automation commands, a built-in agent and background input for targeted actions. If you want open source and shell scripting, it is hard to beat. ShadowCursor is a paid Mac app and MCP server that makes a different trade: every agent gets its own visible cursor, keyboard and clipboard in background windows, several agents work at once, input moves like a person, and clients connect with one click.
What Peekaboo is
Peekaboo started as Peter Steinberger's project and now lives under the OpenClaw organization; the old steipete/Peekaboo address redirects there. It is a macOS CLI with a menu bar app and an optional MCP server for screen capture, accessibility inspection and native UI automation, for macOS 15 or later, MIT licensed. You can use it in three ways:
- As a CLI.
peekaboo seereturns a map of a window's elements, thenclick,type,press,scroll,drag,set-valueand more act on them. Commands also cover menus, the menu bar, dialogs, the Dock, windows and Spaces. - As an agent.
peekaboo agent "..."plans multi-step work itself, with a model provider you configure, hosted or local. - As an MCP server. The same tools are exposed to Codex, Claude Code, Cursor and other clients, usually started with
npx(Node.js 22 or later).
How Peekaboo handles background input
Peekaboo's automation guide is unusually precise, and worth reading in full. The short version:
- Background is the default when the target process is known. Clicks on elements, typing into a targeted app, menus, dialog buttons, window close and scrolling on an element are delivered without activating the app.
- Some input needs explicit foreground consent. Key chords without an exact window, cross-window or cross-app drops, modifier clicks, smooth or delayed scrolling, pointer moves and the human-style movement profile require
--foreground(orforeground: truein MCP). Dialog keyboard and file flows do too. - An extra permission for background keys. Besides Accessibility and Screen Recording, background keyboard input needs Event Synthesizing (permissions).
- No cursor in the background. Peekaboo's visualizer states that "targeted background input never emits cursor or input-HUD overlays". You see the result in the app, not where the agent is pointing.
Side by side
| Peekaboo | ShadowCursor | |
|---|---|---|
| What it is | CLI, menu bar app, built-in agent, MCP server | Mac app and MCP server |
| macOS | 15 or later | 15 or later; Windows 10 and 11 in beta |
| Background input | For targeted input when the process resolves; some actions need foreground consent | Background, also in covered windows |
| Visible cursor | No overlay for targeted background input | A cursor per agent, in its color with a name tag |
| Several agents at once | Not documented | Several, each with its own cursor, keyboard and clipboard |
| Clipboard | Commands read and write the system clipboard; plain text paste can type without it | A private clipboard per agent |
| Human-like movement | human profile, foreground only | Curved paths and human typing rhythm, in the background |
| Shell scripting without an AI | Yes, every tool is a CLI command | No, it serves MCP clients |
| Setup | Homebrew or npx, then MCP configuration in each client | App, two macOS permissions, one-click connection |
| License and price | MIT, free | 7-day trial, then $12.99 per month or $69.99 per year |
Sources: Peekaboo README, automation guide, MCP guide, human mouse movement, visualizer. Checked on 2026-10-20.
Where Peekaboo is stronger
- Free and open source. MIT licensed, readable, forkable. ShadowCursor has no free tier.
- A real CLI. Every action is a shell command, so you can write scripts, run them from cron or CI, and debug a step by hand before an agent ever touches it.
- Its own agent.
peekaboo agentworks without Claude Code or Codex, with the provider you choose, including local models. - More of macOS. Commands for Spaces, the Dock, menu bar items, window moving and resizing, and restoring a minimized window. ShadowCursor cannot see or operate minimized and hidden windows.
- Explicit safety contracts. Peekaboo refuses rather than guesses: ambiguous targets, stale snapshots and unverifiable effects are reported as such, and actions that could hit the frontmost app need consent.
Where ShadowCursor is different
- A visible cursor per agent, also in the background. Each agent's cursor glides to its target in its color with a name tag, so you can see which agent acts where while it works behind your windows.
- Several agents at once. Claude Code, Codex and Cursor can operate apps side by side, each with its own cursor, keyboard and clipboard. Peekaboo does not document concurrent agents. Why that matters is covered in running several AI agents at once.
- A clipboard per agent. Copies and pastes go to the agent's own clipboard. Peekaboo's clipboard commands and rich pastes use the system clipboard.
- Human movement in the background. Peekaboo's human profile needs foreground consent. ShadowCursor's pointer always moves in curves with slight overshoot and correction, and types at about 200 words per minute, so hover menus in Safari, sliders, date pickers and signature fields react as to a person.
- No configuration. ShadowCursor finds Claude, Codex, Cursor and VS Code and connects them with one click.
ShadowCursor's limits
- Minimized and hidden windows cannot be seen or operated. Covered windows can.
- System drag and drop of files, tabs or text follows the real mouse, so ShadowCursor cancels such drags instead of dropping.
- Hover without a pressed button works in Safari, not in Chrome or Electron apps.
- An agent cannot use a background tab of your browser window; it opens its own window.
- There is no CLI for scripts without an AI client, and no built-in agent: it serves the agent you already use.
Which one to choose
- Choose Peekaboo if you want open source, want to script Mac automation from the shell, want a built-in agent with your own model provider, or need Dock, Spaces and window management.
- Choose ShadowCursor if several agents should operate apps on your Mac at the same time, if you want to see each agent's cursor while it works in the background, if its copies and pastes must stay apart from yours, or if you want human-like input for websites.
- Not sure? Peekaboo is free and ShadowCursor has a 7-day trial without a card. Try both on the apps you use every day.
The roundup of macOS MCP servers lists more free options, and the comparison of Claude, Codex and ShadowCursor covers the built-in tools.
FAQ
Is Peekaboo free?
Yes. Peekaboo is MIT licensed and free. Its built-in agent needs a model provider you configure, which may cost money depending on the provider.
Does Peekaboo work in the background?
For targeted input, yes: when Peekaboo can resolve the target process, clicks, typing, menus and element scrolling reach the app without bringing it to the front. Key chords without an exact window, cross-window drags, pointer moves and human-style movement need explicit foreground consent.
Where did the steipete/Peekaboo repository go?
It moved to the OpenClaw organization at github.com/openclaw/Peekaboo, and the old address redirects there. The npm package is still @steipete/peekaboo.
Does Peekaboo show where the agent clicks?
With Peekaboo.app running, foreground and untargeted operations can show visual feedback. Targeted background input deliberately shows no cursor or input overlay. ShadowCursor draws each agent's cursor, in its color with a name tag, also when the agent works in the background.
What does ShadowCursor cost?
A 7-day free trial without a card, then $12.99 per month or $69.99 per year, with unlimited agents on up to three devices.