A Chrome extension that scans replies on Twitter/X, detects hateful content using AI, and automatically blocks or reports offending accounts. Zero configuration required.
- AI-powered detection with server-side classification (no API keys needed)
- Three detection modes:
- Hate Speech — Flags direct hatred, slurs, and harassment targeting you
- Cult Praise — Flags abnormally sycophantic, cult-like devotion
- Block All — Blocks every account on the page (useful for hashtag cleanup)
- Three action modes: Block, Report, or Both
- Auto-scroll to find more replies beyond the initial page load
- Live results panel showing flagged accounts with confidence scores and reasons
- Dry run mode to preview what would be blocked without taking action
- Bilingual UI — English and Persian (فارسی)
- Configurable scan limit (25, 50, or 100 replies)
- Daily usage tracking to stay within platform limits
Coming soon.
- Clone this repo
- Install dependencies:
pnpm install
- Build the extension:
pnpm build
- Open
chrome://extensionsand enable "Developer mode" - Click "Load unpacked" and select the
.output/chrome-mv3folder
- Navigate to a tweet with replies on Twitter/X
- Click the scan button that appears on the page
- The extension collects replies and sends the text to a Cloudflare Worker backend
- The backend classifies each reply using AI (Gemma 3 12B via OpenRouter)
- Flagged accounts are automatically blocked, reported, or both based on your settings
Content Script → Background Worker → Cloudflare Worker → OpenRouter API
↓ ↓ ↓
Twitter DOM Proxies request Rate limits, classifies
with clientId Returns: {isMatch, confidence, reason}
# Dev with hot reload
pnpm dev
# Run tests
pnpm test
# Build for production
pnpm build
# Package as zip
pnpm zip- Extension: WXT + React + TypeScript (Manifest V3)
- Backend: Cloudflare Worker + D1 (SQLite)
- AI Model: Gemma 3 12B via OpenRouter
- Testing: Vitest
Tweet text is sent to a secure backend for AI classification only. No data is stored beyond rate limiting. No login or account required. See the full Privacy Policy.
If you find this project useful, consider supporting its development:
- Star this repo
- Report bugs and submit PRs
- Sponsor on GitHub or Buy me a coffee
MIT