patchright is a free, open source data extraction & web scraping project written in TypeScript and released under Apache-2.0. It has 5,049 GitHub stars, 245 forks and 3 open issues, and was last pushed 11 hours ago. On this registry it ranks #46 of 150 tracked projects in Data Extraction & Web Scraping, with 5 head-to-head comparisons available. It gained 324 stars over the last 30 tracked days.

What is patchright?

Patchright is a patched, undetected version of the Playwright testing and automation framework, shipped as a driver and aimed at developers who need browser automation that anti-bot systems do not flag.

What it is

Patchright is a fork of the Playwright Testing and Automation Framework with patches applied to the browser itself. The repository serves the Patchright Driver — the patched engine — and is written in TypeScript under the Apache-2.0 licence. It is positioned as a drop-in replacement for Playwright, which means existing Playwright code is intended to run against it without being rewritten. The language bindings live outside this repository: a Python package, a NodeJS package, and a community-driven .Net package.

The concrete problem it solves is detection. Stock Playwright automates Chromium, but the traces it leaves behind let anti-bot and bot-management layers — Cloudflare among them, per the project's own topics — identify the session as automated and block it. Patchright patches Chromium-based browsers so those signals are not present, letting the same automation run against pages that would otherwise refuse it. The supported scope is narrow by design: only Chromium-based browsers are patched, and Firefox and WebKit are explicitly not supported.

Key capabilities

  • Acts as a drop-in replacement for Playwright, so existing Playwright scripts are the intended starting point rather than a new API.
  • Patches Chromium-based browsers for anti-detection; Firefox and WebKit are unsupported.
  • Targets Cloudflare and similar bot detection, reflected in the cloudflare and cloudflare-bypass topics.
  • Carries the antidetect topic, covering fingerprint and automation-signal suppression.
  • Distributed as the Patchright Driver, with separate patchright-python, patchright-nodejs, and community patchright-dotnet bindings.
  • Sits in the Chromium automation toolchain alongside chrome, chromium, and chromedriver.
  • Published under Apache-2.0, with 4,619 stars, 227 forks, and 3 open issues.

Who uses it and how

  • Web scraping and data extraction teams, which is the registry category the project is filed under.
  • Automation and botting workflows that hit Cloudflare-protected pages and need the session to survive the check.
  • Polyglot teams, since Python, NodeJS, and .Net bindings are each maintained separately from the driver.
  • Proxy-backed scraping operations: the README is sponsored by proxy providers offering residential, ISP, and mobile IPs, which indicates the typical pairing of patched browsing with rotating proxies.
  • Teams migrating from Playwright, who keep their existing scripts and change the driver underneath.

Getting started

Pick the binding for the language in use — the Python package, the NodeJS package, or the community .Net package — and use it as a drop-in replacement for Playwright; the driver repository itself is not the entry point. Documentation is hosted at playwright.dev.

How it compares

Playwright is the direct point of comparison, and Patchright keeps the same API and documentation while swapping in a patched Chromium driver. The trade is coverage for stealth: Patchright supports Chromium only, whereas Playwright also drives Firefox and WebKit.

When to use it — and when not to

Choose Patchright when the goal is Chromium automation that survives bot detection, and accept the upkeep of a patched driver that must track upstream Chromium changes. Do not choose it for cross-browser testing, for Firefox or WebKit targets, or for plain functional test suites where stock Playwright is sufficient. Note that the README excerpt is largely sponsor and proxy-provider material, so the substantive technical documentation lives in the companion language packages rather than in this repository.

project readme (upstream, from github) — read inline

🎭 Patchright

Patchright Version
Python Downloads NodeJS Downloads .Net Downloads

Patchright is a patched and undetected version of the Playwright Testing and Automation Framework.
It can be used as a drop-in replacement for Playwright.

[!NOTE]
This repository serves the Patchright Driver. To use Patchright, check out the Python Package, the NodeJS Package or the community-driven .Net Package

[!IMPORTANT]
Patchright only patches CHROMIUM based browsers. Firefox and Webkit are not supported.


Sponsors

Want to Sponsor this Project? Contact @vinyzu on Discord!

NodeMaven Banner

##### NodeMaven: Your efficient proxy provider for Web Scraping and Automation with High Quality IPs.


Why NodeMaven?

🎯 ZIP targeting
✅ 99.9% Uptime
🔍 IP Filtering: Proxies are guaranteed to have fraud score 🔰 No KYC required
🎉 Unique free tools: Proxy Bandwidth Checker, Meta Tag Checker, IP Lookup and others!

Special codes for Patchright users:
🔥 PATCHRIGHT35 - 35% off to Mobile and Residential Proxies
🔥 PATCHRIGHT40 - 40% off to ISP (Static) Proxies

Choose quality and stability with NodeMaven.


swiftproxy banner

Swiftproxy: High-Performance Residential Proxies for Scalable Data Collection

Built for developers who need reliable, anti-detection proxy infrastructure. Swiftproxy delivers stable connections, high success rates, and flexible control for large-scale scraping and automation.

  • 🌍 195+ locations with ethically sourced residential IPs
  • 🔄 Rotating & sticky sessions with precise geo-targeting
  • ⚡ Optimized for anti-ban & high success rate
  • 🔌 HTTP / HTTPS / SOCKS5 support
  • 🧪 Free 500MB trial for testing
  • 💸 Special discount code for Patchright users: PROXY90 - 10%

Best for: Web scraping, automation, multi-accounting, and large-scale data extraction


rapidproxy banner

RapidProxy provides a stable and high-performance proxy network built for large-scale data operations.

RapidProxy delivers:

  • 🌍 90M+ Residential IPs (200+ locations)
  • 🔄 Rotating Residential Proxies — from $0.65/GB (non-expiring traffic)
  • 🧩 Static Residential IPs — $5/IP (30 days, unlimited traffic)
  • 🎯 Precise geo-targeting
  • ⚡ Free Trial Available — test proxy performance risk-free
  • Built for scraping, automation, and high-performance data workflows.
  • 🔥 Special Offer: Use code RAPID10 to get 10% off

Start fast. Scale globally. Stay stable with RapidProxy.


Scrappey

Sponsored by Scrappey

Getting the browser past detection is one problem. Keeping proxies rotating, fingerprints current and sessions alive across a few million requests is a different one. Scrappey takes the second problem: one endpoint, solved pages back.

  • Clearcote — our own patched Chromium, maintained in-house, not a stock build
  • Several engines behind one endpoint — blocked on one stack, routed to another
  • Click, type, wait and scroll over the API — a real session, not a fetch proxy
  • Residential and datacenter proxies included, or bring your own
  • Per request, no monthly minimum
curl -X POST "https://publisher.scrappey.com/api/v1?key=YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"cmd": "request.get", "url": "https://example.com"}'

Get 10% off with code PATCHRIGHT

Documentation · Discord · Get an API key


Patches

Runtime.enable Leak

This is the biggest Patch Patchright uses. To avoid detection by this leak, patchright avoids using Runtime.enable by executing Javascript in (isolated) ExecutionContexts.

Console.enable Leak

Patchright patches this leak by disabling the Console API all together. This means, console functionality will not work in Patchright. If you really need the console, you might be better off using Javascript loggers, although they also can be easily detected.

Command Flags Leaks

Patchright tweaks the Playwright Default Args to avoid detection by Command Flag Leaks. This (most importantly) affects:

  • --disable-blink-features=AutomationControlled (added) to avoid navigator.webdriver detection.
  • --enable-automation (removed) to avoid navigator.webdriver detection.
  • --disable-popup-blocking (removed) to avoid popup crashing.
  • --disable-component-update (removed) to avoid detection as a Stealth Driver.
  • --disable-default-apps (removed) to enable default apps.
  • --disable-extensions (removed) to enable extensions

General Leaks

Patchright patches some general leaks in the Playwright codebase. This mainly includes poor setups and obvious detection points.

Closed Shadow Roots

Patchright is able to interact with elements in Closed Shadow Roots. Just use normal locators and Patchright will do the rest.
Patchright is now also able to use XPaths in Closed Shadow Roots.


Stealth

With the right setup, Patchright currently is considered undetectable. Patchright passes:


Bugs

Even though we have spent a lot of time to make Patchright as stable as possible, bugs may still occur. If you encounter any bugs, please report them in the Issues.
Patchright is now tested against the Playwright Tests after every release. See here

[!WARNING]
Patchright passes most, but not all the Playwright tests. Some bugs are considered impossible to solve, some are just not relevant. See the list of bugs and their explanation here.

Based on the Playwright Tests, we concluded that its highly unlikely that you will be affected by these bugs in regular usecases.
Init Script Shenanigans

Explanation

To be able to use InitScripts without Runtime.enable, Patchright uses Playwright Routes to inject JavaScript into HTML requests.

Bugs

Playwright Routes may cause some bugs in other parts of your code. Patchright InitScripts won't cause any bugs that wouldn't be caused by normal Playwright Routes.
If you want any of these bugs fixed, you'll have to contact the Playwright team.

Leaks

Patchright InitScripts can be detected by Timing Attacks. However, no antibot currently checks for this kind of Timing Attack and they probably won't for a good amount of time.
We consider them not to be a big risk of detection.


TODO

  • Implement Option to choose Execution Context (Main/Isolated).
  • Fix Fixable Bugs.
  • Implement .patch Updater to easily show Patchright's patches.
  • Setup Automated Testing on new Release.
  • Implement Patchright on .NET.
  • Implement Patchright on Java.

Development

Deployment of new Patchright versions are automatic, but bugs due to Playwright codebase changes may occur. Fixes for these bugs might take a few days to be released.


Support our work

If you choose to support our work, please contact @vinyzu or @steve_abcdef on Discord.


Copyright and License

© Vinyzu

Patchright is licensed Apache 2.0

Some Parts of the Codebase are inspired by Driverless. Thanks to Nick Webson for the idea of .patch-File Documentation.


Disclaimer

This repository is provided for educational purposes only.
No warranties are provided regarding accuracy, completeness, or suitability for any purpose. Use at your own risk—the authors and maintainers assume no liability for any damages, legal issues, or warranty breaches resulting from use, modification, or distribution of this code.
Any misuse or legal violations are the sole responsibility of the user.


Authors

Active Maintainer: Vinyzu
Co-Maintainer: Kaliiiiiiiiii

Frequently asked questions

Is patchright free to use?

patchright is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does patchright do?

Undetected version of the Playwright testing and automation library.

What is patchright written in?

patchright is primarily written in TypeScript. Its source is publicly available at https://github.com/Kaliiiiiiiiii-Vinyzu/patchright, and it has 5,049 GitHub stars.