Documentation

Blop documentation

Everything you need to write, run, and ship intent-based browser tests.

Intent-based agentic browser testing. Describe what to verify; an AI agent drives a real browser to figure out how.

import { agentTest, describe } from "@blopai/cli";

describe("onboarding", () => {
  agentTest("user can create a project", async ({ agent }) => {
    await agent.goto("/");
    await agent.goal(`
      Sign in as the test user.
      Create a project called Checkout QA.
      Verify the project appears in the dashboard.
    `);
  });
});

Why Blop

  • Intent over selectors. Goals stay readable when the UI changes. No more brittle data-testid chains or hand-written click sequences for every flow.
  • Real browser, real Playwright. The agent drives Chromium, Firefox, or WebKit through controlled native tools. No arbitrary script execution, no shell escapes.
  • CI-native output. Every run writes results.json, an events.jsonl stream, JUnit XML, and screenshots into .blop/ for any pipeline to consume.
  • Local-first, platform-ready. Run on your laptop today. The same result schema is built to upload to Blop Platform when you want hosted history, triage, and synthetic checks.

What you get out of the box

  • DSL: agentTest, describe, defineAgentTest
  • CLI: blop test, blop watch, blop list, blop init
  • Browser tools: navigation, mouse, keyboard, forms, assertions, screenshots
  • Reporters: JSON results, JSONL event log, JUnit XML
  • Config: blop.config.ts with full TypeScript types
  • Providers: OpenRouter (default), OpenAI, Groq, xAI, Mistral, Cerebras, and NVIDIA over the OpenAI chat-completions protocol; Anthropic and Google route through OpenRouter

The framework and blop CLI are shipped and open source. The hosted control plane (failure clustering, self-healing pull requests, and synthetic monitoring) is in early access; see the Roadmap for what is live today versus what is coming.

Ready? Head to Getting Started.

Explore

Browse the docs