Skip to main content

Web accessibility and UI bug detection tool

Project description

Mantis Web Crawler

🕷️ Mantis is a powerful web accessibility and UI bug detection tool that crawls websites to discover issues before they reach production.

Originally created for Hack The North 2025

Features

  • 🔍 Comprehensive Web Crawling: Deep crawl of websites with configurable depth and page limits
  • Accessibility Testing: Automated detection of accessibility violations
  • 🎨 Visual Layout Analysis: Detection of UI layout bugs and visual inconsistencies
  • 📊 Real-time Dashboard: Live monitoring of crawl progress with WebSocket updates
  • 📋 Detailed Reporting: JSON reports with bug details, evidence, and recommendations
  • 🚀 Easy CLI Interface: Simple command-line tool for quick scans

Installation

From PyPI (Recommended)

pip install mantis-web-crawler
playwright install

From Source (Development)

# Clone the repository
git clone https://github.com/yourusername/mantis.git
cd mantis

# Install the package
pip install -e .

# Install Playwright browsers (required)
playwright install

Quick Start

Setting up API Keys

To use AI-powered visual analysis, set your API keys as environment variables:

# Add to your shell profile (.bashrc, .zshrc, etc.) or set before running
export COHERE_API_KEY="your-cohere-api-key-here"
export GEMINI_API_KEY="your-gemini-api-key-here"  # Optional, alternative to Cohere

Or set them temporarily for a single session:

# Set for current session only
export COHERE_API_KEY="your-api-key"
mantis run https://example.com

After installation, you can run Mantis directly from anywhere:

# Basic crawl
mantis run https://example.com

# Advanced options
mantis run https://example.com --max-depth 2 --max-pages 25
mantis run https://example.com --output my_report.json --verbose
mantis run https://example.com --dashboard  # Launch with live dashboard

Usage Examples

Basic Website Scan

mantis run https://example.com

Deep Crawl with Custom Limits

mantis run https://example.com --max-depth 3 --max-pages 50

Generate Custom Report

mantis run https://example.com --output accessibility_report.json --verbose

Launch with Real-time Dashboard

mantis run https://example.com --dashboard

Command Line Options

  • url: Starting URL to crawl (required)
  • --max-depth: Maximum crawl depth (default: 3)
  • --max-pages: Maximum number of pages to crawl (default: 10)
  • --output: Output file for JSON report (optional)
  • --verbose: Enable verbose logging
  • --dashboard: Launch real-time monitoring dashboard
  • --scan-type: One of 'all', 'ui', 'accessibility' or 'performance'. Defaults to 'all'.

Requirements

  • Python 3.8+
  • Playwright browsers (automatically installed with playwright install)

Development

# Clone the repo
git clone https://github.com/yourusername/mantis.git
cd mantis

# Install in development mode
pip install -e .[dev]

# Install pre-commit hooks
pre-commit install

# Run tests
pytest

Contributing

We welcome contributions! Please see our contributing guidelines for more details.

License

MIT License - see LICENSE file for details.

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

mantis_web_crawler-1.4.1.tar.gz (84.2 kB view details)

Uploaded Source

Built Distribution

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

mantis_web_crawler-1.4.1-py3-none-any.whl (97.1 kB view details)

Uploaded Python 3

File details

Details for the file mantis_web_crawler-1.4.1.tar.gz.

File metadata

  • Download URL: mantis_web_crawler-1.4.1.tar.gz
  • Upload date:
  • Size: 84.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.17

File hashes

Hashes for mantis_web_crawler-1.4.1.tar.gz
Algorithm Hash digest
SHA256 acfda17c8d0b5ddeb709c67c7534552ca1ae1d2db6c994f07c935e6e0c6a8597
MD5 716d9c4653ac70ab3db052e1a481a360
BLAKE2b-256 0365a53335739b64a341694cbfa9a9870a7a4ee70b53a4045a4c1194520ca144

See more details on using hashes here.

File details

Details for the file mantis_web_crawler-1.4.1-py3-none-any.whl.

File metadata

File hashes

Hashes for mantis_web_crawler-1.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5c3534518b101a974e258aa611c3bd35b2eb67efbebc2827dc93dba73550fc2e
MD5 7b27517654bdade995650b0005d56308
BLAKE2b-256 5ceac0ee3515fa0ec50da50b2a416cee27617fd19d95ae7ba61f6f6167afddb5

See more details on using hashes here.

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