geckordp
A client implementation of Firefox DevTools over remote debug protocol.
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
Geckordp is a Python client for Firefox's remote debug protocol, allowing programmatic control and inspection of Firefox browser instances through a low-level API.
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
pip
pip install geckordpuv
uv add geckordppoetry
poetry add geckordpInstalling geckordp
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.
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()
Requires Firefox 129.0 or compatible version installed; minimum Python 3.10; a pre-configured Firefox profile with remote debugging enabled.
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 | MIT License Copyright 2023 jpramosi Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the… (full text in the JSON record) (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — jmespath, psutil |
| 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) |
Evidence: geckordp-1.0.3-py3-none-any.whl
Keywords: crawler, debug, firefox, rdp, remote-debug-protocol, ui-testing, webconsole
Tags
More Testing packages
Pluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
virtualenvvirtualenv creates isolated Python environments…
permissive · top 100 on PyPI
coverageCoverage.py measures which lines of Python code…
permissive · top 1,000 on PyPI
pytest-asynciopytest-asyncio is a pytest plugin that enables…
permissive · top 1,000 on PyPI
pytest-json-ctrfA pytest plugin that generates test reports in…
permissive · top 1,000 on PyPI
mycdpMyCDP provides autogenerated Chrome DevTools…
permissive · top 15,000 on PyPI
seleniumSelenium provides Python bindings to automate…
permissive · top 1,000 on PyPI
marionette-driverMarionette Driver provides a Python client for…
copyleft · top 15,000 on PyPI
geckodriver-autoinstallerAutomatically downloads and installs…
permissive · top 5,000 on PyPI
marionette-harnessMarionette-harness is a test runner for…
copyleft · top 15,000 on PyPI
choreographerChoreographer provides remote control of…
unclear · top 5,000 on PyPI
pychromePychrome provides a Python interface to control…
permissive · top 15,000 on PyPI
nokapnokap captures screenshots and PDFs from web…
permissive · top 15,000 on PyPI
primpHTTP client library that mimics real web…
permissive · top 5,000 on PyPI
zendriverZendriver is an async-first web automation…
agpl · top 15,000 on PyPI