Open source

The open-source QA Wolf alternative.

Most "AI QA platform" tools open-source only the bottom transport layer (Playwright, Appium) and keep the actual intelligence closed. QA Reef is taking a different cut: the automation core itself is being built in the open under packages/core, MIT-licensed.

What's in packages/core

Every piece here is code that already exists and runs in this repo today: not a roadmap.

  • flow(name, opts, fn) · step/test runtime: named steps, an evidence screenshot per step, a trace on failure.
  • Operator · look() (tiled screen OCR) → decide (cheap LLM, stamped decided_by) → click()/type()/press()/scroll() on a curved, jittered path.
  • launchContext() · Chromium/Chrome/Camoufox with a persistent, fingerprint-realistic profile.
  • ocr / pixels · tiled OCR (~94% mean word recall, measured internally) plus HSV color-bucket measurement.
  • chat() · an OpenRouter/Ollama LLM helper that cost-logs every call.
  • saveDocument() · evidence-first storage: refuses to save without the id used to find it; read-back-verifies uploads.
  • src/api.js · turns a recorded flow into a REST endpoint: GET /<site>/<method>. More: turning a website into an API.

The flow converter: QA Reef flows → QA Wolf's own format

QA Wolf's local flow format is a plain ES module (export default flow(name, target, callback) from the Apache-2.0 @qawolf/flows package) that runs entirely offline through their own Apache-2.0 @qawolf/cli, no account required. Verified directly: cloned the CLI, built it, ran real flow files with no QAWOLF_API_KEY set.

  • QA Reef's converter (app/codegen-flow.js) takes a QA Reef-recorded flow and emits that exact .flow.ts shape: same locator-resolution order, same {param}-to-process.env secrets convention.
  • Proved end to end: converted three real QA Reef-recorded flows and ran them through the unmodified, offline QA Wolf CLI. Two passed cleanly, the third failed only because its dev server wasn't running, not a format mismatch. Full output: vendor/QAWOLF-OSS.md.

Upshot: a flow mapped with QA Reef's operator isn't locked into a proprietary format. Hand it to QA Wolf's free CLI as a sanity check, or treat .flow.ts as a portable reference format.

Self-hosting, summarized

RequirementWhy
Node 22Runtime for the flow runner, Operator, and adapters.
Playwright (Chromium)Drives the real browser.
macOS or a 27B-class vision modelApple Vision on-device (no network round-trip); a self-hosted model (we run one via Ollama) covers non-macOS.
An OpenRouter key (or local Ollama)Powers the click/type/press decisions in the Operator loop.

Full requirements and quickstart: the docs page. Public package name and repository link aren't final yet.

If you'd rather not self-host, hosted plans are published on the pricing page: a free tier with 500 browser-minutes a month, Solo $20/mo, Team $99/mo, Scale $499/mo, with overage at $0.015 per browser-minute on any plan, one tenth of QA Wolf's published $0.15 per runner-minute (as published 2026-08-30). The division.

FAQ

Open-core questions

What license is QA Reef's core under?

MIT, once packages/core is published, compatible with the Apache-2.0 Playwright/Appium layers it mirrors, and QA Wolf's own MIT/Apache-2.0 flow-runtime packages.

What's actually in packages/core?

flow(), Operator, launchContext(), ocr/pixels, chat(), saveDocument(), and src/api.js's website-to-API layer: see the full list above.

Is QA Reef's open-core more open than QA Wolf's?

QA Wolf's open layer is the bottom transport only; QA Reef puts the automation core itself in the open. QA Wolf's hosted grid, human QA service, and years of production hardening remain real advantages QA Reef doesn't have yet.

Can I run QA Reef flows through QA Wolf's own CLI?

Yes, QA Reef ships a converter that emits QA Wolf's .flow.ts format, runnable offline through their Apache-2.0 CLI. See vendor/QAWOLF-OSS.md for verified details.

See it against QA Wolf, feature by feature

Read: QA Wolf alternative →