BrowserProof
BrowserProof is a small verification layer for AI browser agents and Playwright workflows that turns “done” into an observable, testable browser state.
The problem
Autonomous browser runs can confidently report success while the wrong page is open, a save never happened, or the attached screenshot does not prove the requested outcome. Execution and verification need to be separate concerns.
How I approached it
- 01Define browser success as explicit URL, title, text, selector and value assertions.
- 02Capture the final rendered state instead of trusting an agent-generated summary.
- 03Hash screenshot evidence so the report carries a stable artifact fingerprint.
- 04Return a machine-readable pass/fail result that can gate CI or a larger autonomous workflow.
Key features
- URL and title assertions
- Text and selector verification
- Input-value checks
- Playwright execution
- Final screenshot capture
- SHA-256 evidence hash
- JSON and HTML reports
- CI-ready exit codes
Architecture
- Runtime
- TypeScript · Node.js
- Browser
- Playwright / Chromium
- Verification
- Explicit state assertions
- Evidence
- Screenshot + SHA-256
- Output
- JSON · HTML · exit code
- License
- MIT
What BROWSERPROOF is built to preserve.
- Proof after execution
- Observable state over agent confidence
- Portable artifacts over opaque logs
- Fail loudly when the browser does not match the claim
Useful answers, without the hunt.
Is BrowserProof another browser agent?
No. It is deliberately downstream of the agent. The agent or Playwright flow acts; BrowserProof verifies the resulting browser state and emits evidence.
What can BrowserProof verify?
The current runner can verify URL and title conditions, required text, visible selectors and input values, then emit JSON and HTML proof reports.
Can it run in CI?
Yes. Failed assertions produce a failed proof and a non-zero process exit code, so it can gate a CI job or a larger automation.