// 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:
| Stage | What happens |
|---|---|
| Deck | A 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. |
| Run | A tester works the deck in the Runner, one card at a time. Keyboard or swipe; nothing else drives it. |
| Verdict | Pass, 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. |
| Evidence | A Fail promotes the run's rolling capture — steps, HAR, console, screenshots, a clip, the real environment — into a redacted bundle. See Evidence & redaction. |
| File | The 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
- Getting started — clone to first filed fail, in about ten minutes.
- Writing cases & ⌖ targets — how a deck is shaped, and what a ⌖ target is for.
- Agent runs — the honest state of the dry-run plan preview, and what's still roadmap.