Nomad Loop Engine
Source
Autonomous exploratory QA

Finds the bugs your test suite never visits.

Nomad explores a web app the way a curious user would. Every move is chosen by a three-tier decision cascade, every anomaly is replayed three times to confirm it, and every confirmed bug comes back as a minimal Playwright test.

npm run nomad -- scan http://localhost:4100 --steps 45
  • TypeScript
  • Playwright
  • NestJS
  • PyTorch → ONNX
  • Qwen2.5 on Ollama
  • Next.js
How it works

One loop, run once per step.

Each step observes the page, decides what to try, acts, checks for anything broken and reports what it can prove.

  1. 01Observe

    Fingerprints the page by structure, visible text and URL pattern, so a revisit is recognised as the same state.

    state graph
  2. 02Decide

    Rules take the obvious calls. A trained ranker scores the rest. A local model settles what the ranker is unsure of.

    rules → ranker → LLM
  3. 03Act

    Clicks, fills and submits through Playwright, and finds targets by meaning when their selectors drift.

    self-healing locator
  4. 04Detect

    Watches console, network, rendering and copy, then folds related signals into a single finding.

    9 detectors
  5. 05Report

    Shortens the path, replays it three times and writes a Playwright test for every confirmed bug.

    replay ×3 → .spec.ts
What a run gives you

Evidence you can act on.

A test for every bug

The path is shortened to the fewest steps that still fail, then written as a standalone spec.

Selectors that survive a redesign

When an element disappears, candidates are scored by meaning, role and position on the page.

All healing decisions →

Regression sweeps

Replay every bug of a run against another build and get a verdict for each: fixed, still broken or flaky.

Open the demo run →
Quick start

Point it at a URL.

Runs locally with Node 20. The ranker and the local model are optional.

  1. Install and buildnpm install && npm run build
  2. Scan an appnpm run nomad -- scan <url> --steps 60
  3. Gate CI on it--fail-on major --min-recall 1
  4. Or run everythingdocker compose up --build
Nomad Loop Engine · MIT License© 2026 Lakshay