Skip to main content

UX/UI audit tool with screenshots and Gemini analysis

Project description

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.

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

Project links

CLI options

uxaudit analyze --help

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uxaudit-0.1.2.tar.gz (18.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

uxaudit-0.1.2-py3-none-any.whl (19.8 kB view details)

Uploaded Python 3

File details

Details for the file uxaudit-0.1.2.tar.gz.

File metadata

  • Download URL: uxaudit-0.1.2.tar.gz
  • Upload date:
  • Size: 18.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for uxaudit-0.1.2.tar.gz
Algorithm Hash digest
SHA256 bfdf063be9e388cc29b515887904e48d56cab15a20dd61960a1a8296a676b1a4
MD5 2f4790b5a10c58abd5c2dca659671446
BLAKE2b-256 eddf7bb1a89ec113019572c01c9001b3eff33ce3e8fd2a7d9e433f9d9345cf4f

See more details on using hashes here.

Provenance

The following attestation bundles were made for uxaudit-0.1.2.tar.gz:

Publisher: release.yml on albertoburgosplaza/uxaudit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uxaudit-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: uxaudit-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 19.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for uxaudit-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9112141453726f51964b7b31a6cc7d4127eaf59d7bdf9776d308426ec53a299c
MD5 1627948205f29d1f601f8ab38f5e471a
BLAKE2b-256 0ac235dd7a095d654bbff86784fd5b7f6e428e6b1babf918e5b784ceed8619a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for uxaudit-0.1.2-py3-none-any.whl:

Publisher: release.yml on albertoburgosplaza/uxaudit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page