Configuration
Blop reads blop.config.ts (or .mts, .js, .mjs) from the project root.
Every option is optional; the runner has sensible defaults.
A typical config
Section titled “A typical config”export default { // Discovery include: ["tests/**/*.blop.ts"],
// App under test baseUrl: "http://localhost:3000",
// Browser browser: "chromium", viewport: { width: 1280, height: 720 }, headed: false,
// Agent provider: "openai", model: "gpt-5", maxSteps: 75, timeoutMs: 30_000, retries: 1,
// Reporting reporter: "all", reportDir: ".blop",};Discovery
Section titled “Discovery”| Option | Default | What it does |
|---|---|---|
include |
["**/*.blop.ts", "**/*.blop.tsx"] |
Glob patterns for spec files |
CLI patterns override include. Files matching node_modules/, dist/,
.blop/, or .git/ are always skipped.
App under test
Section titled “App under test”| Option | Default | What it does |
|---|---|---|
baseUrl |
(none) | Resolved against relative agent.goto("/path") calls |
Browser
Section titled “Browser”| Option | Default | What it does |
|---|---|---|
browser |
"chromium" |
One of chromium, firefox, webkit |
viewport |
(Playwright default) | { width, height } |
headed |
false |
Show the browser window |
| Option | Default | What it does |
|---|---|---|
provider |
env: BLOP_AGENT_PROVIDER |
Supported native-loop provider name |
model |
env: BLOP_AGENT_MODEL |
Model name |
apiKey |
env: BLOP_AGENT_API_KEY (or provider-native env) |
API key |
maxSteps |
(unlimited) | Hard cap on agent tool steps |
timeoutMs |
(none — uses Playwright defaults) | Per-test wall-clock cap |
retries |
0 |
Re-run failed tests this many times |
See Agent providers for env-var conventions.
Reporting
Section titled “Reporting”| Option | Default | What it does |
|---|---|---|
reporter |
"all" |
One of basic, json, junit, all |
reportDir |
".blop" |
Where to write artifacts |
verbose |
false |
Stream agent events to stderr |
See Reporters & output.
Platform upload
Section titled “Platform upload”| Option | Env var | What it does |
|---|---|---|
platformUrl |
BLOP_INGEST_URL |
Blop Platform ingest URL |
platformApiKey |
BLOP_INGEST_SECRET |
Per-project ingest secret |
BLOP_PROJECT_ID is also required for upload. Prefer the three ingest
environment variables in CI; local monitoring requires none of them.
Precedence
Section titled “Precedence”When the same option is set in multiple places, later sources win:
- Defaults baked into the runtime
- Environment variables (
BLOP_AGENT_*, provider-native keys) blop.config.ts- CLI flags
So a CI run can pin --max-steps 75 without touching the config file.
Supported file extensions
Section titled “Supported file extensions”Blop auto-discovers any of:
blop.config.tsblop.config.mtsblop.config.jsblop.config.mjs
Pass --config path/to/file.ts to point at a custom file.
The complete CLI-loaded field list is in Configuration reference.