plune-ai /

An AI that walks your system and leaves a trail of tests

Autonomous QA agent for UI, API, unit & docs testing.

Node.js TypeScript Playwright
Cairn stacks tests like a trail of stones across UI, API and code
Pipeline

Five stages. One command.

01
Observe Logs in with your saved session, waits for SPA hydration, snapshots ARIA + screenshot.
02
Ground Verifies every locator against the live page. Tests what exists — not hallucinations.
03
Design Writes methodical cases per ISO/IEC/IEEE 29119-4: EP, BVA, decision tables, state transitions.
04
Generate & validate POM-style Playwright specs. Runs them, classifies pass / fail / flaky, self-repairs keep-best.
05
Judge & learn Deterministic scorers + LLM-judge + holistic Pilot verdict. Best cases carry over between runs.
Human in the loop

The bot automates. You stay in charge.

ATC Automatable Test Case

Cairn generates POM-style Playwright code with role-based locators — every locator verified against the live page before a single line is written.

Role-based locators, verified before codegen POM-style @playwright/test specs Self-repair that never degrades the suite
MTC Manual Test Case

Some things deserve human judgment. Cairn writes these cases up methodically — then deliberately leaves them to you.

Form submits with real side effects Security & XSS probing Visual & UX judgment calls
Four modes

Start careful. Go autonomous.

design cases only
The bot explores and writes test cases — no code generated. Perfect for a first review pass.
$ cairn design --url … --session myapp
automate code from ATC
Generates and validates Playwright specs from your promoted ATC cases.
$ cairn automate --run runs/<id> --validate
explore full cycle
Everything in one run: observe → ground → design → automate → judge.
$ cairn explore --url … --session myapp
api from OpenAPI
Turns an OpenAPI 3.x spec into happy-path, negative, scenario, and adversarial cases — and runs them to assert the contract.
$ cairn api --spec openapi.yaml --base-url …
Interactive TUI

A live dashboard, right in your terminal.

Watch graph nodes light up as the agent works, browse past runs, inspect scores — all in an Ink-powered terminal UI.

$ cairn · no arguments needed
cairn · interactive
RUN GRAPH · #142
observe — 38 elements
ground — 38/38 ok
design — 12 ATC · 5 MTC
automate — spec 9/12…
judge & learn
SCORES
green 91.7%   flaky 1
pilot PASS (92%)
PAST RUNS
#141 PASS · #140 PASS
#139 FAIL → repaired
↑↓ navigate · ↵ open run · q quit
Quickstart

From login to green suite in four commands.

Capture a session once, let the bot design cases, promote the ones you like, and automate. Repairs never make the suite worse — keep-best, always.

quickstart.sh
1  # log in once — session is stored locally
2  npm run session:save -- --url https://app.example.com --name myapp
3  cairn design --url https://app.example.com/page --session myapp
4  # review the cases; promote an MTC you deem automatable
5  cairn promote --run runs/<id> --cases MTC-LOGIN-001
6  cairn automate --run runs/<id> --validate --session myapp
Judge & learn

Every run makes the next one better.

Langfuse optional — runs fully offline
deterministic Scorers Hard, repeatable checks on every run — green %, flakiness, coverage of the checklist.
llm-judge Judge + Pilot An LLM judge reviews outputs case by case; the Pilot issues one holistic verdict per run.
langfuse Traced & accumulated Every step traced in Langfuse (cloud or self-hosted). Best cases accumulate between runs.
observe Snapshot a page: ARIA tree, screenshot, interactive elements.
design Explore and write methodical test cases (ATC + MTC) — no code.
automate Generate and validate @playwright/test specs from promoted ATC.
promote Promote manual MTC case(s) to ATC — then automate picks them up.
explore Full autonomous cycle in a single run, end to end.
api Generate happy-path, negative, scenario, and adversarial cases from an OpenAPI 3.x spec; run + assert contract with --base-url.
experiment Compare prompt versions on a dataset, side by side.

Install in 30 seconds.

$ npm install -g @plune-ai/cairn
Read the docs Node 20+ · Apache-2.0 · v0.6.0
Next: evaluate & gate your app with the Plune platform