One dashboard for every pull request across GitHub, GitLab, and Bitbucket. CI status, code reviews, deployments, and notifications — right from your browser toolbar. No tab required.
Free and open source, by DeployHQ. Learn more →
- Multi-provider — GitHub, GitLab, and Bitbucket in one view. No more juggling tabs.
- No backend — Your tokens stay on your device. All API calls go directly from your browser to the platform APIs.
- Privacy-first — No analytics, no tracking, no accounts. Just a browser extension.
- Free and open source — MIT licensed, free forever. No premium tier, no feature gates.
- Unified PR dashboard — See all open PRs across your repos in one popup
- Multi-platform — GitHub, GitLab, and Bitbucket support
- CI status at a glance — Know instantly if your checks passed, failed, or are running
- Unresolved comments — Accurate count of unresolved review threads
- Deployment previews — See deployment status and click through to environment URLs
- Sound & desktop notifications — Get alerted when CI finishes, no tab required
- Review tracking — See which PRs need your review, and which you've already reviewed
- Merge from dashboard — Merge PRs directly with a confirm step (all platforms)
- Pinned repos — Star your favorite repos so their PRs always appear at the top
- Stale PR detection — Old PRs are dimmed with a nudge to close them (configurable)
- Background polling — Works without any tab open, using a personal access token
- Toolbar badge — Icon shows pass/fail/running count at a glance
- Instant load — Cached data shown immediately, refreshes in background
- Keyboard shortcuts — Navigate PRs with
j/k, open witho, switch tabs with1/2/3, search with/, press?for the full list - DeployHQ integration — Optionally connect your DeployHQ account to deploy directly from the dashboard with server selection
- Privacy-first — Your token stays on your device. No backend, no tracking
Install from Chrome Web Store — free, no account required.
Install from Firefox Add-ons — free, no account required.
Install from Edge Add-ons — free, no account required.
PR Radar works on any Chromium-based browser — including Brave, Arc, Opera, Vivaldi, and Perplexity. Just install from the Chrome Web Store.
git clone https://github.com/deployhq/pr-radar.git
cd pr-radar
npm install
npm run build # Chrome (default)
npm run build:firefox # Firefox
npm run build:edge # EdgeChrome: Open chrome://extensions/ → Enable Developer mode → Load unpacked → select dist/
Firefox: Open about:debugging#/runtime/this-firefox → Load Temporary Add-on → select dist-firefox/manifest.json
Edge: Open edge://extensions/ → Enable Developer mode → Load unpacked → select dist-edge/
- Click the PR Radar icon in your toolbar
- Choose a platform to connect (GitHub, GitLab, or Bitbucket)
- Create a token using the link provided — required scopes are listed in the connect form
- Paste the token and connect — you're taken straight to the dashboard
- Go to Watched Repos and select the repos you want to monitor
- Done — your PRs appear instantly
- Create a classic personal access token (fine-grained tokens may miss org repos)
- Required scopes:
repo+read:org(pre-filled via the setup link) - If your org uses SSO, authorize the token for that org after creating it
- Create a personal access token
- Required scopes:
api+read_user(pre-filled via the setup link)
- Create an Atlassian API token and enter your email + token
- Required scopes:
read:user:bitbucket,read:workspace:bitbucket,read:repository:bitbucket,read:pullrequest:bitbucket,write:pullrequest:bitbucket
PR Radar works best when your whole team uses it. Share the install link so everyone sees the same review inbox, CI status, and comment threads.
PR Radar polls platform APIs in the background at a configurable interval (default: 60 seconds). When it detects a CI status change on one of your PRs, it sends a desktop notification and plays a sound.
The popup shows cached data instantly and refreshes in the background — no loading spinners.
| Info | GitHub | GitLab | Bitbucket |
|---|---|---|---|
| CI status | Check Runs + Commit Status | Pipeline status | Pipelines API |
| Unresolved comments | GraphQL reviewThreads |
Discussion notes | Inline comments |
| Review state | Reviews API | Approvals + discussions | Participants |
| Deployment | Deployments API | Deployments by SHA | — |
| Conflicts | GraphQL mergeable | API field | — |
| Draft detection | API field | API field | — |
| Badge | Meaning |
|---|---|
| Green number | PRs with CI passed |
| Red number | PRs with CI failed |
Blue ... |
CI running |
| Clear | No active PRs |
Gray ? |
Polling error |
Stale PRs are excluded from the badge count.
PR Radar works perfectly on its own — the DeployHQ integration is entirely opt-in. If you use DeployHQ for deployments, you can connect your account to:
- Deploy from the dashboard — Click Deploy on any PR whose repo matches a DeployHQ project, pick a server or server group, and confirm
- See deployment status — A persistent badge shows which server a PR's revision is deployed to, linking directly to the DeployHQ dashboard
To set up: go to Settings > Accounts > DeployHQ > Connect, enter your account slug, email, and API key (found in DeployHQ > Settings > Security), and click Connect.
- Desktop notifications — Toggle on/off
- Sound alerts — Choose from Ding, Bell, or Chime
- Poll interval — 30s, 1m, 2m, or 5m
- Stale PR threshold — Dim PRs older than 14/30/45/60/90 days (or never)
- Test button — Verify notifications and sound work
- TypeScript, React 18, Tailwind CSS 3
- Vite 5 with @crxjs/vite-plugin
- Chrome Manifest V3
- GitHub REST + GraphQL, GitLab REST, Bitbucket REST APIs
npm run dev # Chrome dev (watch mode)
npm run dev:firefox # Firefox dev (watch mode)
npm run build # Chrome production build
npm run build:firefox # Firefox production build
npm run build:edge # Edge production build
npm run lint # ESLint
npm run typecheck # TypeScript check
npm test # Run tests
npm run test:watch # Run tests in watch modePR Radar is built with accessibility in mind:
- Keyboard navigation — All interactive elements are reachable and operable via keyboard
- Screen reader support — ARIA labels, roles, and live regions throughout the UI
- Semantic HTML — Proper tab, switch, and checkbox roles;
aria-expandedfor collapsible sections - Status announcements — Loading states, refresh status, and error messages use
aria-liveregions - Descriptive labels — All form inputs, icon-only buttons, and status badges have accessible names
- Decorative icons hidden — Emoji and unicode icons are marked
aria-hiddenwith text alternatives provided
- Your personal access tokens are stored locally in
chrome.storage.local - Tokens are never synced across devices or sent to any server
- All API calls go directly from your browser to the platform APIs
- No analytics, no tracking, no backend
MIT
Made with <3 by DeployHQ — automated deployments made simple.