Expect — скилл
Скилл проверки кода агента в настоящем браузере: читает ваши изменения, составляет план теста и прогоняет его через Playwright с вашими куки
- 3 561 ★ репозитория
- Последний коммит
Широкий доступ
Почему такой уровень
- По умолчанию инструмент извлекает куки вашего браузера и открывает страницы под вашими учетными записями, отключается флагом `--no-cookies`
- Скилл запускает подагентов и управляет браузером: кликает, заполняет формы и выполняет код на страницах
- Установка идет через init-скрипт, который агент загружает с сайта
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add skills/expectОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- По умолчанию инструмент извлекает куки вашего браузера и открывает страницы под вашими учетными записями, отключается флагом `--no-cookies`
- Скилл запускает подагентов и управляет браузером: кликает, заполняет формы и выполняет код на страницах
- Установка идет через init-скрипт, который агент загружает с сайта
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Expect — скилл и консольная утилита `expect-cli` от Million Software. Он читает изменения в git, составляет по ним план проверки и прогоняет его в настоящем браузере через Playwright. Запускается команда /expect внутри Claude Code, Codex, GitHub Copilot, Gemini CLI, Cursor, OpenCode или Factory Droid, и Expect запускает подагентов, которые изображают реальных залогиненных пользователей. Найденные проблемы агент исправляет и перезапускает проверку. Среди проверок производительность (длинные кадры анимации, INP, LCP), безопасность (зависимости npm, CSRF, уязвимости), дизайн (сломанные состояния наведения, ссылки и кнопки) и полнота приложения (метаданные, мертвые ссылки). По умолчанию браузер открывается в окне, но есть режим без окна, подключение к уже запущенному Chrome по CDP и повторное использование профиля Chrome. Параметр `--ci` и команда `add github-action` переносят проверку в CI на каждый запрос на слияние.
Для кого. Для фронтенд-разработчиков и тестировщиков, которые правят интерфейс вместе с агентом и хотят проверять результат в браузере без написания скриптов.
Подходит, если
- Агент поправил компонент или форму, и нужно убедиться, что страница работает в браузере
- Вы не хотите поддерживать селекторы и утверждения в тестах Playwright или Cypress для каждой правки
- Нужен прогон под залогиненным пользователем с куки из вашего браузера
- Каждый запрос на слияние должен проверяться в CI автоматически, без окна браузера
- Хочется быстро проверить LCP, INP, мертвые ссылки и метаданные нового экрана
Не подходит, если
- Нужно тестировать мобильное приложение: поддержка мобильных устройств еще не вышла
- Тест нужно запускать без доступа к вашим куки: отключите извлечение флагом `--no-cookies` или не берите инструмент
- Нужен детерминированный регрессионный набор с фиксированными шагами: план генерирует агент под каждую правку
- Ваш агент не входит в список поддерживаемых: Expect выбирает его автоматически среди семи провайдеров
Пример запроса к агенту
/expect Проверь форму входа после моих правок: ошибки валидации, редирект после логина и мертвые ссылки на страницеОграничения
Лицензия FSL-1.1-MIT, не чистая MIT, поэтому перед коммерческим использованием прочитайте ее условия. Поддержка мобильного тестирования и размещенная версия пока анонсированы как «скоро». Для работы нужен установленный агент из списка: Claude Code, Codex, GitHub Copilot, Gemini CLI, Cursor, OpenCode или Factory Droid. Результат зависит от плана, который строит модель, и от состояния вашего dev-сервера. Режим CI работает без куки, с автоматическим подтверждением плана и ограничением в 30 минут.
Как отключить. Удалите скилл expect из каталога скиллов вашего агента и снимите пакет командой `npm uninstall -g expect-cli`, если ставили его глобально. Workflow для GitHub Actions удалите из .github/workflows.
Частые вопросы
Как поставить Expect в Claude Code?
Попросите агента: «Fetch https://www.expect.dev/ and run init script». После установки в сессии Claude Code, Codex или другого поддерживаемого агента доступна команда /expect.
Чем Expect отличается от Playwright и Cypress?
В Playwright и Cypress вы пишете скрипты, поддерживаете селекторы и утверждения. Expect читает изменения кода, сам строит план проверки и запускает его в браузере через Playwright. Для разовой проверки правки не нужно писать ни одного теста.
Чем Expect отличается от агентов, которые управляют компьютером?
Общие инструменты работают по скриншотам и координатам мыши. Expect создан для тестов: быстро управляет DOM через Playwright, учитывает ваши правки, запускается с вашими куки и возвращает агенту отчет о том, что сломано.
Работает ли Expect в CI?
Да. Флаг `--ci` или команда `add github-action` запускают проверку без окна браузера и без куки, с автоматическим подтверждением плана и ограничением в 30 минут.
Какой агент использует Expect, если установлено несколько?
Он определяет доступные в `PATH` агенты автоматически и берет первый найденный. Конкретного провайдера задает параметр `-a`: `claude`, `codex`, `copilot`, `gemini`, `cursor`, `opencode` или `droid`.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
СкиллыСкилл, с которым агент пишет и запускает скрипты Playwright: тесты страниц, формы, скриншоты, проверки ссылок
Playwright CLI
playwright-cli
Официальный CLI Playwright со скиллом для агентов: управление браузером короткими командами без тяжелых MCP-схем
Набор QA-агентов, скиллов и MCP-сервер: генерация тестов, поиск пробелов в покрытии, нестабильные тесты, безопасность и хаос-тестирование
Скилл состязательного аудита кода: Hunter ищет ошибки, Skeptic их оспаривает, Referee выносит вердикт, а правки без вашего разрешения не вносятся
MCP-сервер, агент и скиллы для сквозных UI-тестов: агент управляет компьютером через компьютерное зрение на облачных машинах
Один бинарник для автоматизации браузера агентом: CLI со скиллами browser и check, MCP-сервер и клиенты для JS, Python и Java
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
| Запись | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| Expect (эта запись) | нет | 3 561 | ||
| Playwright CLI | да | 14 557 | официальный CLI Playwright, которым агент управляет браузером командами; плана проверки под правки нет | |
| BrowserTools MCP | нет | не нужна | 7 330 | отдает агенту консоль, сеть и аудиты Lighthouse открытого Chrome, но сам тесты не строит |
Коротко о README
Краткое введение называет Expect скиллом для проверки кода агента в браузере и дает четыре шага запуска. Дальше идут ответы на вопросы о сравнении с Playwright и агентами для управления компьютером, о CI и мобильном тестировании. Таблицы описывают параметры командной строки и семь поддерживаемых агентов с командами их установки. Заканчивается раздел благодарностей проекту `dev-browser`.
Бейдж для README
Исходный SKILL.md
---
name: expect
description: "Use when editing .tsx/.jsx/.css/.html, React components, pages, routes, forms, styles, or layouts. Also when asked to test, verify, validate, QA, find bugs, check for issues, or fix expect-cli failures."
license: MIT
metadata:
author: millionco
version: "2.4.0"
---
# Expect
You verify code changes in a real browser before claiming they work. No browser evidence, no completion claim.
Use the expect MCP tools (`open`, `playwright`, `screenshot`, etc.) for all browser interactions. Do not use raw browser tools (Playwright MCP, chrome tools, etc.) unless the user explicitly asks.
## Subagent Usage
Browser verification is best run in a subagent (Task tool) or background shell so the main thread stays free for code edits. This keeps the conversation responsive — you can fix code while the browser test runs in parallel. Strongly prefer launching a subagent for browser work, especially when the test involves multiple steps or long interactions. If the test is truly trivial (single screenshot check), inline is acceptable.
## Resuming Browser State
Before opening a new browser, check if one is already running. Use `browser_tabs` (action `list`) or the expect `screenshot` tool to see if a session is still active. If a tab is already open at the target URL, reuse it — don't close and reopen. When re-verifying after a code fix, prefer navigating or refreshing the existing session over starting from scratch.
## Compounding
The `playwright` tool takes a `code` string with `ref()` to resolve snapshot refs to Locators. One call can do an entire interaction — fills, clicks, AND data collection. Use that.
**BAD — 5 tool calls:**
```
screenshot (snapshot)
playwright: await ref('e3').fill('Jane')
screenshot (snapshot) ← WHY? page didn't change
playwright: await ref('e5').fill('jane@example.com')
playwright: await ref('e7').click()
```
**GOOD — 2 tool calls:**
```
screenshot (snapshot)
playwright (snapshotAfter=true):
await ref('e3').fill('Jane');
await ref('e5').fill('jane@example.com');
await ref('e7').click();