{"id":23781,"library":"geckordp","title":"geckordp","description":"A client implementation of Firefox's Remote Debug Protocol (CDP-based) for automating and debugging Firefox via DevTools. Version 1.0.3, active development, monthly releases roughly.","status":"active","version":"1.0.3","language":"python","source_language":"en","source_url":"https://github.com/jpramosi/geckordp","tags":["firefox","remote-debug","devtools","automation","cdp"],"install":[{"cmd":"pip install geckordp","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Browser binary required; geckordp launches Firefox with remote debugging enabled.","package":"firefox","optional":false}],"imports":[{"note":"Top-level module; no submodule needed for basic launch.","wrong":"","symbol":"geckordp","correct":"import geckordp"},{"note":"GeckoDriver is in the rdp_client module, not top-level.","wrong":"from geckordp import GeckoDriver","symbol":"GeckoDriver","correct":"from geckordp.rdp_client import GeckoDriver"},{"note":"Used for custom profile settings.","wrong":"","symbol":"FirefoxProfile","correct":"from geckordp.profile import FirefoxProfile"}],"quickstart":{"code":"import geckordp\nfrom geckordp.rdp_client import GeckoDriver\nfrom geckordp.profile import FirefoxProfile\n\nprofile = FirefoxProfile()\nprofile.set_preference('xpinstall.signatures.required', False)\ndriver = GeckoDriver(profile=profile)\ndriver.start()\nprint('Firefox launched with remote debugging on port', driver.port)\ndriver.stop()","lang":"python","description":"Basic launch and stop of Firefox with custom profile. Ensure Firefox binary is in PATH."},"warnings":[{"fix":"Use Python 3.10+ or consider an older release of geckordp (none exist, so upgrade Python).","message":"geckordp requires Python >= 3.10. It will not install on older Python versions. Update your Python runtime.","severity":"breaking","affected_versions":"<3.10"},{"fix":"Kill all Firefox processes before calling start() if you encounter port conflicts.","message":"geckordp launches a *new* Firefox instance each time start() is called. It does not attach to an existing browser. Ensure no other Firefox processes interfere.","severity":"gotcha","affected_versions":"all"},{"fix":"Monitor Firefox changelogs and consider migrating to WebDriver BiDi in the long term.","message":"RDP (Remote Debug Protocol) is being phased out in future Firefox versions. This library may stop working with Firefox releases after 2025.","severity":"deprecated","affected_versions":"all (future)"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Install Firefox and ensure the binary is accessible. On Ubuntu: 'sudo apt install firefox'. On macOS: place in /Applications/Firefox.app/Contents/MacOS/firefox or symlink.","cause":"Firefox is not installed or not in PATH.","error":"FileNotFoundError: [Errno 2] No such file or directory: 'firefox'"},{"fix":"Specify a custom port: driver = GeckoDriver(port=9223). Also kill leftover Firefox processes.","cause":"Default port (9222) is taken by another Firefox or geckordp instance.","error":"OSError: [Errno 98] Address already in use"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}