CLI tool that grades how accessible a website is to AI clients
Project description
botaudit
CLI tool that grades how accessible a website is to AI clients.
botaudit fetches a webpage, analyzes its HTML structure, and scores it across six categories that affect how well AI crawlers and language models can discover and consume its content. The output is a letter-graded report with per-category scores and actionable recommendations.
Installation
Requires Python 3.11+.
pip install botaudit
Usage
botaudit https://example.com
Options
| Flag | Description |
|---|---|
--timeout SECONDS |
HTTP request timeout (default: 10) |
--format {text,json,csv} |
Output format (default: text) |
--no-recommendations |
Suppress improvement recommendations |
--skip-llm-discovery |
Skip LLM discoverability analysis (no robots.txt/llms.txt fetches) |
--fail-under GRADE |
Exit with code 1 if grade is below GRADE (A, B, C, D, or F) |
CI usage
# Fail the build if the site scores below a B
botaudit https://staging.myapp.com --fail-under B --format json
Example output
==================================================
BotAudit Report
https://example.com
==================================================
Overall Grade: B (82/100)
--------------------------------------------------
Content Availability (27%) 90/100
--------------------------------------------------
- 342 words of visible text.
- <noscript> fallback present.
Semantic HTML (23%) 68/100
--------------------------------------------------
- 15 semantic vs 7 generic elements (ratio: 68%)
- Semantic tags: nav (3), article (2), section (4), header (2), ...
Recommendations:
[MEDIUM] Wrap supplementary content (sidebars, promos) with <aside>.
...
Categories
Each category is scored 0-100 and weighted toward the overall grade:
| Category | Weight | What it measures |
|---|---|---|
| Content Availability | 27% | Visible text in initial HTML, <noscript> fallback |
| Semantic HTML | 23% | Ratio of semantic elements (<article>, <nav>, ...) to generic containers (<div>, <span>) |
| Link Discoverability | 18% | Navigable <a href> links vs javascript:, #, or empty hrefs |
| Structured Data | 13% | JSON-LD, Open Graph tags, meta description |
| Metadata & Discoverability | 9% | <title>, canonical URL, robots meta, sitemap reference |
| LLM Discoverability | 10% | robots.txt AI crawler policies, llms.txt, llms-full.txt |
Grades map to the overall weighted score: A (90+), B (80-89), C (70-79), D (60-69), F (<60).
Categories scoring below 90 receive actionable recommendations at HIGH, MEDIUM, or LOW severity.
Development
python -m venv .venv
source .venv/bin/activate # or .venv\Scripts\activate on Windows
pip install -e .
Running tests
python -m unittest discover tests
Project structure
src/botaudit/
cli.py CLI entry point and argument parsing
fetcher.py HTTP fetching with error handling
analysis.py HTML analysis (5 categories)
robots_analysis.py robots.txt parsing for AI crawler access
llm_discoverability.py LLM discovery file fetching and analysis
grading.py Per-category scoring and overall grading
recommendations.py Per-category recommendation generation
report.py Report formatting (text, JSON, CSV)
models.py Shared data structures and constants
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file botaudit-1.2.0.tar.gz.
File metadata
- Download URL: botaudit-1.2.0.tar.gz
- Upload date:
- Size: 22.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f990d127ac80360f2b95b85705ab145edea15fd6a4084ebfc08a16cc5ca3d1b0
|
|
| MD5 |
f7ea32b39210da7f7a3a691fb9948628
|
|
| BLAKE2b-256 |
e0e090eb7e97fd2e0768a12efc699f726d83b03070f9a3b8a4b9fe3d026377fe
|
File details
Details for the file botaudit-1.2.0-py3-none-any.whl.
File metadata
- Download URL: botaudit-1.2.0-py3-none-any.whl
- Upload date:
- Size: 22.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41c68aad090aece6e65c852ba43df10f02877ae69590f3edeb2126a8d9480302
|
|
| MD5 |
3741fb8f8504e466852829867e85e007
|
|
| BLAKE2b-256 |
7583973b13e06097b48610a5883d866ee372b5ede7cb8bfc242fc672932de53c
|