Skip to content

Settings reference

blop.config.ts exports a BlopConfig object. For prose see Configuration. Every field is optional — the runner has sensible defaults.

Setting Type Default Description
include string[] ["**/*.blop.ts", "**/*.blop.tsx"] Glob patterns for spec discovery
exclude string[] [] Glob patterns to skip
cwd string process.cwd() Working directory for discovery

CLI patterns override include. Files matching node_modules/, dist/, .blop/, or .git/ are always skipped.

Setting Type Default Description
baseUrl string (none) Resolved against relative agent.goto("/path") calls
browserContext BrowserContextOptions (none) Playwright BrowserContextOptions for cookies/auth/storage

Use browserContext.storageState to seed an authenticated session — see Examples → Auth flow.

Setting Type Default Description
browser BlopBrowserName "chromium" One of chromium, camoufox, firefox, webkit
viewport { width: number; height: number } (Playwright default) Browser viewport dimensions
headed boolean false Show the browser window
containerized boolean | { image?: string; containerName?: string } false Run the selected browser in a separate warm Docker container
Setting Type Default Description
provider string env: BLOP_AGENT_PROVIDER Khadim provider name
model string env: BLOP_AGENT_MODEL Model name
apiKey string env: BLOP_AGENT_API_KEY (or provider-native) API key
maxSteps number (unlimited) Hard cap on agent tool steps. Runs stop on finish, timeout, or the no-progress stall guard.
timeoutMs number (none — uses Playwright defaults) Per-test wall-clock cap
retries number 0 Re-run failed tests this many times
workers number 1 Run up to N agent tests concurrently
Setting Type Default Description
reporter BlopReporter "all" One of basic, json, junit, all
reportDir string ".blop" Where to write artifacts
verbose boolean false Stream agent events to stderr
progressFile string (none) Append live NDJSON progress (test_start, action, frame, test_finish)
captureStepScreenshots boolean false Save a JPEG after each browser action
streamFrames boolean true CDP screencast (chromium only)
frameIntervalMs number 200 Min ms between streamed frame progress lines
Setting Env var Description
platformUrl BLOP_PLATFORM_URL Blop Platform ingest URL
platformApiKey BLOP_API_KEY Blop Platform API key

If both are set, the runner uploads BlopRunResult after the run.

Blop auto-discovers any of:

  • blop.config.ts
  • blop.config.mts
  • blop.config.js
  • blop.config.mjs

Override with --config path/to/file.ts.

When the same option is set in multiple places, later sources win:

  1. Defaults baked into the runtime
  2. blop.config.ts
  3. Environment variables (BLOP_AGENT_*, provider-native keys)
  4. CLI flags

So a CI run can pin --max-steps 75 without touching the config file.

type BlopBrowserName = "chromium" | "camoufox" | "firefox" | "webkit";
type BlopReporter = "basic" | "json" | "junit" | "all";
Reporter value Files written
basic Console output only; results.json and events.jsonl are always written by the runner
json results.json + events.jsonl
junit results.json + events.jsonl + report.xml
all Same as junit