---
id: nodriver
version: "0.50.3"
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
---
# nodriver — [Docs here](https://ultrafunkamsterdam.github.io/nodriver)
License: agpl · Maintenance: active · Downloads: 405.6K/mo
## What it is and what it does
nodriver automates browser interactions by communicating directly with Chrome DevTools Protocol instead of using WebDriver or Selenium, which reduces detection signatures. It is fully asynchronous and designed to work with chromium, chrome, edge, and brave. The library aims to stay undetected against anti-bot solutions while maintaining a minimal, intuitive API—most tasks work with sensible defaults and require only a few lines of code.
The package handles profile management (creating fresh profiles per run and cleaning them up), cookie persistence, element selection by text or CSS selector (including iframe traversal), and direct access to the full Chrome DevTools Protocol for advanced customization. It depends on mss for screenshot capture, websockets for protocol communication, and the deprecated library for backward compatibility. Requires a local Chromium-based browser and Python 3.9 or later.
Use it for:
- Scraping sites protected by Cloudflare or other WAFs where traditional WebDriver detection is problematic
- Automating login workflows and saving/reusing cookies to avoid repeated authentication
- Extracting data from JavaScript-heavy pages with iframe content using text-based element lookup
- Testing web applications in headless environments with anti-bot evasion
- Clicking CAPTCHA verification buttons and handling JavaScript challenges programmatically
## Worth the install?
AI-flagged interpretation of the facts above — verify before relying.
nodriver is an async browser automation library that controls Chromium-based browsers via direct protocol communication, designed to evade anti-bot detection while providing a simple, high-level interface.
Yes, with conditions. Install if you need browser automation that evades anti-bot detection and prefer async-first design. The low install friction and active maintenance are strong points. However, the GNU AFFERO GENERAL PUBLIC LICENSE Version 3 requires careful review if you plan to modify and deploy this on a server or in a SaaS product—source code disclosure obligations apply. Also verify that a Chromium-based browser is available in your deployment environment.
## Install
pip install nodriver
uv add nodriver
poetry add nodriver
## Installing nodriver
Before you install: Low install friction; pure Python wheel with only three runtime dependencies (mss, websockets, deprecated). Actively maintained with recent commits and solid GitHub presence (4652 stars). Requires a local Chromium-based browser installation and Python 3.9+.
License in practice: Licensed under GNU AFFERO GENERAL PUBLIC LICENSE Version 3, a copyleft license requiring that if you modify and deploy nodriver on a network server, you must provide source code access to users. For local use or closed-source internal tools, this is less restrictive, but distribution or SaaS deployment of modifications requires source disclosure.
Quickstart:
import nodriver as uc
async def main():
browser = await uc.start()
page = await browser.get('https://example.com')
await page.close()
uc.loop().run_until_complete(main())
Requires a Chromium-based browser (Chrome, Edge, Brave) installed locally; Python 3.9 or later; on headless systems without a display, Xvfb or similar display emulation is needed.
Verify before relying:
- Whether anti-detection techniques remain effective against current WAF implementations and bot-detection services
- Performance characteristics and memory footprint compared to alternatives for large-scale scraping
- Exact Xvfb requirements and configuration for headless deployment
## 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: 405.6K/month (top 15,000 on PyPI)
- Known vulnerabilities: none known
## Tags
async browser automation, web scraping anti-detection, chromium control without webdriver, cloudflare bypass, headless browser automation, WAF evasion scraping, undetected chrome automation, anti-detection, async-first, browser-automation
[View on SkillFed](https://skillfed.io/packages/nodriver) · [View on PyPI](https://pypi.org/project/nodriver/)