Skip to main content

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

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.

Metadata

Release files for mantis-web-crawler 1.4.1

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

Source distribution (sdist)

Source distribution for mantis-web-crawler 1.4.1
File Size Uploaded
mantis_web_crawler-1.4.1.tar.gz 84.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mantis-web-crawler 1.4.1
File Interpreter ABI Platform
mantis_web_crawler-1.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 181.3 kB

Release files / mantis_web_crawler-1.4.1.tar.gz

Download URL mantis_web_crawler-1.4.1.tar.gz
Size 84.2 kB
Tags Source
SHA-256 checksum
How to use checksums
acfda17c8d0b5ddeb709c67c7534552ca1ae1d2db6c994f07c935e6e0c6a8597
BLAKE2b-256 checksum
How to use checksums
0365a53335739b64a341694cbfa9a9870a7a4ee70b53a4045a4c1194520ca144
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.17

Release files / mantis_web_crawler-1.4.1-py3-none-any.whl

Download URL mantis_web_crawler-1.4.1-py3-none-any.whl
Size 97.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5c3534518b101a974e258aa611c3bd35b2eb67efbebc2827dc93dba73550fc2e
BLAKE2b-256 checksum
How to use checksums
5ceac0ee3515fa0ec50da50b2a416cee27617fd19d95ae7ba61f6f6167afddb5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.17

Release history Release notifications | RSS feed

This release

1.4.1 This release

2 release files

1.4.0

2 release files

1.2.0

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.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