Zorilla is a modular plugin framework that extends Puppeteer and Playwright with additional functionality through a clean plugin architecture. Build powerful browser automation with composable plugins for stealth mode, captcha solving, ad blocking, and much more.
Note
About this fork: This project is a maintained hard fork of the excellent puppeteer-extra originally created by Tobias Buschor (@berstend). The original project pioneered the modular plugin architecture for Puppeteer. This fork exists to continue maintenance, provide bug fixes, and keep dependencies up to date with modern Puppeteer and Playwright versions. All credit for the original architecture and design goes to the original puppeteer-extra team.
| Package | Description | Version |
|---|---|---|
@zorilla/puppeteer-extra |
Modular plugin framework for Puppeteer | |
@zorilla/playwright-extra |
Modular plugin framework for Playwright | |
@zorilla/puppeteer-extra-plugin |
Base class for creating puppeteer-extra plugins |
| Package | Description | Version |
|---|---|---|
@zorilla/puppeteer-extra-plugin-stealth |
Apply various techniques to make headless detection harder | |
@zorilla/puppeteer-extra-plugin-recaptcha |
Automatically solve reCAPTCHAs and hCaptchas | |
@zorilla/puppeteer-extra-plugin-adblocker |
Block ads and trackers using Cliqz adblocker | |
@zorilla/puppeteer-extra-plugin-block-resources |
Block resources like images, media, fonts, etc. | |
@zorilla/puppeteer-extra-plugin-anonymize-ua |
Anonymize and customize the User-Agent header | |
@zorilla/puppeteer-extra-plugin-user-preferences |
Launch with arbitrary Chrome user preferences | |
@zorilla/puppeteer-extra-plugin-user-data-dir |
Manage custom user data directories | |
@zorilla/puppeteer-extra-plugin-repl |
Start an interactive REPL for debugging | |
@zorilla/puppeteer-extra-plugin-devtools |
Remote debugging with secure DevTools tunnels | |
@zorilla/puppeteer-extra-plugin-flash |
Allow Flash on all sites without user interaction | |
@zorilla/puppeteer-extra-plugin-font-size |
Adjust font sizes in the browser | |
@zorilla/puppeteer-extra-plugin-click-and-wait |
Wait for navigation to complete after clicking | |
@zorilla/proxy-router |
Route proxies dynamically in Puppeteer & Playwright |
| Package | Description | Version |
|---|---|---|
@zorilla/extract-stealth-evasions |
Extract stealth evasions as standalone JavaScript |
@zorilla/stealth-tests provides deterministic,
Zorilla-owned stealth probes for Chromium through Puppeteer and Playwright. CI
release-gates these probes and publishes versioned JSON plus human-readable
Markdown reports. See the stealth test documentation
for local commands and the result metadata contract.
npm install puppeteer @zorilla/puppeteer-extra @zorilla/puppeteer-extra-plugin-stealthimport puppeteer from '@zorilla/puppeteer-extra'
import StealthPlugin from '@zorilla/puppeteer-extra-plugin-stealth'
puppeteer.use(StealthPlugin())
const browser = await puppeteer.launch({ headless: true })
const page = await browser.newPage()
await page.goto('https://example.com')
await browser.close()npm install playwright @zorilla/playwright-extra @zorilla/puppeteer-extra-plugin-stealthimport { chromium } from '@zorilla/playwright-extra'
import StealthPlugin from '@zorilla/puppeteer-extra-plugin-stealth'
chromium.use(StealthPlugin())
const browser = await chromium.launch()
const page = await browser.newPage()
await page.goto('https://example.com')
await browser.close()We welcome contributions! Read the Contributing Guide β
To report a vulnerability, please follow the Security Policy and avoid filing public issues for suspected security problems.