BotLens is a Chrome extension that analyzes whether a website can be read and understood by AI systems — GPTBot, ClaudeBot, Perplexity, Google-Extended, and 15+ other LLM crawlers. It produces an actionable 0-100 readability score and a technical breakdown of how bots see your content.
Homepage: botlens.iamjarl.com · Privacy: botlens.iamjarl.com/privacy.html
As the web becomes increasingly AI-native, a new question arises: "Can AI read this?"
BotLens helps developers and site owners answer this by inspecting technical signals — like robots.txt directives, meta tags, semantic HTML, structured data, and JavaScript rendering — that determine whether systems like GPTBot and ClaudeBot can effectively interpret a page.
- AI Readability Score — Weighted 0-100 score across four signal categories.
- robots.txt Analysis — Full spec support: Allow/Disallow precedence, wildcards (
*), end-of-path anchors ($), and 20+ AI user-agents includingGPTBot,ClaudeBot,PerplexityBot,Google-Extended,Bytespider, and more. - Meta Directive Detection —
noindex,nofollow,noai,noimageai, and bot-specific meta tags. - Semantic Structure Check — Heading hierarchy, HTML5 landmarks, image alt-text coverage, JSON-LD, and
<html lang>. - JS Rendering Detection — Compares initial HTML to rendered DOM to catch SPA shells that hide content from crawlers.
- Privacy-first — 100% local. No accounts, no telemetry, no external servers.
- Manifest V3 — modern Chrome extension architecture
- Vanilla JavaScript — no frameworks, no build step required to load unpacked
- Design tokens — IAMJARL Design Tokens
- Icons — inline SVG (no external CDN dependencies)
- Marketing site — GitHub Pages, deployed automatically from
website/
⬇️ Add BotLens to Chrome — one click, works on Chrome, Edge, Brave, and other Chromium browsers.
Or install from source:
- Clone this repository.
- Open Chrome and navigate to
chrome://extensions/. - Enable Developer Mode (top right).
- Click Load unpacked and select the project folder.
npm install # install dev dependencies
npm run lint # ESLint check (also runs in CI)
npm run build # produce dist/botlens-<version>.zip for the Web StoreCoding conventions:
- Follow the tokens in
tokens.cssfor anything UI-related. - Keep the popup logic in
popup.jsand the injected page extractor incontent.js. - Do not add remote script dependencies — MV3 forbids it and Chrome Web Store review rejects it.
Publishing to the Chrome Web Store is automated via GitHub Actions (.github/workflows/publish.yml):
# 1. Bump "version" in manifest.json + update CHANGELOG.md, commit
# 2. Tag and push:
git tag v1.2.0 && git push origin v1.2.0
# → CI lints, builds, uploads to the Web Store, and submits for reviewTo upload a draft without submitting (e.g. to sanity-check a package), run the workflow manually from the Actions tab and uncheck "Submit for publishing".
Publishing requires four repository secrets (CWS_EXTENSION_ID, CWS_CLIENT_ID,
CWS_CLIENT_SECRET, CWS_REFRESH_TOKEN). The manual devconsole upload remains a
valid fallback if the API flow ever breaks.
Tracked in GitHub issues. High-level:
- v1.1 — Drop
<all_urls>host permission by moving fetches into content script (#20) - v2 — Detect Open Graph, Twitter Card, canonical (#18); llms.txt detection (#19); detail breakdown panel (#17); parser tests (#15)
- v3 — Modular detection engine, CMS/framework/hosting/analytics detection
See CONTRIBUTING.md. Bug reports, feature requests, and pull requests all welcome — issues use structured templates.
See SECURITY.md. Please do not open public issues for vulnerabilities — use GitHub's Private Vulnerability Reporting.
BotLens is created and maintained by iamjarl — a Danish enkeltmandsvirksomhed building tools at the intersection of human experience and AI infrastructure.
MIT — see LICENSE.
