playwright-bot-bypass — скилл

Скилл запускает Playwright в настоящем Chrome с патчами rebrowser, чтобы автотесты на своих сайтах не принимали за бота

  • 208 ★ репозитория
  • Последний коммит
  • MIT
Скилл

Широкий доступ

Почему такой уровень

  • Инструмент скрывает признаки автоматизации в браузере, поэтому использование против условий сайта может нарушать его правила и закон
  • Запускает установленный Chrome в видимом окне и исполняет скрипты Node.js, которыми агент управляет страницами и вводом
Все причины и проверки

greekr4/playwright-bot-bypass

Установка

В терминале, через 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

MCP-серверШирокий доступ4,1 тыс.Звезды репозитория

Anti-Detect Browser Skills (AntiBrow)

Anti-Detect Browser Skills

Официальный

Четыре скилла AntiBrow: профили браузера с отпечатком устройства, MCP-режим для агента и сбор данных по готовым рецептам

СкиллШирокий доступ21Звезды репозитория

BetterWright держит агенту постоянный браузер на Playwright с сетевыми правилами, хранилищем паролей и передачей шага человеку.

CLIШирокий доступ350Звезды репозитория

Локальный драйвер Playwright для вашего обычного Chromium-браузера: агент работает в живом профиле с логинами через расширение и relay

CLIШирокий доступ498Звезды репозитория

MCP-сервер на Playwright для навигации по сайтам, кликов, заполнения форм, скриншотов и выполнения JavaScript в браузере

MCP-серверШирокий доступ297Звезды репозитория

Превращает любой сайт в команду и дает агенту работать в уже залогиненном браузере пользователя через Playwright

CLIШирокий доступ31 тыс.Звезды репозитория

Сравнение с похожими

Карточки с тем же главным запросом: чем они отличаются.

ИнструментОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
playwright-bot-bypass (эта карточка)нет208
Playwright Skillнет3 287пишет и запускает обычные скрипты Playwright для тестов, форм и скриншотов без маскировки автоматизации
agent-browserдане нужна50 530CLI на 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`

Сообщить о проблеме