geckordp
A client implementation of Firefox DevTools over remote debug protocol.
Decision gist · record as of 2026-08-14
Yes, if you need Firefox-specific browser automation or remote debugging capabilities and are willing to work with a beta-stage library. Install it for UI testing, extension testing, or custom browser tooling. The low dependency count and permissive license make it low-risk to try. However, verify platform compatibility for your target OS and confirm Firefox version alignment before committing to production use.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Firefox 129.0 or compatible version installed; minimum Python 3.10; a pre-configured Firefox profile with remote debugging enabled.
- Low install friction with only two runtime dependencies (jmespath, psutil).
- The package is in beta status and has aged since its last release in September 2024, though the repository remains active with recent commits as of April 2025.
License · maintenance · safety
permissive license (permissive) — MIT License permits free use, modification, and distribution with minimal restrictions—suitable for both open-source and commercial projects.
last release 2024-09-03 (710 days) · last repo commit 2025-04-26 · 37 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 94,092 downloads/mo, #13,343 on PyPI
Alternatives
Verify before relying
pip install geckordp
from geckordp.firefox import Firefox
from geckordp.rdp_client import RDPClient
from geckordp.actors.root import RootActor
Firefox.start("https://example.com/", 6000, "profile_name", ["-headless"])
client = RDPClient()
client.connect("localhost", 6000)
root = RootActor(client)
tabs = root.list_tabs()- Compatibility with Firefox versions other than 129.0 and whether older versions work reliably.
- Windows and macOS platform support status (marked as uncertain in documentation).
- Performance characteristics and scalability for concurrent browser sessions.
- Whether all geckodriver API actors are fully implemented or if gaps exist.
What it is and what it does
Geckordp exposes Firefox's remote debug protocol as a Python library, enabling direct programmatic interaction with a Firefox browser instance. It acts as a low-level client that communicates with Firefox's debug server, allowing you to control tabs, inspect DOM, execute scripts, monitor network traffic, and automate browser behavior without relying on higher-level webdriver abstractions.
The package is designed as a foundation for building tools on top—web UI testing frameworks, browser automation scripts, extension testers, and network analysis tools. It requires a pre-configured Firefox profile with remote debugging enabled and uses helper classes like ProfileManager to handle profile setup. The API mirrors geckodriver concepts where possible and exposes actors that correspond to different Firefox subsystems.
Use it for
- Automated web UI testing and browser interaction testing for Firefox-specific scenarios.
- Building custom browser automation tools that need fine-grained control over Firefox internals.
- Network traffic analysis and HTTPS recording by intercepting browser debug protocol messages.
- Testing Firefox extensions and WebExtensions in an automated environment.
- Web scraping with headless Firefox when standard webdriver tools are insufficient.
- Remote browser control and monitoring for distributed testing or CI/CD pipelines.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need Firefox-specific browser automation or remote debugging capabilities and are willing to work with a beta-stage library.
Install it for UI testing, extension testing, or custom browser tooling. The low dependency count and permissive license make it low-risk to try. However, verify platform compatibility for your target OS and confirm Firefox version alignment before committing to production use.
Install
geckordp on PyPI
Before you install
Low install friction with only two runtime dependencies (jmespath, psutil). The package is in beta status and has aged since its last release in September 2024, though the repository remains active with recent commits as of April 2025.
Requires Firefox 129.0 or compatible version installed; minimum Python 3.10; a pre-configured Firefox profile with remote debugging enabled.
License in practice
MIT License permits free use, modification, and distribution with minimal restrictions—suitable for both open-source and commercial projects.
Quickstart
pip install geckordp
from geckordp.firefox import Firefox
from geckordp.rdp_client import RDPClient
from geckordp.actors.root import RootActor
Firefox.start("https://example.com/", 6000, "profile_name", ["-headless"])
client = RDPClient()
client.connect("localhost", 6000)
root = RootActor(client)
tabs = root.list_tabs()
Verify before relying
- Compatibility with Firefox versions other than 129.0 and whether older versions work reliably.
- Windows and macOS platform support status (marked as uncertain in documentation).
- Performance characteristics and scalability for concurrent browser sessions.
- Whether all geckodriver API actors are fully implemented or if gaps exist.
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 2 packagesjmespathpsutil |
| Maintenance | Aging 710 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 94,092 / month, #13,343 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3.10 |
Evidence: geckordp-1.0.3-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 › “firefox remote debug protocol python”
- geckordpGeckordp is a Python client for Firefox's remote debug protocol,…
- marionette-driverMarionette Driver provides a Python client for automating Firefox…
- marionette-harnessMarionette-harness is a test runner for automating Gecko-based…
Give your agent the search over MCP, or paste the wish link into any chat.
More Testing packages
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
pytest is a testing framework that lets you write test functions using plain assert statements and automatically discovers and runs them, with detailed failure reporting.
virtualenv creates isolated Python environments where packages can be installed independently without affecting the system Python or other projects.
Coverage.py measures which lines of Python code are executed during test runs, reporting coverage percentages and identifying untested code paths.
Install it if you want to measure test completeness or enforce coverage thresholds in your project.
pytest-asyncio is a pytest plugin that enables writing and running async test functions using the asyncio library, allowing developers to await code directly within test cases.
Install it if you write tests for any asyncio-based code.
A pytest plugin that generates test reports in Common Test Report Format (CTRF) as JSON, compatible with pytest-xdist and pytest-playwright for distributed and browser-based testing.
Install it if you need CTRF-formatted test output for CI/CD integration or cross-tool reporting.
See also mycdp · selenium · marionette-driver · geckodriver-autoinstaller · marionette-harness · choreographer · pychrome · nokap · primp · zendriver