Skip to main content

uxaudit

PyPI Python CI License

UXAudit logo

UX/UI audit tool that captures screenshots and analyzes them with Gemini.

Highlights

  • Full-page and section screenshots with evidence links.
  • Multi-page crawling from header, nav, and footer.
  • Structured JSON output for agents and pipelines.

Requirements

  • Python 3.10+
  • Playwright browsers: playwright install
  • Gemini API key: GEMINI_API_KEY (or GOOGLE_API_KEY)

Install

PyPI

python3 -m pip install uxaudit

Editable (dev)

python3 -m pip install -e .[dev]

Usage

export GEMINI_API_KEY="your-key"
uxaudit analyze https://example.com --model flash

Outputs are written to runs/<run_id>/ with manifest.json and report.json.

Redesign mode (visual alternatives)

Generate bold, visual redesign concepts plus NanoBanana-ready prompts:

uxaudit redesign https://example.com \\
  --variants 4 \\
  --goals "premium, conversion-focused" \\
  --style-notes "bold typography, large imagery" \\
  --constraints "keep logo, keep primary CTA"

Outputs are written to runs/<run_id>/ with redesign.json and a local preview at redesign/index.html. By default, uxaudit auto-generates renders using Gemini image generation (NanoBanana Pro) with the same API key. To skip auto rendering, use --render-mode none. You can override the image model with --render-model (default nano-banana-pro maps to gemini-3-pro-image-preview). Save or replace visuals at redesign/concept-<page>-<index>.png to update the preview.

Crawling multiple pages

uxaudit analyze https://example.com --max-pages 5

Style consistency analysis

By default uxaudit runs a cross-screenshot style consistency pass. You can disable it or tune the batch size:

uxaudit analyze https://example.com --no-style-consistency
uxaudit analyze https://example.com --style-consistency-batch-size 10

Login (form-based)

# Example with fake credentials
export UXAUDIT_AUTH_USERNAME="alex.rios@example.test"
export UXAUDIT_AUTH_PASSWORD="P@ssw0rd-Example-123"

uxaudit analyze https://demo.example.test \\
  --auth-mode form \\
  --auth-login-url https://demo.example.test/login \\
  --auth-post-login-url https://demo.example.test/app \\
  --auth-username-selector "#email" \\
  --auth-password-selector "#password" \\
  --auth-submit-selector "button[type=submit]" \\
  --auth-success-selector ".dashboard"

Login (storage state)

uxaudit analyze https://app.example.com \\
  --auth-mode storage_state \\
  --auth-storage-state /path/to/storage_state.json

Development

ruff check .
ruff format .
mypy uxaudit
pytest

CLI options

uxaudit analyze --help

Metadata

Release files for uxaudit 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for uxaudit 0.2.0
File Size Uploaded
uxaudit-0.2.0.tar.gz 31.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for uxaudit 0.2.0
File Interpreter ABI Platform
uxaudit-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 63.9 kB

Release files / uxaudit-0.2.0.tar.gz

Download URL uxaudit-0.2.0.tar.gz
Size 31.1 kB
Tags Source
SHA-256 checksum
How to use checksums
d334a2701a4ba820e74f12d2eed85b8912e7ac0ca7f28e6d2d5a46e811d73e43
BLAKE2b-256 checksum
How to use checksums
23a10f4496421866bcbd66b79196f5a33563037ebe5e1f5bba27036d7c4c86af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 31, 2025.

Transparency log

Release files / uxaudit-0.2.0-py3-none-any.whl

Download URL uxaudit-0.2.0-py3-none-any.whl
Size 32.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9f2a0422928486e93b9656a6cf57b2213e7909f551d4faafb4b4bdcb6b94a20a
BLAKE2b-256 checksum
How to use checksums
2acabdf85715f600bd7e568b396827ea1ca4f4869322f1c433f715731966abb0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 31, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page