Natural Language Tests
Write tests the way you'd explain them to a teammate. No code, no selectors, no XPath. If you can describe it, you can test it.
Describe what to test in words. TestWithWords drives a real browser with AI โ clicking, typing, verifying โ and gives you screenshot evidence.
npm i -g testwithwords
# Ships in the package url https://www.wikipedia.org test "Wikipedia homepage loads" Verify the page shows "Wikipedia"
$ tww run examples/basic.test.tww ๐งช TestWithWords v0.1.5 Chromium (standalone) ยท github/gpt-4.1-mini PASS examples/basic.test.tww โ Wikipedia homepage loads (4.2s) Screenshots: 3 captured Report: results/run-1/report.html Summary: 1 passed, 0 failed
Write a .tww file on the left. Get test results on the right.
# cart.test.tww describe "Shopping Cart" test "can add item to cart" Navigate to the shop homepage Search for "mechanical keyboard" Click on the first product Click "Add to Cart" Verify the cart shows 1 item
$ tww run cart.test.tww ๐งช TestWithWords v0.1.5 Chromium (standalone) ยท github/gpt-4.1-mini PASS cart.test.tww Shopping Cart โ can add item to cart (8.4s) Tests: 1 passed, 0 failed Time: 8.4s ๐ Report: results/report.html
Stop fighting with selectors and scripts. Start testing in words.
Write tests the way you'd explain them to a teammate. No code, no selectors, no XPath. If you can describe it, you can test it.
An AI agent reads the page, decides what to click, type, or verify โ and adapts when the UI changes. No brittle scripts that break on every redesign.
Every test step produces a screenshot. See exactly what happened, when it happened, and share results in a beautiful HTML report.
Works out of the box with GitHub Models โ free for open source contributors. No API keys to buy.
Three steps. Under two minutes. You're testing.
Describe your test in a .tww file using words. Structure with describe and test blocks โ just like Jest.
Execute with tww run. The AI agent launches a browser, reads the page, and performs every step you described.
Get a Jest-style pass/fail summary in the terminal, plus an HTML report with screenshots of every step.
Three commands and you're running AI-powered tests.
# Install globally $ npm i -g testwithwords # Authenticate with GitHub Models (free!) $ tww auth # Run your first test $ tww run "Go to www.testwithwords.com and verify the heading says Write tests in words"
Try it now โ this exact file ships in the npm package, so your first run can start with something real.
# basic.test.tww url https://www.wikipedia.org test "Wikipedia homepage loads" Verify the page shows "Wikipedia"
.tww file, not a fake snippet.
Install the package, then run tww run examples/basic.test.tww to watch TestWithWords open a real browser and verify a real page.
This file ships with the package in examples/basic.test.tww.
Everything you need to get started and go deep.
Full walkthrough from install to your first passing test.
Every command and flag, with examples for each.
How to write test files โ describe, test, hooks, reusable flows.
.twwrc.json settings reference for advanced setups.
Real error messages and real fixes.
TestWithWords is open source and free to use. Star the repo, share it, or just say hi!