Skip to content

Settings reference

blop.config.ts exports a default configuration object. For prose see Configuration. Every field is optional.

Setting Type Default Description
include string[] ["**/*.blop.ts", "**/*.blop.tsx"] Glob patterns for spec 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
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 Supported native-loop 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
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_INGEST_URL Blop Platform ingest URL
platformApiKey BLOP_INGEST_SECRET Per-project ingest secret

Upload also requires BLOP_PROJECT_ID. Prefer ingest environment variables in CI; local monitoring never requires them.

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. Environment variables (BLOP_AGENT_*, provider-native keys)
  3. blop.config.ts
  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 results.json + events.jsonl; no JUnit XML
json results.json + events.jsonl
junit results.json + events.jsonl + report.xml
all Same as junit