Providers — overview
tamash-playwright needs something to decide where a broken element went. Pick one with HEALER_PROVIDER in your .env.
| Provider | Auth | CI | Languages | Notes |
|---|---|---|---|---|
ollama |
free API key | ✅ | TS, Python, Java | Ollama Cloud; good default |
openai |
API key | ✅ | TS, Python, Java | |
anthropic |
API key | ✅ | TS, Python, Java | |
gemini |
API key | ✅ | TS, Python, Java | |
claude-subscription |
claude login / OAuth token |
✅ | TS, Python | uses your Claude plan, no API key |
copilot-subscription |
copilot login / PAT |
✅ (GitHub Actions) | TS, Python (3.11+) | uses your Copilot plan, no API key |
tamash |
none | ✅ | TS, Python, Java | rule-based, zero AI, zero tokens |
ollama-local |
optional | ✅ | TS, Python, Java | your own self-hosted Ollama server |
kiro-subscription |
kiro-cli login |
❌ local only | TS, Python | verified healing; CLI-based |
codex-subscription |
codex login |
❌ local only | TS, Python | verified healing; CLI-based |
cursor-subscription |
agent login |
❌ local only | TS, Python | experimental — prefer kiro/codex |
Choosing
- Just trying it out →
ollamawith a free key. - You already pay for an LLM API →
openai/anthropic/gemini. - You have a Claude or Copilot subscription, no API key →
claude-subscription/copilot-subscription— the only "subscription, works in CI too" options. - No AI at all →
tamash. Deterministic, free, narrower success rate — best on well-.describe()d Page-Object suites. - Local dev, off a Kiro / Codex / Cursor subscription → CLI-based providers. Never for CI.
Every provider gracefully disables healing (heals just don't happen) if its own env vars aren't set — switching is an .env change, never a code change.
Cost & vision
Token usage is reported per heal in the console line and the report. tamash and cached hits cost nothing. Whether a provider can do the screenshot fallback depends on the model — npx tamash-playwright doctor tells you.