Skip to main content

> agent-qa

The self-improving QA agent for software teams.

Write tests in natural language for web and mobile. agent-qa builds memory with every run, adapts to UI changes, and catches regressions before you ship.

15K+

test runs

1,200+

manual testing hours saved

120K+

total sub actions executed

Natural-language tests

Write actions and assertions in plain English; agent-qa resolves them against the live interface.

Learn about natural language tests

Plain-English YAML

Describe the behavior once; it stays as reviewable YAML in your repository.

Learn more

User-facing targets

Name visible controls and labels instead of brittle selectors.

Learn more

One format everywhere

Use the same test structure on web, Android, and iOS.

Learn more

Execution memory

Turn successful runs into reviewable, evidence-backed memory that makes every future run faster.

Learn about memory

Reviewable bundles

Every learned fact ships with its evidence as files in your repository.

Learn more

Proven before it is used

New knowledge must pass replay and live evidence before guiding a run.

Learn more

Faster warm runs

Reuse proven flows and supersede stale facts instead of rediscovering them.

Learn more

Web, Android, and iOS

Run the same natural-language flow across web, Android, and iOS with Playwright or Appium.

Learn about mobile testing

Execution kernels

Playwright and Appium perform live decisions, never generated scripts.

Learn more

Three web engines

Run one flow on Chromium, Firefox, or WebKit.

Learn more

Native and remote devices

Drive Android and iOS locally or on remote devices.

Learn more

Built for Humans & Agents

Humans and agents author the same reviewable YAML, backed by your repository, skills, and MCP.

Learn about MCP and skills

Anyone can author

Product, engineering, and QA write the same plain-language test.

Learn more

Skills and MCP for agents

Skills teach the workflow; MCP validates, runs, and returns artifacts.

Learn more

One shared artifact

Every author produces the same reviewable YAML in the repository.

Learn more

Self-improvement

agent-qa diagnoses each run, learns only from valid evidence, and proves every lesson before using it.

Learn about the curator

Diagnosis first

Flaky tests and broken environments are excluded from learning.

Learn more

Prove every lesson

New lessons must pass past-run replay and a live canary.

Learn more

It never rewrites itself

It updates app knowledge and proposes rules, never its own prompts or code.

Learn more

Self-healing execution

When an action fails, agent-qa re-observes the screen and finds another route to the same outcome.

Learn about self-healing

Re-observe, then re-plan

After a failed action, agent-qa reads the screen and plans again.

Learn more

Same outcome only

Recovery is accepted only when it completes the requested step.

Learn more

An honest trace

Every failed, retried, and refused action remains visible.

Learn more

Caching and token optimization

Reuse validated actions while the screen still matches, cutting tokens and runtime without generating scripts.

Learn about caching

No generated scripts

Each run chooses actions live; nothing is recorded or compiled.

Learn more

Reuse while valid

Cached actions run only while their target and screen still match.

Learn more

Cheaper the longer it lives

Every proven run reduces the work, time, and tokens needed next.

Learn more

Execution speed

5x

42s to 8s

A run that meets screens it has already proved spends its time acting rather than deciding.

Token saving

60%

less token usage

A reused action never reaches the model, so the only thinking billed is the thinking your app made necessary.

Version controlled, built for teams

Tests, knowledge, and rules stay as reviewable files shared by teammates, agents, and CI.

Learn about configuration

Files, not a database

Tests, config, memory, and rules stay as files your team can inspect and own.

Learn more

Learning arrives as a diff

New memory and issues arrive as pull-request diffs, with their evidence.

Learn more

One commit everywhere

Humans, coding agents, and CI share the same knowledge from one commit.

Learn more

Sandboxed hooks

Run Node, Bun, Python, or Bash hooks in isolated containers and pass structured results back into the test.

Learn about hooks

Four runtimes

Write hooks in Node, Bun, Python, or Bash.

Learn more

Isolated execution

Read-only containers cap resources and can block network access.

Learn more

Structured outputs

Hooks return dotenv values that later steps can reuse.

Learn more

Explore live demos.

Switch between real agent-qa runs and inspect the evidence directly.

agent-qa Supabase Run
Demo for illustration only. All product names and logos are property of their respective owners.

Questions, answered.

Does agent-qa generate test code or scripts?

No. There is no generated script and no selector file. Every run reads the live screen and works out what to do from there, which sounds like repeating yourself and is not: no run is wasted, because each one feeds what it learned back in and the agent gets more accurate about your product over time. A validated action plan is cached and replayed while the screen still matches, which cuts planner tokens by around 60 percent, and the moment the interface changes under it the stale plan is purged and that step is worked out again. The suite gets faster and cheaper the longer it lives, and none of that speed comes from freezing it into a recording.

How caching works

What does it remember between runs?

What it learned about your product, written to disk as markdown under a memory root in your repository and organised by product, suite and test. It is not hidden model state. You read it in a pull request like any other file, and a new observation has to hold up against past runs before a planner is allowed to use it.

How memory works

Does the same test work on web and mobile?

Yes, which is the point of describing behaviour instead of selectors. You name the control the way you would say it out loud, the Checkout button or the issues table, and agent-qa resolves it against whatever is in front of it. Web runs use browser runtimes it installs and manages, leaving the browsers you already have alone. Android and iOS run through Appium drivers and the usual platform tooling, against an emulator, a simulator or a device on your desk.

Mobile testing guide

Which models can I use?

Any OpenAI-compatible or Anthropic-compatible endpoint, Gemini, or a local model served through something like Ollama or LM Studio. Codex and Claude Code subscriptions work too, through the optional subscription auth package. Pick a multimodal one: runs read screenshots, so text-only models are a poor fit for visual QA.

Connect a model

Is agent-qa free?

Yes. It is free to install and free to run, the source is public, and no feature is held back behind a paid tier. The tests you write and the memory it builds are ordinary files in your own repository. The only running cost is whatever your model provider charges for inference, which is the number the cache is there to keep down.

Read the license

Write your first test.