pychrome
A Python Package for the Google Chrome Dev Protocol
Decision gist · record as of 2026-08-14
Yes, if you need Chrome automation and can tolerate dormant maintenance. The package is stable and has no known vulnerabilities, but it is no longer actively maintained (last release July 2023). Install it only if you are comfortable with potential incompatibilities as Chrome and its protocol evolve, or if you plan to fork/patch it yourself. For new projects requiring active support, consider alternatives that are actively maintained.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Chrome must be running with remote debugging enabled (e.g., `google-chrome --remote-debugging-port=9222`) before pychrome can connect.
- Low install friction with three common dependencies (click, websocket-client, requests).
- The package is dormant—last release was 2023-07-10, over a year ago—so expect no active maintenance or updates to address new Chrome protocol versions.
License · maintenance · safety
BSD license (permissive) — BSD license is permissive, allowing commercial and private use with minimal restrictions, making it safe to adopt from a licensing perspective.
last release 2023-07-10 (1131 days) · last repo commit 2024-06-17 · 648 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 355,875 downloads/mo, #7,287 on PyPI
Alternatives
Verify before relying
pip install pychrome
import pychrome
browser = pychrome.Browser(url="http://127.0.0.1:9222")
tab = browser.new_tab()
tab.start()
tab.Page.navigate(url="https://example.com", _timeout=5)
tab.wait(5)
tab.stop()
browser.close_tab(tab)- Whether the package works with recent Chrome versions and the current Chrome DevTools Protocol specification.
- Compatibility with Python versions beyond 3.6, given classifiers list only up to 3.6 and the package is no longer maintained.
What it is and what it does
Pychrome is a Python client for the Chrome DevTools Protocol, enabling programmatic control of a running Chrome browser instance. It lets you create tabs, navigate to URLs, intercept network requests, and respond to browser events by connecting to Chrome's remote debugging port. The package wraps the protocol's complexity into a Python API, so you can write automation scripts without manually constructing WebSocket messages.
Typical use involves starting Chrome with `--remote-debugging-port=9222`, instantiating a Browser object pointing to that port, creating or reusing tabs, and then calling protocol methods (like `Page.navigate` or `Network.enable`) or registering event listeners. The package handles the WebSocket communication and event dispatch internally. It's useful for testing, scraping, or any scenario where you need to drive a real browser from Python code.
Use it for
- Automated testing of web applications by navigating pages and checking network requests or DOM state.
- Web scraping with JavaScript execution, where you need a real browser to render dynamic content.
- Monitoring and logging network traffic from a browser session for debugging or analytics.
- Headless browser automation for CI/CD pipelines using Docker or system Chrome with remote debugging.
- Building browser bots that interact with web pages programmatically without a GUI.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need Chrome automation and can tolerate dormant maintenance.
The package is stable and has no known vulnerabilities, but it is no longer actively maintained (last release July 2023). Install it only if you are comfortable with potential incompatibilities as Chrome and its protocol evolve, or if you plan to fork/patch it yourself. For new projects requiring active support, consider alternatives that are actively maintained.
Install
pychrome on PyPI
Before you install
Low install friction with three common dependencies (click, websocket-client, requests). The package is dormant—last release was 2023-07-10, over a year ago—so expect no active maintenance or updates to address new Chrome protocol versions.
Chrome must be running with remote debugging enabled (e.g., `google-chrome --remote-debugging-port=9222`) before pychrome can connect.
License in practice
BSD license is permissive, allowing commercial and private use with minimal restrictions, making it safe to adopt from a licensing perspective.
Quickstart
pip install pychrome
import pychrome
browser = pychrome.Browser(url="http://127.0.0.1:9222")
tab = browser.new_tab()
tab.start()
tab.Page.navigate(url="https://example.com", _timeout=5)
tab.wait(5)
tab.stop()
browser.close_tab(tab)
Verify before relying
- Whether the package works with recent Chrome versions and the current Chrome DevTools Protocol specification.
- Compatibility with Python versions beyond 3.6, given classifiers list only up to 3.6 and the package is no longer maintained.
Package facts
| License | BSD license permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 3 packagesclickwebsocket-clientrequests |
| Maintenance | Dormant 1,131 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 355,875 / month, #7,287 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: BSD LicenseNatural Language :: EnglishProgramming Language :: Python :: 2.7Programming Language :: Python :: 3.4Programming Language :: Python :: 3.5Programming Language :: Python :: 3.6Topic :: Internet :: WWW/HTTPTopic :: Internet :: WWW/HTTP :: Browsers |
Evidence: pychrome-0.2.4-py2.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 automation python”
- pychromePychrome provides a Python interface to control Google Chrome via the…
- cdp-useGenerates type-safe Python bindings for the Chrome DevTools Protocol…
- nokapnokap captures screenshots and PDFs from web pages or HTML strings…
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 choreographer · mycdp · nokap · cdp-use · pydoll-python · pyppeteer · browser-harness · selenium · zendriver · PyChromecast