{"slug": "show-hn-argus-agentic-qa-for-teams-whose-coding-agents-move-faster-than-qa", "title": "Show HN: Argus, agentic QA for teams whose coding agents move faster than QA", "summary": "Argus, a new agentic QA tool for teams whose coding agents outpace traditional testing, lets users describe a test in plain language and deploys five AI agents—Validator, Comprehender, Explorer, Strategist, and Executor—to autonomously explore a UI in a Playwright browser, returning structured reports with screenshots and timelines. Built on Playwright and supporting localhost and private-network apps, Argus is source-available, local-first with SQLite storage and no telemetry, and requires Python 3.11+, uv, Node.js 20.19+ or 22.12+, and a Gemini API key for real runs. The tool is available at argustest.com and can be self-hosted, with a live run view streaming each agent's reasoning and actions.", "body_md": "**AI agents that test your UI like a real user — no scripts to write, no selectors to maintain.**\n\nArgus is a visual UI testing agent. Describe a test, point it at an HTTP(S) page, and watch it inspect the page in an isolated Playwright browser context. Runs, timelines, screenshot references, and structured reports are captured automatically.\n\nArgus finds the bugs you didn't write tests for.Point it at a page, describe what \"working\" looks like, and an autonomous agent explores your UI the way a real user would — clicking, typing, scrolling — then hands you a structured report with screenshots and a timeline. No test scripts to maintain, no flaky selectors to babysit.\n\n**Agentic, not scripted**— the agent reasons about the page and adapts, it doesn't replay a fixed script** Fits your stack**— built on Playwright, works against localhost and private-network apps** Zero setup ceremony**— start testing in minutes\n\nThe fastest way to run Argus: no install, no API keys to manage, nothing to self-host.\n\nGet started at [argustest.com](https://argustest.com/).\n\nA run isn't a single model call — it's five agents handing off to each other, and you can watch each one work in the live run view:\n\n**Validator**— checks the target URL and test description are actually testable before a run starts.** Comprehender**— reads the test description and breaks it into distinct test cases.** Explorer**— crawls the app first, mapping out pages and the actions available on each.** Strategist**— turns the map and test cases into a concrete step-by-step plan.** Executor**— runs the plan in a real browser: navigating, typing, clicking, and confirming outcomes as it goes.\n\nNothing happens in a black box — each agent streams its reasoning as it works, down to individual actions like \"Navigating to /companies\" or \"Confirming 'Airbnb' is on the page,\" so you see the app get mapped, the plan get built, and the test get executed, live.\n\nA test is just a description of intent — Argus figures out how to interact with the page. For example, pointed at Y Combinator's site:\n\n```\nTarget: https://www.ycombinator.com\n\nTest the startup directory.\n\n1. From the homepage, navigate to the companies/startup directory.\n2. Search for a well-known YC company by name (e.g. \"Airbnb\") and confirm it appears in the results.\n3. Filter the directory by a specific batch (e.g. \"Winter 2024\") and confirm the listed companies update to match.\n4. Open a company's profile from the results and confirm its name, one-line description, batch, and website link all render correctly.\n5. Navigate back to the directory and confirm the search/filter state behaves as expected — either preserved or reset, whichever the page is designed to do.\n6. Resize the viewport to 375px width and confirm the nav collapses into a mobile menu, and the directory list stays scrollable and usable with no overlapping elements.\n\nFail the test if the known company doesn't appear in search results, if the batch filter doesn't actually filter the list, if a company profile is missing expected fields, or if the mobile layout breaks.\n```\n\nArgus runs this like a person would — clicking through the flow, reading the page to judge success or failure — and returns a timeline, screenshots at each step, and a pass/fail report with the reasoning behind it.\n\nArgus is source-available and fully local-first — SQLite storage, no telemetry, your data and screenshots never leave your machine. Prefer to self-host? Follow the steps below.\n\n- Python 3.11+,\n, and Node.js 20.19+ or 22.12+`uv`\n\n- A\n[Gemini API key](https://aistudio.google.com/app/apikey)for real runs\n\n```\ncp .env.example .env\n# Set GEMINI_API_KEY in .env\nuv sync --dev\nuv run playwright install chromium\ncd frontend && npm install && npm run build && cd ..\nuv run uvicorn argus.app:app --reload --env-file .env\n```\n\nOpen [http://localhost:8000](http://localhost:8000). For frontend hot reload, run `npm run dev`\n\nin `frontend/`\n\nalongside Uvicorn and open [http://localhost:5173](http://localhost:5173).\n\nConfiguration is environment-only:\n\n| Variable | Default | Purpose |\n|---|---|---|\n`GEMINI_API_KEY` |\n— | Required for real execution |\n`GEMINI_MODEL` |\n`gemini-2.5-flash` |\nGemini REST model |\n`ARGUS_DATA_DIR` |\n`data` |\nSQLite and screenshot directory |\n`ARGUS_HEADLESS` |\n`true` |\nPlaywright browser mode |\n`ARGUS_RUN_TIMEOUT` |\n`300` |\nRun timeout in seconds |\n\nArgus accepts normal HTTP(S) targets, including trusted localhost and private-network apps. It rejects credentials and sensitive query parameters in target URLs, and never stores provider secrets, typed browser values, or inspected page content. The settings screen only shows whether provider configuration is present.\n\n```\ncp .env.example .env\n# Set GEMINI_API_KEY in .env\ndocker compose up --build\n```\n\nThe UI is available at [http://localhost:8000](http://localhost:8000) and persistent data is written to `./data`\n\n.\n\n```\nuv run pytest\nuv run ruff check argus tests\nuv run pyright argus tests\ncd frontend && npm run typecheck && npm run lint && npm run build\n```\n\n`argus/runtime`\n\n: provider-neutral agent, message, tool, and session boundary`argus/providers/gemini.py`\n\n: raw`httpx`\n\nGemini REST/SSE adapter (no provider SDK)`argus/pipeline.py`\n\n: planning, one browser agent, evidence capture, and reporting`argus/store.py`\n\n: SQLite runs, events, screenshots, and reports`argus/app.py`\n\n: REST API, reconnectable per-run WebSockets, and built UI serving`frontend`\n\n: dashboard/composer, live session, history, report, and read-only settings\n\nAPI docs are available at `/docs`\n\n. All data is local; there is no authentication or multi-user isolation in this release.\n\nArgus is source-available under the [Argus Source-Available License 1.0 (ASAL-1.0)](/argus-testing/argus/blob/main/LICENSE).\n\n**Individuals & Small Teams (< 100 members):** Free to use, modify, and self-host for both commercial and non-commercial purposes.**Enterprises (100+ members):** Requires a commercial license. Contact us at[licensing@argustest.com](mailto:licensing@argustest.com)to get set up.- Releases automatically convert to the\n**MIT License** after 3 years.", "url": "https://wpnews.pro/news/show-hn-argus-agentic-qa-for-teams-whose-coding-agents-move-faster-than-qa", "canonical_source": "https://github.com/argus-testing/argus", "published_at": "2026-08-18 19:10:16+00:00", "updated_at": "2026-08-18 20:10:56.859738+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "artificial-intelligence"], "entities": ["Argus", "Playwright", "Y Combinator", "Gemini", "SQLite", "Uvicorn", "Node.js", "Python"], "alternates": {"html": "https://wpnews.pro/news/show-hn-argus-agentic-qa-for-teams-whose-coding-agents-move-faster-than-qa", "markdown": "https://wpnews.pro/news/show-hn-argus-agentic-qa-for-teams-whose-coding-agents-move-faster-than-qa.md", "text": "https://wpnews.pro/news/show-hn-argus-agentic-qa-for-teams-whose-coding-agents-move-faster-than-qa.txt", "jsonld": "https://wpnews.pro/news/show-hn-argus-agentic-qa-for-teams-whose-coding-agents-move-faster-than-qa.jsonld"}}