ff-rdp
A command-line tool that drives Firefox through its built-in debugger.
Firefox has a debugger built in, and it can listen on a TCP port. ff-rdp talks to it directly, with the Firefox Remote Debugging Protocol. Each command opens a connection, does its work and disconnects. From the shell you open pages, read them, click and type, run JavaScript, look at the console and the network and take screenshots. It helps web developers who want to check a page from a script, and AI agents such as Claude Code that need to see and use a real browser.
What it does
- Start Firefox:
ff-rdp launchstarts it, also without a window and with a temporary profile.ff-rdp doctorfinds connection, port and version problems. - Use the page: navigate, click, type, scroll, reload, go back and forward.
- Read the page: its visible text, elements by CSS selector, the accessibility tree, computed styles, cookies and storage.
- Run JavaScript in the page and get the result back.
- Debug: console messages, network requests, page load timings and the Core Web Vitals.
- Screenshots: of the visible part or the whole page, in dark mode, or at the size of a phone.
The output is JSON, and --jq filters it. Run
ff-rdp without arguments and it shows what is open right now
and which commands make sense next. ff-rdp install-skill --claude
installs a skill that lets Claude Code debug web pages with it. ff-rdp
connects to localhost by default. The debug port is not
encrypted, so do not open it to the network.
Install
With Homebrew on a Mac with Apple silicon or on Linux. The first line is needed once with Homebrew 6 or newer, which asks you to trust formulae from other taps:
brew trust --formula ractive/tap/ff-rdp
brew install ractive/tap/ff-rdp
On Windows with Scoop:
scoop bucket add ractive https://github.com/ractive/scoop-bucket
scoop install ff-rdp
With Rust's cargo, for example on an Intel Mac. This installs the ff-rdp command:
cargo install ff-rdp-cli
The README also lists apt, dnf and winget. Ready-made binaries for Linux, macOS on Apple silicon and Windows are on the releases page. You also need Firefox.
Example
ff-rdp launch --headless --temp-profile
ff-rdp navigate https://example.com
ff-rdp eval 'document.title' --jq '.results'
This starts a fresh Firefox without a window, opens example.com in it and
prints the page title. ff-rdp --help lists all commands.
Source and licence
ff-rdp is written in Rust and is open source under the MIT licence. The source is on GitHub. It includes Mozilla's Readability.js, under the Apache 2.0 licence, to tell a page's article from its menus. The code was written in whole or in part by AI systems under my supervision (see AI_NOTICE).