// docs

Overview

A self-hosted runner for manual regression passes. Humans mark pass/fail/skip by eye; failures leave with a ticket and an evidence bundle. No SaaS tier, no unattended agent runner on main today.

A Teasynaer run only exists because someone did it. A tester opens a deck, works through it card by card, and marks what they see — Pass, Fail, Skip. That verdict is the record; nothing re-scores it later and nothing overrides it. On a Fail, a ticket leaves the building with the evidence already attached, so whoever picks it up isn't starting with "can you reproduce that?"

This page is the concept — what the product actually does today, what it deliberately doesn't, and where it sits next to an automated runner. For the how-to, see Getting started.

What it is

  • A self-hostable manual-QA regression runner — a Docker image, your own Postgres, your own evidence volume. No SaaS, no seats, no telemetry. There's a public, no-signup live demo if you want to see it before you self-host.
  • Pre-launch, v0.1.0, under active development. The manual core — Home → Package Picker → Runner → Run Summary, with on-fail evidence — is complete and running on main.
  • Built for the case that's genuinely hard to assert in code: does the wrong-password error read right, does the layout survive a long name, did that refund actually land. A person looks, a person calls it — and the Runner is built around doing that fast: keyboard-first (p/f/s, or swipe the card), and a run persists and resumes if you close the tab mid-deck.

The loop: deck → run → verdict → evidence → file

Five stages, and every one is a real thing in the product, not a metaphor:

StageWhat happens
DeckA package of case-cards — Gherkin scenarios or a plain steps-and-expected list. It gets there via a Gherkin .feature import, a TestRail CSV import, a CI job through the machine-import API, or the in-product Case Editor. See Writing cases.
RunA tester works the deck in the Runner, one card at a time. Keyboard or swipe; nothing else drives it.
VerdictPass, Fail or Skip, marked by eye. That's the whole grading model — no auto-pass, no re-computation. The Run Summary tallies the deck, and you can re-run just the fails.
EvidenceA Fail promotes the run's rolling capture — steps, HAR, console, screenshots, a clip, the real environment — into a redacted bundle. See Evidence & redaction.
FileThe bundle attaches to a ticket in whatever tracker you've wired up (GitHub, GitLab, Jira, a webhook, Forgejo). Nothing configured, or filing fails? Export the packet and file it by hand.

Where it sits

Teasynaer is the sibling of Restormel, which does automated and agentic testing. Restormel is the machine half of the pair — checks that run without a person driving them. Teasynaer is the human-attestation half: the regression pass where somebody's judgement is the actual test. Run them side by side; neither is a substitute for the other.

What it isn't

Worth being blunt about, because it's easy to read "⌖ target" or "agent" in these docs and assume more has shipped than has:

  • Not an autonomous runner. Nothing in Teasynaer drives a browser against a live target unattended, today. What ships is a deterministic dry-run plan preview — target chips and a coverage estimate, computed without touching anything — not an execution engine. See Agent runs for exactly what that does and doesn't cover. By design, that stays true: Teasynaer will not grow a "run this suite against prod on a schedule with no human" mode — that's Restormel's territory. If an execution engine is ever built here, it only assists a person in the loop and always reconciles against the human verdict, never replaces it.
  • AI stays advisory, and mostly isn't built yet. Duplicate-issue detection, fail clustering, root-cause hints, visual-regression triage — all backlog, none shipped. There is no LLM dependency anywhere in the product today.
  • It files into your tracker; it doesn't become one. GitHub, GitLab, Jira, webhook and Forgejo are self-host-ready adapters over a tracker you already run. Teasynaer doesn't own the ticket — if nothing's configured, or filing fails, you get an export packet instead.

Read next

← All docs