Skip to content

Repository files navigation

PullLens — GitHub Review Intelligence

A production-ready Chrome Extension (Manifest V3) that injects an AI-powered code review assistant into GitHub Pull Request pages.

Features

  • 🤖 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

Supported AI Providers

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

Development Setup

Prerequisites

  • Node.js 18+
  • Chrome/Chromium browser

Install & Build

npm install
npm run build

Development (with hot reload)

npm run dev

Load in Chrome

  1. Open chrome://extensions
  2. Enable Developer mode
  3. Click Load unpacked
  4. Select the dist/ folder

Architecture

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

Privacy Model

  • 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

Tech Stack

  • 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

License

MIT

About

AI-PR analyzer

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages