ferridriver-config
Unified configuration schema for ferridriver. One file
(ferridriver.toml, ferridriver.yaml / .yml, or ferridriver.json)
holds settings for every component: MCP server ([mcp]), test runner
([test]), scripting sandbox ([scripting]), and extensions
(extensions). Keys are camelCase on the wire.
Rust is the source of truth; TOML / YAML / JSON keys are derived via
serde(rename_all = "camelCase"). There is no generated TypeScript mirror
— the only consumer is Rust (ferridriver-cli, ferridriver-mcp,
ferridriver-test, ferridriver-bdd).
Search order
- Explicit path via
ferridriver --config PATH. ./ferridriver.{toml,yaml,yml,json}in the current directory.~/.config/ferridriver/config.{toml,yaml,yml,json}.
Example
[]
[]
= "ferridriver"
[]
= "cdp-pipe"
= false
[]
= 1280
= 720
[]
= 4
= 30000
= 5000
= 1
= true
[]
= "cdp-pipe"
= true
[[]]
= "chromium"
[]
= "chromium"
[[]]
= "firefox"
[]
= "firefox"
= "bidi"
[[]]
= "webkit"
[]
= "webkit"
= "webkit"
[[]]
= "npm run preview"
= "http://localhost:4173"
= true
= 60000
[]
= ["HOME", "TZ"] # process.env keys a script may read
= ["./extensions", "./tools/box-login.ts"]
Schema
The two main sections — [mcp] and [test] — are large. The Rust
structures (McpConfig, TestConfig, BrowserConfig, ContextConfig,
ProjectConfig, ReporterConfig, WebServerConfig, VideoConfig,
InstanceConfig, ViewportDef, …) are the canonical reference.
See the rustdoc for full field-by-field documentation. The site docs include rendered tables: https://salamaashoush.github.io/ferridriver/test-runner/config.
License
MIT OR Apache-2.0