tf-playwright-stealth
Makes playwright stealthy like a ninja!
Decision gist · record as of 2026-08-14
Yes, if you need to run Playwright against sites with bot detection. The package has low install friction, active maintenance, a permissive MIT license, no known vulnerabilities, and a clear single purpose. Be aware that stealth measures are inherently an arms race—detection techniques evolve, and this package's effectiveness depends on staying ahead of that curve.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Playwright to be installed and a Chromium browser available; intended for Python 3.9 or later.
- Low friction installation with only two runtime dependencies (playwright and fake-http-header).
- The package is actively maintained with a recent commit on 2026-08-09 and has been in active development since its first release on 2024-03-07.
License · maintenance · safety
MIT (permissive) — MIT license permits commercial and private use with minimal restrictions, requiring only that you retain the license notice in distributions.
last release 2025-06-13 (427 days) · last repo commit 2026-08-09 · 219 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 639,192 downloads/mo, #5,616 on PyPI
Alternatives
Verify before relying
pip install tf-playwright-stealth
from playwright.sync_api import sync_playwright
from tf_playwright_stealth import stealth_sync
with sync_playwright() as p:
browser = p.chromium.launch(headless=True)
page = browser.new_page()
stealth_sync(page)
page.goto("https://example.com")
browser.close()- Effectiveness against specific bot-detection systems or services beyond the bot.sannysoft.com test shown in the description.
- Whether stealth measures remain effective as detection techniques evolve or as Playwright itself is updated.
- Performance overhead introduced by stealth spoofing compared to unpatched Playwright usage.
What it is and what it does
tf-playwright-stealth wraps Playwright's page object to inject browser-spoofing logic that masks the telltale signs of automated browser control. It patches navigator properties, disables headless indicators, and injects realistic HTTP headers via its fake-http-header dependency to make Playwright-driven browsers appear more like genuine user agents. The package is a port of puppeteer-extra-plugin-stealth and provides both synchronous and asynchronous APIs that integrate directly into Playwright's existing workflow.
You install it alongside Playwright, then call stealth_sync() or stealth_async() on a page object before navigating to your target. It does not change how you write Playwright code—it simply adds evasion layers to reduce detection risk. The package is actively maintained, supports Python 3.9 through 3.13, and carries no known security vulnerabilities.
Use it for
- Web scraping sites that block or challenge automated access by detecting headless browser signatures.
- Automated testing of anti-bot systems to verify their detection logic works as intended.
- Legitimate browser automation tasks on sites that require human-like browser behavior to function correctly.
- Gathering data from pages that serve different content to bots versus human browsers.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need to run Playwright against sites with bot detection.
The package has low install friction, active maintenance, a permissive MIT license, no known vulnerabilities, and a clear single purpose. Be aware that stealth measures are inherently an arms race—detection techniques evolve, and this package's effectiveness depends on staying ahead of that curve.
Install
tf-playwright-stealth on PyPI
Before you install
Low friction installation with only two runtime dependencies (playwright and fake-http-header). The package is actively maintained with a recent commit on 2026-08-09 and has been in active development since its first release on 2024-03-07.
Requires Playwright to be installed and a Chromium browser available; intended for Python 3.9 or later.
License in practice
MIT license permits commercial and private use with minimal restrictions, requiring only that you retain the license notice in distributions.
Quickstart
pip install tf-playwright-stealth
from playwright.sync_api import sync_playwright
from tf_playwright_stealth import stealth_sync
with sync_playwright() as p:
browser = p.chromium.launch(headless=True)
page = browser.new_page()
stealth_sync(page)
page.goto("https://example.com")
browser.close()
Verify before relying
- Effectiveness against specific bot-detection systems or services beyond the bot.sannysoft.com test shown in the description.
- Whether stealth measures remain effective as detection techniques evolve or as Playwright itself is updated.
- Performance overhead introduced by stealth spoofing compared to unpatched Playwright usage.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release <4.0,>=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 2 packagesplaywrightfake-http-header |
| Maintenance | Actively maintained 427 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 639,192 / month, #5,616 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9 |
Evidence: tf_playwright_stealth-1.2.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “stealth browser automation”
- tf-playwright-stealthPatches Playwright to evade bot-detection systems by spoofing browser…
- cloakbrowserLaunches a stealth Chromium browser that evades bot detection by…
- rebrowser-playwrightA patched version of Playwright that automates Chromium, Firefox, and…
Give your agent the search over MCP, or paste the wish link into any chat.
More WWW/HTTP packages
urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.
Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.
h11 is a pure-Python HTTP/1.1 protocol implementation that handles parsing and serializing HTTP messages without any built-in I/O, letting you integrate it with any network layer you choose.
HTTPX is a fully featured HTTP client library for Python that provides both sync and async APIs, with support for HTTP/1.1 and HTTP/2, plus an integrated command-line client.
Install it if you are building new projects or modernizing existing ones that rely on HTTP.
A minimal low-level HTTP client library that sends HTTP requests with thread-safe and task-safe connection pooling, supporting HTTP/1.1, HTTP/2, proxies, and both sync and async interfaces.
aiohttp is an async HTTP client and server framework built on asyncio, supporting both WebSockets and middleware-based routing for building concurrent web applications.
Install it if you need async HTTP client or server capabilities in asyncio-based applications.
See also cloakbrowser · playwright-stealth · recognizer · patchright · selenium-stealth · camoufox · rebrowser-playwright · stagehand · playwright · axe-playwright-python