playwright-bot-bypass — скилл
Скилл запускает Playwright в настоящем Chrome с патчами rebrowser, чтобы автотесты на своих сайтах не принимали за бота
- 208 ★ репозитория
- Последний коммит
- MIT
Широкий доступ
Почему такой уровень
- Инструмент скрывает признаки автоматизации в браузере, поэтому использование против условий сайта может нарушать его правила и закон
- Запускает установленный Chrome в видимом окне и исполняет скрипты Node.js, которыми агент управляет страницами и вводом
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add skills/playwright-bot-bypassОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Инструмент скрывает признаки автоматизации в браузере, поэтому использование против условий сайта может нарушать его правила и закон
- Запускает установленный Chrome в видимом окне и исполняет скрипты Node.js, которыми агент управляет страницами и вводом
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Скилл playwright-bot-bypass учит агента запускать Playwright так, чтобы автоматизацию не выдавали типичные признаки режима «headless». Основа — `rebrowser-playwright` с исправлением утечки CDP `Runtime.enable`, настоящий Google Chrome через `channel: 'chrome'` с видимым окном и удаление служебного следа `window.__pwInitScripts` при каждой навигации. Подмены в `navigator` версия 2.2 убрала: по замерам автора каждая подмена создавала заметное противоречие в отпечатке. В комплекте фабрика `createStealthBrowser()`, помощники `humanType` и `simulateMouseMovement`, примеры (поиск Google, чтение публичной ленты) и скрипт проверки на публичных детекторах. Для Python описана связка с `undetected-chromedriver`. По замерам от 10 июня 2026 на macOS скилл проходит восемь публичных проверок отпечатка и автоматизации, среди них «sannysoft», «rebrowser», «browserscan» и «creepjs». Обычный Playwright на тех же страницах признан ботом.
Для кого. QA-инженерам и исследователям, которые автоматизируют собственные сайты или площадки с разрешенным тестированием и натыкаются на ложные блокировки режима «headless».
Подходит, если
- Автотест на собственном сайте падает на защите от ботов, потому что страница видит «headless» Chromium: настоящий Chrome в видимом окне убирает ложное срабатывание
- Проверка доступности должна показать страницу так, как ее видит обычный посетитель в Google Chrome
- Исследование публичных страниц Google, Reddit, YouTube, TikTok и X без входа упирается в стену для ботов: автор замерил, что скилл ее проходит
- Надо оценить, как защита вашего сайта относится к автоматизации: `bot-detection-test.mjs` прогоняет страницы-детекторы и выдает отчет
- Проект на Python: в скилле описана связка `undetected-chromedriver` с запуском `uc.Chrome()`
Не подходит, если
- Сайт чужой, а его условия запрещают автоматический доступ: автор допускает использование только на своих и разрешенных ресурсах
- Требуется обойти платный доступ или лимиты запросов либо собрать данные вопреки воле сайта: `SKILL.md` прямо исключает такое применение
- Среда без экрана, например сервер: режим `headless: false` обязателен, и без окна скрытность пропадает
- Защита сайта строится на репутации IP, поведенческом анализе или CAPTCHA вроде Turnstile, DataDome и Kasada: скилл с ними не справляется
Пример запроса к агенту
Открой наш стейджинг в настоящем Chrome через playwright-bot-bypass, пройди форму входа и сохрани скриншот страницы заказаОграничения
- Нужны Node.js 18 и новее, настоящий Google Chrome (одного Chromium мало) и дисплей: режим `headless: false` обязателен.
- Остается один след, `__playwright_builtins__`, который не убирает ни одна версия rebrowser.
- Замеры сделаны 10 июня 2026 на macOS с обычным домашним IP, на другой системе и в другой сети результат может отличаться.
- Для корпоративных менеджеров ботов с анализом CDP гарантий нет, а страницы с входом (Instagram, Facebook, LinkedIn) остаются закрытыми.
Как отключить. В Claude Code плагин снимается через `/plugin`, а скилл, поставленный через `npx skills`, удаляется вместе с папкой `playwright-bot-bypass` в каталоге скиллов. Установленный пакет `rebrowser-playwright` убирает `npm uninstall rebrowser-playwright`.
Частые вопросы
Как поставить playwright-bot-bypass в Claude Code?
Выполните `/plugin marketplace add greekr4/playwright-bot-bypass`, затем `/plugin install playwright-bot-bypass@playwright-bot-bypass`. Для запуска скриптов потом понадобится `npm install rebrowser-playwright`.
Как поставить скилл в Codex или Cursor?
Командой `npx skills add greekr4/playwright-bot-bypass`: она ставит скилл всем найденным агентам, а ключ `-a codex` оставляет только Codex. Вызывать его можно словами задачи или явно через `$playwright-bot-bypass`.
Какой код нужен для запуска?
Импортируйте `createStealthBrowser` из `./scripts/stealth-template.mjs`, получите `browser` и `page`, откройте страницу и в блоке `finally` вызовите `browser.close()`. Без закрытия процесс зависает.
Подойдет ли пакет playwright-stealth?
Автор советует его пропустить: он правит только JavaScript, поэтому WebGL по-прежнему выдает программный рендерер SwiftShader. Скилл полагается на настоящий Chrome и видеокарту.
Можно ли пользоваться скиллом из Python?
Да, установите `pip install undetected-chromedriver` и запускайте `uc.Chrome()`. Версия драйвера должна совпадать с версией Chrome, ее видно по адресу `chrome://version`.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
СкиллыMCP и CLI, которые дают агенту управлять вашим настоящим Chrome с его логинами и расширениями через Playwright
Anti-Detect Browser Skills (AntiBrow)
Anti-Detect Browser Skills
Четыре скилла AntiBrow: профили браузера с отпечатком устройства, MCP-режим для агента и сбор данных по готовым рецептам
BetterWright держит агенту постоянный браузер на Playwright с сетевыми правилами, хранилищем паролей и передачей шага человеку.
Локальный драйвер Playwright для вашего обычного Chromium-браузера: агент работает в живом профиле с логинами через расширение и relay
Playwright MCP от Automata Labs
MCP Server Playwright
MCP-сервер на Playwright для навигации по сайтам, кликов, заполнения форм, скриншотов и выполнения JavaScript в браузере
Превращает любой сайт в команду и дает агенту работать в уже залогиненном браузере пользователя через Playwright
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| playwright-bot-bypass (эта карточка) | нет | 208 | ||
| Playwright Skill | нет | 3 287 | пишет и запускает обычные скрипты Playwright для тестов, форм и скриншотов без маскировки автоматизации | |
| agent-browser | да | не нужна | 50 530 | CLI на Rust с снимками доступности и MCP-сервером для управления браузером агентами |
Коротко о README
Страница открывается заявлением о результате на публичных детекторах и пометкой, что инструмент создан для авторизованного использования. Дальше идут команды установки для Claude Code, Codex и Cursor, быстрый старт на JavaScript и Python, таблица того, что скилл проходит и чего не касается, сравнение с обычным Playwright на трех детекторах, устройство из трех слоев, требования и ссылки на использованные проекты.
Бейдж для README
Исходный SKILL.md
--- name: playwright-bot-bypass description: This skill should be used when the user asks to "bypass bot detection", "avoid CAPTCHA", "stealth browser automation", "undetected playwright", "bypass Google bot check", "rebrowser-playwright", or needs to automate websites that detect and block bots. version: 2.2.0 --- # Playwright Bot Bypass Reduce bot detection using rebrowser-playwright + real headed Chrome. Passes fingerprint checkers (bot.sannysoft.com, areyouheadless) and avoids triggering CAPTCHAs on Google. **Not** a guaranteed bypass for CDP/runtime-aware enterprise bot managers — see "Detection Coverage" for measured results. > **Authorized use only.** This is for QA, accessibility testing, and research on sites you own or are permitted to test. Respect each site's Terms of Service, `robots.txt`, and applicable law. Do not use it to bypass paywalls, abuse rate limits, or scrape against a site's stated wishes. ## How Detection Is Defeated (and by which layer) Evasion comes from **three** layers, not one — most of it is the real browser, not hand-written JS: | Detection Point | Standard Playwright (headless) | Defeated by | |-----------------|--------------------------------|-------------| | CDP / `Runtime.enable` leak | Present (headless tell) | **rebrowser + `REBROWSER_PATCHES_RUNTIME_FIX_MODE`** (auto-set) | | `window.__pwInitScripts` (`isPlaywright`) | Present | **artifact strip** (init script deletes it every nav) | | `navigator.webdriver` | `true` | **rebrowser** (reports `false`; we do NOT delete it — `undefined` is itself a tell) | | WebGL Renderer | SwiftShader (software) | **`channel:'chrome'` + headed mode** (real GPU) | | User Agent | Contains "HeadlessChrome" | **`channel:'chrome'`** (real Chrome UA) — no JS override | | Canvas fingerprint | Software-rendered tell | **headed real Chrome** (genuine GPU canvas) — no JS noise | | `navigator.plugins` | Empty array | **headed real Chrome** (genuine PluginArray) — no JS fake | | `navigator.languages` | `['en-US']` only | **`locale` option** (native, worker-consistent — no JS getter) | > **Why so little hand-written JS?** Across v2.1/v2.2 the old fake-PluginArray, canvas-noise, hardcoded-`hardwareConcurrency`, permissions-override, `webdriver` delete, and `navigator.languages` getter were all removed — every one created a *detectable inconsistency* (own-property tells, worker mismatches, `undefined` webdriver, an `Illegal invocation` crash). v2.2 keeps exactly **two** active measures: strip Playwright's `__pwInitScripts` artifact, and enable rebrowser's Runtime-fix. Everything else is the genuine, self-consistent real browser. Less faking = more consistent = harder to detect. ## Prerequisites - **Node.js 18+** with ESM support (`.mjs` files) - **Google Chrome** installed (not just Chromium) - **Headed mode** required (`headless: false`) — no display = no stealth Verify Chrome is installed: ```bash # macOS /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --version # Windows "C:\Program Files\Google\Chrome\Application\chrome.exe" --version # Linux google-chrome --version ``` ## Quick Start ### 1. Install ```bash npm init -y && npm install rebrowser-playwright ``` ### 2. Create `stealth-test.mjs`