An Edge/Chrome extension that analyzes web page content to detect potential AI-generated text using linguistic analysis.
The extension uses multiple linguistic signals to estimate the probability that text was AI-generated:
| Signal | What it detects |
|---|---|
| Em-dash overuse | AI (especially Claude) overuses em-dashes (โ) |
| AI phrases | 90+ GPT-isms: "delve into", "it's important to note", "leverage", etc. |
| Formal starters | "However,", "Additionally,", "Furthermore," at sentence starts |
| Robotic patterns | "both X and Y", "not only... but also", passive hedging |
| Low vocabulary diversity | Repetitive word choices (low type-token ratio) |
| Uniform sentences | Similar sentence lengths (low "burstiness") |
| Signal | What it detects |
|---|---|
| Casual markers | "gonna", "tbh", "lol", informal language |
| Self-corrections | "I mean", "wait", "actually" |
| High burstiness | Varied sentence lengths (natural human rhythm) |
| Incomplete thoughts | Ellipses, trailing off... |
# Clone
git clone https://github.com/WaywardHayward/ai-detector.git
cd ai-detector
# Install & build
npm install
npm run build
# Load in browser
# 1. Go to edge://extensions/ or chrome://extensions/
# 2. Enable "Developer mode"
# 3. Click "Load unpacked"
# 4. Select the `dist` folder- Navigate to any web page with text content
- Click the extension icon
- Click "Analyze Page" to scan the main content
- Or select specific text first to analyze just that selection
- Score 0-34: Likely Human Written โ
- Score 35-64: Possibly AI Generated ๐ค
- Score 65-100: Likely AI Generated ๐ค
- Em-dashes: Count per 1000 words (AI: >2, Human: <1)
- AI Phrases: Common GPT-isms per 1000 words
- Vocab Diversity: Unique/total words (Human: >50%, AI: <45%)
- Burstiness: Sentence length variance (Human: >0.5, AI: <0.3)
- Human Markers: Casual/informal elements found
This tool uses heuristics and is not definitive:
- Well-edited AI text may appear human
- Formal/technical human writing may appear AI-like
- Short text samples (<200 chars) are unreliable
- Cannot analyze images, PDFs, or dynamically loaded content
Use as one signal among many, not as proof.
npm install # Install dependencies
npm run build # Build to dist/
npm run typecheck # TypeScript check
npm run watch # Watch mode (TODO)- Browser action badge showing quick score
- Highlight detected phrases in page
- Options page for sensitivity tuning
- Export analysis reports
- ML-based classifier (train on real samples)
MIT