Drop-in, not framework
One npm package, one constructor. No Selenium grids, no test DSL, no YAML โ just `await monkey.executeAndTriage(url)`.
Open-source. Playwright + your favourite LLM. Zero glue code. Built for devs who'd rather ship than write yet another Selenium script.

Most QA tools ask you to write tests. MonkeyTest Core writes its own โ by looking at your app first.
It opens a real browser, crawls a few pages, asks an LLM "what would a real user try here?", runs those flows step by step, and hands you back a structured report with screenshots, bug fingerprints, and a live event stream you can wire into your own dashboard.
import { Monkey, autoLLMConfig } from '@mtai/monkeytest-core';
const monkey = new Monkey({ llm: autoLLMConfig({ quality: 'balanced' }) });
const { run } = await monkey.executeAndTriage('https://example.com', {
explore: { maxPages: 8, screenshotsDir: '.monkeytest/shots' },
plan: { maxFlows: 4 },
run: { screenshotsDir: '.monkeytest/shots' },
});
console.log(`${run.bugs.length} bug(s) found across ${run.stats.flowsTotal} flows`);That's it. No fixtures, no page objects, no recorders.
MonkeyTest Cloud is the same engine, fully managed, with hosted browsers, history, dashboards, and team accounts. Use the OSS engine for hacking and self-hosting; use Cloud when you want it to "just run".