ferridriver-config 0.4.0

Unified configuration loader for ferridriver: composes mcp + test sections from a single ferridriver.toml
Documentation

ferridriver-config

crates.io docs.rs License

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

  1. Explicit path via ferridriver --config PATH.
  2. ./ferridriver.{toml,yaml,yml,json} in the current directory.
  3. ~/.config/ferridriver/config.{toml,yaml,yml,json}.

Example

[mcp]
[mcp.server]
name = "ferridriver"

[mcp.browser]
backend = "cdp-pipe"
headless = false

[mcp.browser.viewport]
width = 1280
height = 720

[test]
workers = 4
timeout = 30000
expectTimeout = 5000
retries = 1
fullyParallel = true

[test.browser]
backend = "cdp-pipe"
headless = true

[[test.projects]]
name = "chromium"
[test.projects.browser]
browser = "chromium"

[[test.projects]]
name = "firefox"
[test.projects.browser]
browser  = "firefox"
backend  = "bidi"

[[test.projects]]
name = "webkit"
[test.projects.browser]
browser = "webkit"
backend = "webkit"

[[test.webServer]]
command = "npm run preview"
url = "http://localhost:4173"
reuseExistingServer = true
timeout = 60000

[scripting]
allowEnv = ["HOME", "TZ"]   # process.env keys a script may read

extensions = ["./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