A production-ready Chrome Extension (Manifest V3) that injects an AI-powered code review assistant into GitHub Pull Request pages.
- 🤖 AI-Powered Analysis — Executive summary, risk scores, complexity assessment
- 🔒 100% Private (BYOK) — Your code never leaves your browser; AI calls go directly to your provider
- 📁 Smart File Categorization — Files grouped by Frontend, Backend, Database, Security, etc.
⚠️ Risk Detection — Identifies auth, payment, migration, infrastructure, and secret files- 🔍 Concern Scanning — Detects SQL injection, empty catch blocks, N+1 queries, and more
- 💬 Per-File AI Explanation — Click any file for a detailed AI breakdown
- ✅ Review Progress Tracking — Persistent per-file review state (better than GitHub's "Viewed")
- 💾 Intelligent Caching — Re-visit PRs without re-calling AI
- 🎨 Theme-Aware — Matches GitHub's light/dark theme automatically
↔️ Draggable Panel — Resizable side panel with smooth animations
| Provider | Models |
|---|---|
| OpenAI | GPT-4o, GPT-4o mini, o3-mini |
| Anthropic | Claude 3.5 Sonnet, Haiku, Opus |
| Google Gemini | Gemini 1.5 Pro, Flash, 2.0 Flash |
| Groq | Llama 3.1 70B, 8B, Mixtral |
| OpenRouter | 200+ models |
| Custom | Any OpenAI-compatible endpoint |
- Node.js 18+
- Chrome/Chromium browser
npm install
npm run buildnpm run dev- Open
chrome://extensions - Enable Developer mode
- Click Load unpacked
- Select the
dist/folder
src/
├── background/ # MV3 Service Worker
├── content/ # Content script + panel injection
├── popup/ # Extension popup
├── components/ # React UI components
│ ├── onboarding/ # 4-step setup wizard
│ ├── dashboard/ # Executive summary, scores
│ ├── files/ # File list, filters, explainer
│ ├── concerns/ # Review concerns panel
│ ├── layout/ # Side panel shell
│ └── ui/ # Design system primitives
├── services/
│ ├── github/ # GitHub REST API
│ ├── ai/ # LLM provider adapters
│ ├── analysis/ # Local categorization & risk detection
│ └── cache/ # IndexedDB caching
├── store/ # Zustand state stores
├── utils/ # URL parsing, token estimation, theme
└── types/ # TypeScript type definitions
- API keys stored in
chrome.storage.local(local device only) - All AI calls made directly from browser to provider API
- GitHub data fetched using existing browser session (no extra tokens needed for public repos)
- Analyses cached in IndexedDB (local device only)
- Zero telemetry, zero developer-owned servers in the data path
- Build: Vite + CRXJS plugin (MV3 hot reload)
- UI: React 18 + TypeScript
- Styling: Tailwind CSS v3
- State: Zustand (persisted to chrome.storage.local)
- Cache: IndexedDB via
idb - Animations: Framer Motion
- Icons: Lucide React
MIT