A test for every bug
The path is shortened to the fewest steps that still fail, then written as a standalone spec.
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 45Each step observes the page, decides what to try, acts, checks for anything broken and reports what it can prove.
Fingerprints the page by structure, visible text and URL pattern, so a revisit is recognised as the same state.
state graphRules take the obvious calls. A trained ranker scores the rest. A local model settles what the ranker is unsure of.
rules → ranker → LLMClicks, fills and submits through Playwright, and finds targets by meaning when their selectors drift.
self-healing locatorWatches console, network, rendering and copy, then folds related signals into a single finding.
9 detectorsShortens the path, replays it three times and writes a Playwright test for every confirmed bug.
replay ×3 → .spec.tsThe path is shortened to the fewest steps that still fail, then written as a standalone spec.
When an element disappears, candidates are scored by meaning, role and position on the page.
Replay every bug of a run against another build and get a verdict for each: fixed, still broken or flaky.
Runs locally with Node 20. The ranker and the local model are optional.
npm install && npm run buildnpm run nomad -- scan <url> --steps 60--fail-on major --min-recall 1docker compose up --build