testuiux
Autonomous visual UI/UX defect detector and responsive layout verification engine powered by Playwright and Qwen2.5-VL. Captures multi-viewport screenshots, recognizes layout bugs, generates structured report.json, and triggers a lightweight triage model (SLM) to produce an executive briefing directly consumable by primary coding agents.
Features
- Zero Manual Setup: Fully autonomous model lifecycle. Automatically detects local Ollama instances, boots the daemon in the background if closed, and pulls models on-demand.
- Multi-Viewport Automated Capture: Uses Playwright to render mobile (
375x812), tablet (768x1024), and desktop (1440x900) viewports. - Vision-Language QA Inspection: Evaluates screenshots with Qwen2.5-VL to spot element collisions, text overlap, truncation, unconstrained horizontal overflows, broken assets, and unreadable color contrast.
- Visual Defect Highlighting: Uses Pillow to render color-coded bounding boxes and severity badges.
- Structured JSON Reporting: Automatically exports
report.jsonwith coordinate boundaries, severity ratings, and CSS remedies. - Dual-Model Autonomous Triage: Feeds raw audit data into a compact language model (
qwen2.5:1.5b) to synthesize an executive briefing (agent_briefing.txt) for primary AI coding assistants. - Antigravity Skill Native: Registered as a persistent skill (
testuiux) invoked automatically whenever frontend UI changes are implemented.
Requirements
- Python 3.10+
- Playwright Chromium (
playwright install chromium) - Ollama (optional, auto-detected if installed)
Installation
Install directly from PyPI:
pip install testuiux
playwright install chromium
Usage
1. Autonomous Run (Zero Configuration)
Point testuiux to any URL or local HTML file. The tool automatically detects runtime environment and produces JSON audit data with agent briefings:
testuiux http://localhost:3000
Or on local HTML files:
testuiux demo/buggy_site.html
2. Export All Formats (JSON + Side-by-Side HTML Report)
testuiux http://localhost:3000 --format all --output-dir ./audit_results
Generated Artifacts
audit_results/
├── report.json # Structured machine-readable defects data
├── agent_briefing.txt # Executive briefing for primary AI agent
├── report.html # Standalone side-by-side comparison report
├── screenshot_mobile.png # Clean capture
└── annotated_mobile.png # Highlighted defects capture
Defect Categories
| Issue Type | Description |
|---|---|
ELEMENT_COLLISION |
Fixed footers, modals, or floating buttons occluding interactive UI |
HORIZONTAL_OVERFLOW |
Containers exceeding screen boundaries causing horizontal scroll |
TEXT_OVERLAP |
Colliding labels or texts rendering over other visual components |
TEXT_TRUNCATION |
Prematurely clipped strings lacking proper CSS ellipsis rules |
BROKEN_ASSET |
Failed image requests and unrendered placeholder graphics |
CONTRAST_LOW |
Text violating accessibility contrast standards against background |
License
Licensed under the Apache License, Version 2.0. See LICENSE for details.
Metadata
Release files for testuiux 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| testuiux-0.1.2.tar.gz | 19.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| testuiux-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 41.1 kB
Release files / testuiux-0.1.2.tar.gz
| Download URL | testuiux-0.1.2.tar.gz |
|---|---|
| Size | 19.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b82a617ba1013c9cdfb50e6753eda0d56a77063fa9e6ef3a3b44ebfc837cb4e4
|
|
BLAKE2b-256 checksum How to use checksums |
abba1a4cb82d55be1d0c9989191f3b7dfb1c9fb3c0b84a9788200a996e78e5f1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.15
|
Release files / testuiux-0.1.2-py3-none-any.whl
| Download URL | testuiux-0.1.2-py3-none-any.whl |
|---|---|
| Size | 21.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1e2341b046ff1ca005bd121faf9581b06424010afab9105daad507b8a7855b16
|
|
BLAKE2b-256 checksum How to use checksums |
2a245ba2572d8c55fc15d9c56eaf5e79bafc54a7e5bec9d991fad8fb71621a90
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.15
|