cdp-use
Type safe generator/client library for CDP
Decision gist · record as of 2026-08-14
Yes. CDP Use is worth installing if you need to interact with Chrome DevTools Protocol from Python and value type safety and IDE support. Low install friction, active maintenance, permissive MIT license, no known vulnerabilities, and a top-5000 popularity tier indicate a stable, usable package. The main trade-off is the Python 3.11+ requirement and the need for a running Chrome DevTools endpoint.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.11 or later; Chrome DevTools Protocol endpoint must be running and accessible via WebSocket.
- Low friction install with three lightweight runtime dependencies (httpx, typing-extensions, websockets).
- Active maintenance with recent commits and steady releases since July 2025.
License · maintenance · safety
MIT (permissive) — MIT license permits unrestricted use, modification, and distribution in both open-source and commercial projects with minimal obligations.
last release 2026-02-22 (173 days) · last repo commit 2026-07-29 · 310 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 11,122,119 downloads/mo, #1,415 on PyPI
Alternatives
Verify before relying
pip install cdp-use
import asyncio
from cdp_use.client import CDPClient
async def main():
async with CDPClient("ws://localhost:9222/devtools/browser/...") as cdp:
targets = await cdp.send.Target.getTargets()
await cdp.send.Page.navigate({"url": "https://example.com"})
asyncio.run(main())- Whether the auto-generated bindings stay synchronized with Chrome protocol updates without manual intervention.
- Performance overhead of type checking and event registration at runtime compared to untyped alternatives.
- Compatibility with headless Chrome versions and whether all 50+ CDP domains are fully functional.
What it is and what it does
CDP Use is a code generator that produces type-safe Python client libraries for the Chrome DevTools Protocol from official protocol specifications. It wraps the raw CDP WebSocket interface with TypedDict-based type hints, event handlers, and domain-specific client classes, so your IDE can autocomplete commands and catch parameter errors before runtime.
You use it by installing the package, connecting an async client to a Chrome DevTools endpoint, and then calling domain-specific methods (like `cdp.send.Page.navigate()` or `cdp.send.Runtime.evaluate()`) with full type safety. Event handlers can be registered with matching type signatures, and the library validates both command parameters and callback signatures at development time. The underlying dependencies—httpx, typing-extensions, and websockets—handle HTTP, type annotations, and WebSocket communication.
Use it for
- Automate browser testing with type-checked CDP commands and IDE autocompletion for all available domains.
- Build browser automation scripts that catch parameter errors at development time instead of runtime failures.
- Monitor and react to browser events (page navigation, console messages, network requests) with fully typed event handlers.
- Integrate Chrome DevTools Protocol into Python applications where type safety and IDE support reduce debugging time.
- Generate and regenerate bindings from the latest protocol specs to stay compatible with new Chrome versions.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
CDP Use is worth installing if you need to interact with Chrome DevTools Protocol from Python and value type safety and IDE support. Low install friction, active maintenance, permissive MIT license, no known vulnerabilities, and a top-5000 popularity tier indicate a stable, usable package. The main trade-off is the Python 3.11+ requirement and the need for a running Chrome DevTools endpoint.
Install
cdp-use on PyPI
Before you install
Low friction install with three lightweight runtime dependencies (httpx, typing-extensions, websockets). Active maintenance with recent commits and steady releases since July 2025.
Requires Python 3.11 or later; Chrome DevTools Protocol endpoint must be running and accessible via WebSocket.
License in practice
MIT license permits unrestricted use, modification, and distribution in both open-source and commercial projects with minimal obligations.
Quickstart
pip install cdp-use
import asyncio
from cdp_use.client import CDPClient
async def main():
async with CDPClient("ws://localhost:9222/devtools/browser/...") as cdp:
targets = await cdp.send.Target.getTargets()
await cdp.send.Page.navigate({"url": "https://example.com"})
asyncio.run(main())
Verify before relying
- Whether the auto-generated bindings stay synchronized with Chrome protocol updates without manual intervention.
- Performance overhead of type checking and event registration at runtime compared to untyped alternatives.
- Compatibility with headless Chrome versions and whether all 50+ CDP domains are fully functional.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.11 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 3 packageshttpxtyping-extensionswebsockets |
| Maintenance | Actively maintained 173 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 11,122,119 / month, #1,415 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 LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3 |
Evidence: cdp_use-1.4.5-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 › “chrome devtools protocol python client”
- cdp-useGenerates type-safe Python bindings for the Chrome DevTools Protocol…
- pychromePychrome provides a Python interface to control Google Chrome via the…
- choreographerChoreographer provides remote control of Chrome-based browsers from…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
See also mycdp · browser-harness · choreographer · pychrome · cdp-sdk · salesforce-cdp-connector · pydoll-python · nokap · customerio-cdp-analytics · pyppeteer