# TestWatch docs: overview and quickstart

Source: https://testwatch.dev/docs
Updated: 2026-10-17

TestWatch writes Playwright tests from a plain-English description of a user flow, runs them on a schedule or from CI, and tells you why a run failed.

## What TestWatch does

You describe a flow the way you would explain it to a colleague. TestWatch explores your app in a real browser, writes a Playwright test, and runs it to check it passes before it calls the test ready. After that, every run executes that code. Passing runs make no AI calls. When a run fails, TestWatch gives a reason (a real bug, a page change, the app being down, a CAPTCHA, a rejected login) and, for a page change, proposes a fix that changes only locators or waits. Nothing is applied until someone approves it.

The tests are plain Playwright. You can read and copy each one, and export the whole suite as a project that runs without TestWatch.

## Quickstart

1. **Sign up.** [Create a free workspace](https://app.testwatch.dev/register?plan=free&utm_source=site&utm_medium=cta&utm_content=docs-quickstart). Free: 5 tests, 500 runs a month, 2 apps and one daily schedule. Unlimited teammates, no card.
2. **Add an app.** Give it a name and the URL of the site to test. A staging URL is the usual choice. If the flows need a login, add a test account: an existing email and password, or a new TestWatch inbox address you sign up with. Pick the browser profiles to test on.
3. **Describe a flow.** Write what a user does and what should happen, for example “Sign in, add the first product to the cart, and check the cart shows one item.”
4. **Generate.** TestWatch explores the app and writes the test. If it can’t finish, it says why, such as a CAPTCHA, a login that was rejected, or a site that didn’t load, with a link to what to fix.
5. **Run.** Run the test from the dashboard. Pick the environment and the test account to sign in as. By default each run keeps the console, the network log and a screenshot after every step.
6. **Schedule.** Add a schedule from a preset or a cron expression. When a scheduled run fails and no alert channel picks it up, the workspace owner gets an email. Alert channels (Slack, email lists and signed webhooks) are on Starter and up.

On Starter and up you can also start runs from CI, from a deploy hook, or against a preview URL. The guides below cover each one.

## Guides

- [GitHub Action](https://testwatch.dev/docs/github-action): Run your tests from a workflow and fail the job on a real bug.
- [CLI](https://testwatch.dev/docs/cli): The same from any CI: one npx command, a verdict and an exit code.
- [REST API](https://testwatch.dev/docs/api): Start runs, read verdicts and download JUnit with a workspace API key.
- [Deploy hooks and webhooks](https://testwatch.dev/docs/deploy-hooks-and-webhooks): Start a run when a deploy finishes, and receive signed events when something fails.
- [Preview URLs and protected staging](https://testwatch.dev/docs/preview-urls-and-protection): Test preview deploys and staging sites behind Basic auth, Vercel or Cloudflare Access.
- [Test fixtures: inboxes and test data](https://testwatch.dev/docs/fixtures): Test email inboxes, unique test data and the cleanup webhook.
- [Export your suite](https://testwatch.dev/docs/export): Download every test as a Playwright project you can run anywhere.

## Getting help

Email [hello@testwatch.dev](mailto:hello@testwatch.dev). Include the run or test link from the dashboard if your question is about one. Service status is at [status.testwatch.dev](https://status.testwatch.dev/). Security reports go to [security@testwatch.dev](mailto:security@testwatch.dev).
