ferridriver
A single static binary with six subcommands. JavaScript / TypeScript BDD step files run natively through the same binary — no separate TypeScript CLI exists.
Synopsis
Codegen
ferridriver codegen <url> [--output rec.ts] [--language ts|rust|gherkin]
opens a headed browser, records your clicks / fills / selects / navigation
(generating Playwright-style locators), and writes code to --output or
stdout. Stop with Ctrl+C or by closing the browser.
The default ts output is a runnable script, not a test stub: it reuses
an injected page when one exists — so the MCP run_script tool replays it
on a live session — and otherwise launches its own browser, so the same file
runs standalone via ferridriver run rec.ts. rust emits a #[ferritest]
test; gherkin emits a .feature.
Global flags
ferridriver mcp
See MCP overview and Client setup.
ferridriver bdd
--steps loads JavaScript / TypeScript step-definition files
(repeatable; overrides [test].steps from the config file). Files are
bundled with rolldown, compiled to QuickJS bytecode once at startup, and
run on the embedded engine — no Node, no Bun.
Defaults to steps/**/*.{js,ts} and step_definitions/**/*.{js,ts} when
no --steps flag is provided.
Browser flags shared with mcp: --backend, --headless,
--executable-path, --connect, --auto-connect, --user-data-dir.
ferridriver test
Auto-detects cargo-nextest and falls back to cargo test. Useful in
mixed projects where one command should drive any Rust test target.
ferridriver run
Executes a script with Playwright-shaped globals (chromium, firefox,
webkit, page, context, request). A .ts / .tsx file, or any
source with top-level import / export, is rolldown-bundled and
transpiled before running. args is the positional list exposed as a
global. - reads source from stdin. --eval runs inline source instead
of a file.
ferridriver install
Browsers: chromium, chromium-headless-shell, firefox, webkit.
Defaults to chromium. --with-deps also installs Linux system
libraries via the platform package manager.
ferridriver install webkit downloads Playwright's WebKit build into the
ferridriver cache. Alternatively, point FERRIDRIVER_WEBKIT at a
Playwright WebKit checkout, or install Playwright once
(npx playwright install webkit) and ferridriver picks up its cache.
Environment variables
Install the binary
See MCP > Setup for client configuration snippets.