Open Source · TypeScript · Python · Java

Selectors break.
Self-healing tests don't.

TAMASH-Playwright is plug-and-play self-healing for Playwright. When a locator can't find its element, it asks an AI model to locate it on the current page and retries. If it succeeds, your test keeps going. If not, it fails normally — just like before. Every attempt is fully logged: provider, selector suggested, token cost.

How It Works

One import swap. No new framework.

Your tests run exactly as you wrote them. TAMASH-Playwright only steps in the moment a locator would otherwise fail.

1

A locator fails

The page changed — a button got renamed or moved — and stock Playwright can't find the element anymore, even though the app still works fine for real users.

2

AI locates it

TAMASH-Playwright captures an accessibility/ARIA snapshot of the current page and sends it to your configured AI provider, asking it to find the described element.

3

Heal and continue

If the model finds a match, the locator is healed and the test continues. If not, it fails normally. Every attempt — healed or not — is logged with an HTML report.

Beyond Runtime Healing

Maintenance that runs itself

Runtime healing buys you time. Closing the loop is what actually stops the same locator from breaking, and paying for the same fix, over and over. This is one documented GitHub Actions workflow — nothing hosted separately, nothing to maintain beyond your own repo.

1

Heals at runtime

A locator fails, an AI model (or the free rule-based matcher) finds the element, the test keeps going — this run.

2

apply-heals rewrites source

A CI job turns the runtime fix into a real code change — a surgical edit, with a before/after report.

3

verify-heals proves it

Re-runs only the affected tests, healing turned off, to prove the rewritten selector works standalone.

4

Opens a PR automatically

The fix, plus the verification result, lands as a pull request — ready for a human to review, never merged silently.

5

Every run, visible

An optional dashboard archives every run's report — what healed, what verified — browsable, no sign-in required.

No waiting on a person to notice. No hidden fixes — every report is a plain file in your own repo's CI.

Quick Start

One library. Three languages.

Same self-healing behavior, native to how you already write tests — Playwright Test, pytest, or JUnit 5.

TypeScript

npm · Playwright Test

npm install tamash-playwright
npx playwright install
- import { test } from '@playwright/test';
+ import { test } from 'tamash-playwright';
Working example

Python

PyPI · pytest + pytest-playwright

pip install tamash-playwright
playwright install chromium
page.locator('input[name="user"]')
    .describe("User Name Textbox")
Working example

Java

Maven Central · JUnit 5

<dependency>
  <groupId>io.github.qtpsudhakarproducts</groupId>
  <artifactId>tamash-playwright</artifactId>
  <version>0.1.0</version>
</dependency>
mvn test
Working example

Supported AI Providers

Pick whatever fits your budget

Configuration is via environment variables, typically loaded from a .env file, in every language binding.

Bring your own API key

Ollama

Free, runs locally (or Ollama Cloud) — good default for trying things out.

OpenAI

Requires an OpenAI API key.

Anthropic

Requires an Anthropic API key.

Gemini

Requires a Google Gemini API key.

Already have a subscription? No API key needed (TypeScript)

Claude subscription

Uses your Claude Pro/Max/Team/Enterprise plan — works unattended in CI too.

GitHub Copilot subscription

Including the free tier — works unattended in GitHub Actions.

Cursor, Kiro, or Codex subscription — local development only Beta

Cursor / Kiro / Codex CLI

Uses the vendor's own CLI (agent, kiro-cli, or codex) signed in on your machine — each runs in a read-only mode, so a heal call can't touch files. Local development only (no unattended-CI login). kiro and codex answer cleanly; cursor's agent is chattier — try it and report back.

Or skip AI entirely Beta

tamash — rule-based, zero AI

No API key, no subscription, no network call, no tokens. Matches your .describe() text against the page's own accessibility tree. Never guesses — declines rather than risk a wrong heal. npm install tamash-playwright@beta

Why Teams Switch

Free to use — including commercially

Everyone wants tests that survive UI changes. Nobody wants to rewrite a suite every time a button moves.

Stock Playwright

  • A moved or renamed element breaks the locator
  • The test fails even though the app works fine for users
  • Someone has to notice, debug, and fix the selector
  • No visibility into which selectors are fragile

With TAMASH-Playwright

  • A locator failure triggers an AI-assisted retry, automatically
  • Heals and continues when the model finds a match
  • Falls back to a normal failure when it can't — no false positives
  • Every attempt logged: provider, model, selector, token cost, HTML report
  • One CI workflow turns the fix into a verified pull request — automatically
  • One import swap — your tests stay exactly as you wrote them

Samples & Support

See it wired into a real framework

Sample implementations for every language, plus where to raise bugs, feature requests, or support questions.

Sample Implementations

Direct-locator and Page Object Model styles for TypeScript, Python, and Java — wired into real test suites.

TypeScript sample

Python sample

Java sample

Bugs & Feature Requests

All support is handled through GitHub Issues. Pick the template that matches: bug report, feature request, or support request.

Open an issue

Filter by Language & Framework

Every issue is auto-labeled by language (TypeScript / Python / Java) and framework (Playwright Test / pytest / JUnit 5 / TestNG).

Browse labels

We automate for the future.
It should survive future changes.

Install it for free in TypeScript, Python, or Java, and try it against your own broken locators today.