A Chrome extension that enhances GitHub's Pull Request list pages with useful at-a-glance information.
| Badge | Description |
|---|---|
| Size Label | XS / S / M / L / XL color-coded badge based on total lines changed |
| Diff Stats | +additions / -deletions inline display |
| Files Changed | Number of files touched by the PR |
| Age Indicator | Color-coded relative time (green → red as the PR ages) |
| Draft Badge | Indicates draft PRs |
| Review Status | ✓ Approved / ✕ Changes requested / ● Pending — with reviewer names on hover |
| CI Status | ✓ Passed / ✕ Failed / ◔ Pending — combined check runs & statuses |
| Merge Conflicts | ⚠ Warning badge when the PR has merge conflicts or is blocked |
| Branch Staleness | ↓ Shows how many commits behind the base branch |
| Review Requested | 👁 Highlights PRs where you are a requested reviewer (blue left border) |
| Comment Count | 💬 Number of review comments on the PR |
| Size | Lines Changed |
|---|---|
| XS | < 10 |
| S | < 100 |
| M | < 500 |
| L | < 1,000 |
| XL | ≥ 1,000 |
- Bun (v1.0+)
bun install
bun run build- Open
chrome://extensions/ - Enable Developer mode (top right)
- Click Load unpacked
- Select the
dist/folder
Click the extension icon and enter a GitHub Personal Access Token to increase the API rate limit from 60 to 5,000 requests/hour. The token needs repo scope for private repositories.
bun run build # one-off buildsrc/
├── content.ts # Content script injected into PR list pages
├── background.ts # Service worker handling GitHub API calls
├── popup.ts # Extension popup for token configuration
├── styles.css # Injected styles for PR enhancements
└── utils/
└── pr-helpers.ts # PR size calculation, date formatting, colors
build.ts # Bun build script
manifest.json # Chrome Manifest V3
popup.html # Popup UI
- The content script runs on
github.com/*/pullspages - It detects PR rows in the DOM and extracts PR numbers
- For each PR, it fetches
/{owner}/{repo}/pull/{n}/filesas JSON (same-origin, using session cookies — no token required) - The JSON response contains accurate
diffSummarieswith per-file line counts, plus PR metadata - CI status, review state, and draft status are read directly from the existing list page DOM
- Badges are injected into each PR row
- A
MutationObserverhandles dynamic page updates (GitHub uses Turbo navigation)
MIT
