Write tests much faster.
Describe what should happen in a sentence. Teststream writes the test, runs it in a real browser and checks it again on every pull request.
Removing an item from the cart updates the badge
Write with AI- GIVENthe cart contains Sauce Labs Backpack
- WHENI open the cart
- ANDI click "Remove" on Sauce Labs Backpack
- THENSauce Labs Backpack is no longer listed in the cart
- ANDthe cart badge is not shown
- First run
- with AI, recorded
- Every run after
- 0.8 s · $0 replay

- 1
Each step, and what the browser did
- 2
A replay: no AI, about a second
- 3
It tells you what it changed
- 4
New tests wait for your review
01 How it works
It helps your QA team. It doesn't replace it.
Teststream does the repetitive work. Your team reviews it and makes the decisions.
| When | Teststream | Your team |
|---|---|---|
| A new feature | Writes a test from a sentence | Reviews it and keeps it |
| A pull request | Runs the tests the change touches | Sees the result in the pull request |
| The UI changed | Finishes the broken step with AI and records it again | Approves the new recording |
| A test fails | Explains why, with screenshots | Fixes the app or the test |
| Before a release | Clicks through the app and reproduces each bug it finds | Decides what matters |
| Something new about the app | Suggests what it learned | Approves it |
02 Pull requests
Runs on every pull request.
One command in your GitHub or GitLab pipeline. You get a status check and a comment on the pull request.
$ npx @teststream/cli run --project SHOP --env Preview \
--base-url "$PREVIEW_URL" --mr auto --affected --wait
Merge request acme/shop!214
Tests picked: 6 of 41 tests: the changed files touch /cart,
/checkout-step-two, plus the 2 critical test(s).
MR !214 cart-redesign: completed · 5/6 passed (1 with heal,
review them) · 1 failed · est. $0.09
HEAL SHOP-12: The AI passed it from step 3, so the app most
likely changed. The new recording waits for review.
FAIL SHOP-31: Step 4: the Total is $29.99 after removing an
item; expected Item total plus Tax.Only the tests that matter
It matches the changed files to the screens it has seen. When it isn't sure, it runs everything.
A redesign doesn't break everything
If a step no longer fits, AI finishes the test and you approve the new recording.
Cheap to run
Replays don't use AI. Only new tests and broken steps do. In our demo shop a first run cost $0.13 and a replay $0.
03 Product
Plain English, not code.
A test is a few given / when / then steps. Anyone on the team can read it and change it. Log in once per role and reuse steps you repeat.

It learns your app.
Which accounts to use, what never to click, what things are called. Write it down once and every test and bug bash uses it. It also suggests things it learns along the way.
- ruleBug bashes
Sauce Demo is a public demo shop: orders are fake, but never finish an order in a bug bash unless the brief asks for it.
- accountDemo accounts
standard_user is a regular shopper. locked_out_user cannot log in. problem_user and error_user have deliberate defects.
- termInventory
The product list after login is called Products (inventory.html).
- suggestedYour Information
The first checkout step is called Your Information (checkout-step-one.html).
AcceptDismiss
A bug bash with AI.
Tell it what changed. A few AI explorers click through the app, and every bug they report is reproduced in a clean browser first. If they need a decision, they ask.
- Bug · highTotal keeps a removed item until the page reloads Reproduced in a clean browser · 5 steps
- SuspectedZip code field accepts letters Reproducing…
- Needs youMay the explorers place a real order?Answer in the app and the bug bash goes on
Works with your coding agent.
Claude Code, Cursor, Codex, Copilot and OpenCode can find tests, run them step by step and propose new ones. Every proposal waits for a person.
› Add a coupon field to checkout, with a test.
tests_search "coupon" no tests yet
tests_propose new test SHOP-42, waits for review
session_start SHOP-42 browser on the preview
session_run_all 5 of 5 steps passed
session_keep recorded05 Beta
We're in beta.
Here's what works today and what we're building next.
Today
- Plain-English tests, written with AI
- AI on the first run, free replays after
- Self-healing, with your approval
- Explanations for failed tests
- AI bug bash
- GitHub and GitLab checks
- CLI and MCP for coding agents
- Teams, roles and permissions
Next
- New test ideas from every pull request
- Record a test by clicking, no AI
- Slack notifications
- Jira, GitHub and GitLab issues from findings
- Scheduled runs
- Self-hosting
No dates yet. Beta teams help us pick the order.
06 Demo
Want to see it on your app?
Tell us a bit about your app. We'll set up a call and show you Teststream live.
Thanks!
We'll get back to you at soon.

Teststream: MR !214 cart-redesign
5/6 passed · 1 with heal (review) · 1 failed · environment Preview · est. cost $0.09
Open the run in Teststream for steps, screenshots, video and traces.