---
id: zendriver
version: "0.15.5"
license: GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this… (full text in the JSON record)
license_treatment: agpl
maintenance: active
---
# zendriver — A blazing fast, async-first, undetectable webscraping/web automation framework
License: agpl · Maintenance: active · Downloads: 119.2K/mo
## What it is and what it does
Zendriver is a Python web automation library built on Chrome DevTools Protocol (CDP) rather than Selenium/WebDriver. It provides an async-first API for visiting websites, scraping content, executing JavaScript, and taking screenshots using a real Chrome browser. The package is a maintained fork of nodriver, created to incorporate unmerged bugfixes and enable community contributions.
The library targets developers who need browser automation with lower detection risk and async support. It handles element lookup by selector or text (including iframe content), automatic cookie and profile management, and includes Docker support for containerized deployments. Dependencies include asyncio-atexit, deprecated, emoji, grapheme, mss, and websockets. It requires Python 3.10 or later and a system Chrome/Chromium installation.
Use it for:
- Scrape JavaScript-heavy websites where static HTTP requests fail or return incomplete content.
- Automate login flows and session management by saving and reloading cookies across runs.
- Test web applications by simulating user interactions and verifying rendered output.
- Extract data from sites with anti-bot detection that blocks Selenium/WebDriver.
- Run browser automation in Docker containers with GPU-accelerated Chrome.
## Worth the install?
AI-flagged interpretation of the facts above — verify before relying.
Zendriver is an async-first web automation framework using Chrome DevTools Protocol to scrape content, run JavaScript, and interact with websites in a real browser without Selenium or WebDriver.
Yes, with conditions. Install if you need async browser automation with lower detection risk and can accept AGPL v3 licensing constraints. The low install friction, active maintenance, and zero known vulnerabilities are strong signals. However, Alpha status means the API may change; verify that the current feature set and stability match your production requirements before committing to it in a long-lived project.
## Install
pip install zendriver
uv add zendriver
poetry add zendriver
## Installing zendriver
Before you install: Low install friction with a pure-Python wheel and six runtime dependencies. Actively maintained with a release 30 days ago. Marked as Alpha status, so expect ongoing API changes.
License in practice: Licensed under GNU AGPL v3, which requires that if you modify zendriver or run it as a network service, you must make your modified source code available to users. This is a copyleft obligation stricter than permissive licenses; internal-only use is not restricted.
Quickstart:
import asyncio
import zendriver as zd
async def main():
browser = await zd.start()
page = await browser.get("https://example.com")
await page.save_screenshot("example.png")
await browser.stop()
asyncio.run(main())
Requires Chrome/Chromium browser installed on the system; Python 3.10 or later.
Verify before relying:
- Actual detection evasion effectiveness against specific anti-bot solutions (claimed as 'almost impossible to detect').
- Performance benchmarks comparing to Selenium/WebDriver to verify 'much faster' claim.
- Stability and API maturity given Alpha development status and recent fork from nodriver.
## Package facts
- License: GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this… (full text in the JSON record) (agpl)
- Python support: supports_current
- Install friction: low
- Maintenance: active
- Downloads: 119.2K/month (top 15,000 on PyPI)
- Known vulnerabilities: none known
## Tags
web scraping automation, browser automation python, chrome devtools protocol, async web automation, undetectable web scraping, javascript execution browser, headless browser alternative, browser-automation, web-scraping, async-first
[View on SkillFed](https://skillfed.io/packages/zendriver) · [View on PyPI](https://pypi.org/project/zendriver/)