MCP-сервер для macOS: AI-агент делает скриншоты любых окон и управляет GUI — кликает, печатает, скроллит, перетаскивает элементы. Не автоматизация через API, а полноценное управление экраном как живой пользователь.
# Требуется: macOS 14+
# Установка через Homebrew:
brew install steipete/tap/peekaboo
# Claude Desktop — claude_desktop_config.json:
{ "mcpServers": { "peekaboo": { "command": "peekaboo", "args": ["mcp"] } } }
# Claude Code (CLI):
claude mcp add peekaboo -- peekaboo mcp
# OpenCode — ~/.config/opencode/opencode.json:
{ "mcp": { "peekaboo": { "type": "local", "command": ["peekaboo", "mcp"] } } }

Peekaboo предоставляет высокоточное захват экрана, ИИ-анализ и полную автоматизацию GUI для macOS. Версия 3 добавляет нативные потоки агента и автоматизацию для нескольких экранов через CLI и MCP-сервер.
set-value, perform-action).bash
brew install steipete/tap/peekaboobash
npx -y @steipete/peekaboo# Захват всего экрана в масштабе Retina и сохранение на Рабочий стол
peekaboo image --mode screen --retina --path ~/Desktop/screen.png
# Захват текущего состояния UI, затем копирование его снимка и непрозрачных ID элементов
peekaboo see --app Safari --json
SNAPSHOT="<snapshot-id>"
TEXT_FIELD_ID="<text-field-id>"
BUTTON_ID="<button-id>"
# Клик по кнопке по названию
peekaboo click --on "Reload this page" --snapshot "$SNAPSHOT"
# Прямая установка значения текстового поля, когда значение доступности устанавливается
peekaboo set-value --on "$TEXT_FIELD_ID" --value "hello" --snapshot "$SNAPSHOT"
# Вызов именованного действия доступности на элементе
peekaboo perform-action --on "$BUTTON_ID" --action AXPress --snapshot "$SNAPSHOT"
# Запуск автоматизации на естественном языке
peekaboo agent "Open Notes and create a TODO list with three items"
# Запуск как MCP-сервер (Codex, Claude Code, Cursor)
npx -y @steipete/peekaboo
# Минимальный фрагмент конфигурации MCP-клиента:
# {
# "mcpServers": {
# "peekaboo": {
# "command": "npx",
# "args": ["-y", "@steipete/peekaboo"],
# "env": {
# "PEEKABOO_AI_PROVIDERS": "openai/gpt-5.5,anthropic/claude-opus-4-8"
# }
# }
# }
# }
Peekaboo может генерировать завершения для нативных оболочек напрямую из тех же метаданных Commander, которые поддерживают справку CLI и документацию:
# Текущая оболочка (рекомендуется)
eval "$(peekaboo completions $SHELL)"
# Явное указание оболочек
eval "$(peekaboo completions zsh)"
eval "$(peekaboo completions bash)"
peekaboo completions fish | source
Для постоянной настройки и устранения неполадок см. docs/commands/completions.md.
click, type, press, hotkey и paste по умолчанию используют доставку в фоне, когда Peekaboo может определить целевой процесс по --app, --pid, --window-id или метаданным снимка. Фоновая доставка отправляет целевой ввод процессу без передачи целевому приложению переднего фокуса, поэтому скрипты могут взаимодействовать с Safari, Заметками, Терминалом и т.д., не перехватывая фокус.
Используйте --foreground, когда приложение принимает ввод только в своем активном ключевом окне, когда вам нужен реальный событие мыши на переднем плане, или когда вы намеренно управляете текущим фокусом. Флаги фокуса, такие как --space-switch и --bring-to-current-space, также подразумевают доставку на передний план. Клики по элементам/запросам сначала используют действия Доступности; ввод с клавиатуры, клики по координатам и резервный синтетический клик требуют Синтеза Событий для отправляющего процесса. Запустите peekaboo permissions request-event-synthesizing, если permissions status сообщает о его отсутствии.
# Фоновый режим: цель — Safari без его активации
peekaboo click "Address and search bar" --app Safari
peekaboo type "github.com/openclaw/Peekaboo" --app Safari --return
peekaboo click "Address and search bar" --app Safari --foreground
peekaboo type "github.com/openclaw/Peekaboo" --app Safari --return --foreground
| Команда | Ключевые флаги / подкоманды | Что делает |
|---|---|---|
| see | --app, --mode screen/window, --retina, --json |
Захват и аннотирование интерфейса, возврат снимка + идентификаторов элементов |
| click | --on <id/query>, --snapshot, --wait-for, --coords, --foreground |
Клик по идентификатору, метке или координатам элемента |
| type | --text, --clear, --profile, --delay, --foreground |
Ввод текста с опциями скорости |
| set-value | --on <id/query>, --value, --snapshot |
Непосредственная установка доступного значения |
| perform-action | --on <id/query>, --action, --snapshot |
Вызов именованного действия доступности |
| press | названия клавиш, --count, --delay, --hold, --foreground |
Специальные клавиши и последовательности |
| hotkey | комбинации типа cmd,shift,t, --foreground |
Комбинации с модификаторами (cmd/ctrl/alt/shift) |
| paste | текст/файл/изображение, --restore-delay-ms, --foreground |
Вставка с восстановлением буфера обмена |
| scroll | --on <id>, --direction up/down, --amount |
Прокрутка видов или элементов |
| swipe | --from/--to, --duration, --steps |
Плавные перетаскивания в стиле жестов |
| drag | --from/--to, модификаторы, цели Dock/Trash |
Перетаскивание между элементами/координатами |
| move | --to <id/coords>, --screen-index |
Перемещение курсора без клика |
| window | list, move, resize, focus, set-bounds |
Перемещение/изменение размера/фокусировка окон и пространств |
| app | launch, quit, relaunch, switch, list |
Запуск, завершение, перезапуск, переключение приложений |
| space | list, switch, move-window |
Вывод списка или переключение пространств macOS |
| menu | list, list-all, click, click-extra |
Вывод списка/клик по меню приложений и дополнительным пунктам |
| menubar | list, click |
Обращение к элементам строки состояния по имени/индексу |
| dock | launch, right-click, hide, show, list |
Взаимодействие с элементами Dock |
| dialog | list, click, input, file, dismiss |
Управление системными диалогами (открытие/сохранение и т.д.) |
| image | --mode screen/window/menu, --retina, --analyze |
Снимок экрана/окна/панели меню (+анализ) |
| list | apps, windows, screens, menubar, permissions |
Перечисление приложений, окон, экранов, разрешений |
| tools | --verbose, --json, --no-sort |
Инспекция встроенных инструментов Peekaboo |
| completions | [shell] |
Генерация скриптов автодополнения для zsh/bash/fish из метаданных Commander |
| config | init, show, add, login, models |
Управление учётными данными/провайдерами/настройками |
| permissions | status, grant, request-screen-recording, request-event-synthesizing |
Проверка/предоставление необходимых разрешений macOS |
| run | .peekaboo.json, --output, --no-fail-fast |
Выполнение скриптов автоматизации .peekaboo.json |
| sleep | --duration (мс) |
Задержки в миллисекундах между шагами |
| clean | --all-snapshots, --older-than, --snapshot |
Очистка снимков и кэшей |
| agent | --model, --dry-run, --resume, --max-steps, аудио |
Многошаговая автоматизация на естественном языке |
| mcp | serve (по умолчанию) |
Запуск Peekaboo как MCP-сервера |
Список провайдеров Peekaboo обновляется вместе с Tachikoma и каталогом протестированных моделей. Смотрите docs/providers.md для актуального справочника по провайдерам, включая OpenAI, Anthropic, xAI/Grok, Google Gemini, MiniMax, Kimi, Ollama, LM Studio и совместимые пользовательские конечные точки.
Настройка провайдеров через PEEKABOO_AI_PROVIDERS или peekaboo config add.
Настройки генерации агента находятся в agent.temperature и agent.maxTokens в файле ~/.peekaboo/config.json; интерфейс настроек macOS читает и записывает те же значения.
pnpm install, затем pnpm run build:cli или pnpm run test:safe.pnpm run lint && pnpm run format.MIT