Skip to content

Intent · Playwright-backed

Blop

Intent-based browser testing backed by real Playwright browsers. Describe what to verify in a .blop.ts file; an agent drives a real browser to figure out how. Run locally or in CI, and get results.json, events.jsonl, JUnit XML, and screenshots. The control plane is early access.

  • Intent, not selectors
  • Tests as code
  • Local + CI
  • Chromium · Firefox · WebKit
Three observable browser-test checkpoints connected by a blue path with accumulated evidence
Blop / Verification studyRunner shipped · platform early access
3
Browser engines
.blop.ts
Test format
4
Output formats
Local + CI
Where it runs

How Blop works

A blop test is a TypeScript file that reads like intent. The agent drives a real browser over Playwright with controlled tools — no script execution, no shell escapes.

Tests as code in your repo

A .blop.ts file exports agentTest(...) cases under describe. agent.goto and agent.goal build a numbered goal list the agent receives when the runner reaches the test. Version-controlled, code-reviewed, and yours to edit or delete.

checkout.blop.tsTypeScript
describe("checkout", () => {
  agentTest("guest can pay", async ({ agent }) => {
    await agent.goto("/checkout")
    await agent.goal("Complete checkout as a guest")
    await agent.goal("Confirm the success page")
  })
})

Real Playwright browsers

Chromium, Firefox, or WebKit through controlled tools. Intent keeps goals readable while the agent finds the interaction in the current interface.

A visible path through three browser-test checkpoints

CI-native reporters

Every run writes results.json, an events.jsonl stream, JUnit XML, and screenshots to .blop/. The result is a versioned contract, so other frameworks can emit it too, once adapters ship.

.blop / latest run4 artifacts

FILEresults.jsonpassed

FILEevents.jsonlwritten

FILEjunit.xmlwritten

DIRscreenshots /written

Control plane — early access

When you want hosted history, the same result schema uploads to the Blop platform: failures cluster across runs, tests become synthetic checks, and the agent can open fix PRs. Auto-fix is early access, not shipped.

Three observable browser-test checkpoints connected by a blue path with accumulated evidence

What is ready, and what is coming

The framework and CLI are the workhorse today. The control plane and agent-authored fix PRs are early access — tracked clearly, not as finished products.

  • 01
    CLI and .blop.ts runner

    blop init, blop test, blop watch, blop list, blop skills — one binary, every workflow.

    Shipped
  • 02
    Browser harness (Playwright)

    Chromium, Firefox, WebKit through controlled native tools; @blopai/browser-harness for persistent CLI sessions and containers.

    Shipped
  • 03
    CI-native reporters

    results.json, events.jsonl, JUnit XML, and screenshots in .blop/ per run.

    Shipped
  • 04
    Control plane

    Hosted history, failure clustering, synthetic checks, and agent fix PRs. Early access, not generally available.

    Early access
  • 05
    Adapters for other frameworks

    The result payload is a versioned contract; adapters that emit the same schema are planned, not shipped yet.

    Planned
Blop

Run your first test in ten minutes

Add blop to your project, set your provider credentials, and run blop test. Tests stay as code in your repo from day one.