skillfed

pychrome

A Python Package for the Google Chrome Dev Protocol

pychrome v0.2.4 355.9K downloads/30d#7,287 on PyPI648
Permissive license BSD license DORMANT released

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

Pychrome provides a Python interface to control Google Chrome via the Chrome DevTools Protocol, allowing you to automate browser interactions, navigate pages, and listen to network events programmatically.

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

pip

pip install pychrome

uv

uv add pychrome

poetry

poetry add pychrome

Installing pychrome

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.

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)

Chrome must be running with remote debugging enabled (e.g., `google-chrome --remote-debugging-port=9222`) before pychrome can connect.

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 — click, websocket-client, requests
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)

Evidence: pychrome-0.2.4-py2.py3-none-any.whl

Keywords: pychrome

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

Tags

chrome automation pythonchrome devtools protocol clientbrowser control remote debuggingheadless chrome pythonchrome tab managementnetwork monitoring chromepage automation chrome
browser-automationtestingweb-scraping

More WWW/HTTP packages