Now in Public Beta

AI writes code in seconds.
Stop spending hours testing it.

Give Auto Smoke a URL and plain-English test steps. Our AI vision agent finds elements contextually, not by brittle selectors. Tests that never break, zero maintenance, zero config.

The end of test maintenance

You shipped the feature. Why are you still fixing tests?

The Old Way

  • Brittle CSS selectors & XPath that break on every deploy
  • Hours maintaining DOM trees and Gherkin specs
  • Flaky CI runs that cry wolf on every PR
  • Writing boilerplate test setup nobody wants to touch
  • Tests that are harder to maintain than the app itself

The Auto Smoke Way

  • Plain English instructions anyone on the team can write
  • AI vision agent finds elements by intent, not selectors
  • Self-healing tests that adapt to UI changes automatically
  • Zero setup: paste a URL and start testing in 60 seconds
  • CI/CD integration that just works, on every PR

How it works

Three steps. That's it.

No SDKs, no test runners, no browser drivers. Just results.

Step 01

Provide your URL

Paste your staging or production URL. Auto Smoke maps the DOM and auto-discovers user workflows, pages, and interactive elements. No config files. No setup scripts.

Step 02

Write in plain English

Describe what you want to test like you'd explain it to a teammate: "Log in with test@example.com, navigate to the dashboard, verify the chart loaded." No code required.

Step 03

Integrate with CI/CD

Add our GitHub Action or GitLab CI template. Auto Smoke runs on every PR, posts results as a check, and notifies your team. If something breaks, you know in minutes.

See the difference

14 lines of fragile code vs. 3 lines of plain English

When that CSS class changes next sprint, guess which one still passes.

cart.spec.ts
1import { test, expect } from "@playwright/test";
2
3test("user can add item to cart", async ({ page }) => {
4 await page.goto("https://store.example.com");
5 await page.locator(
6 'div.nav__wrapper > ul > li:nth-child(3) > a[data-testid="shop-link"]'
7 ).click();
8 await page.waitForSelector(
9 ".product-grid__container .product-card:first-child"
10 );
11 await page.locator(".product-card:first-child .btn--add-to-cart").click();
12 const cartBadge = page.locator("span.cart-icon__badge");
13 await expect(cartBadge).toHaveText("1");
14});
add-to-cart.smoke
1Navigate to the Shop page
2Click 'Add to Cart' on the first product
3Verify the cart badge shows 1 item
All 3 steps passed in 4.2s