Automatically apply custom filters to GitHub Pull Request pages with real-time sync across all tabs.
Pullscope is a browser extension that streamlines your GitHub PR workflow by automatically applying custom search filters when you visit Pull Request pages.
✨ Automatic Filter Application - Filters apply instantly when you visit any GitHub PR page
🔄 Real-Time Sync - Toggle filters on/off and see results update immediately across all open tabs
🚀 Cross-Browser - Works on Chrome, Firefox, and other Chromium-based browsers
⚡ Fast & Lightweight - Built with modern web technologies for optimal performance
Download the zip for your browser from the
latest release
(pullscope-<version>-chrome.zip or pullscope-<version>-firefox.zip).
Chrome/Chromium/Edge/Brave:
- Extract the zip file
- Open
chrome://extensions/and enable "Developer mode" - Click "Load unpacked" and select the extracted folder
Firefox:
- Open
about:debugging#/runtime/this-firefox - Click "Load Temporary Add-on"
- Select the downloaded zip file
- Clone the repository:
git clone https://github.com/guidodinello/pullscope.git
cd pullscope- Install dependencies:
pnpm install- Build the extension:
pnpm build # For Chrome/Chromium
pnpm build:firefox # For Firefox- Load the extension:
Chrome/Chromium:
- Open
chrome://extensions/ - Enable "Developer mode"
- Click "Load unpacked"
- Select the
.output/chrome-mv3directory
Firefox:
- Open
about:debugging#/runtime/this-firefox - Click "Load Temporary Add-on"
- Select the
manifest.jsonfile from.output/firefox-mv2
pnpm dev # Chrome with hot reload
pnpm dev:firefox # Firefox with hot reload- Install the extension using the instructions above
- Visit any GitHub PR page (e.g.,
https://github.com/facebook/react/pulls) - Click the extension icon to open the popup
- Click "Manage Filters" to add your first filter
- Create a filter with a name and GitHub search syntax:
- Name:
Hide Dependabot PRs - Value:
-author:app/dependabot
- Name:
- Save and refresh the PR page - filter applies automatically!
# Hide Dependabot PRs
-author:app/dependabot
# Only show open PRs
is:open
# PRs assigned to you
assignee:@me
# PRs with specific label
label:"bug"
# Combine multiple filters
is:open -author:app/dependabot label:"priority"
See GitHub's search syntax documentation for all available qualifiers.
- WXT - Cross-browser extension framework
- Svelte 5 - Reactive UI framework with runes API
- TypeScript - Type-safe development
- Tailwind CSS 4 - Utility-first styling
- Vite - Fast build tool
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Clone your fork
- Install dependencies:
pnpm install - Create a branch:
git checkout -b feature/your-feature - Make your changes
- Test in both Chrome and Firefox
- Commit:
git commit -m "Add your feature" - Push:
git push origin feature/your-feature - Create a Pull Request
- Follow the existing code style
- Use technology standards
- Update documentation as needed
Versions follow SemVer; CHANGELOG.md is curated by
hand and is the source of the release notes.
- Open a
chore(release): vX.Y.ZPR: bumpversioninpackage.json, move[Unreleased]under a new## [X.Y.Z] - YYYY-MM-DDsection, and update the compare links at the bottom. - Squash-merge it.
- Tag the merge commit with an annotated tag and push it:
git tag -a vX.Y.Z -m vX.Y.Z <merge-sha> && git push origin vX.Y.Z.
The Release workflow then verifies the tag matches package.json and is on main,
builds the Chrome and Firefox zips (plus the sources zip), and creates the GitHub
Release with that changelog section as notes. If verification fails nothing is
published: fix it, delete the tag (git push origin :refs/tags/vX.Y.Z), and re-tag.
MIT License - see LICENSE file for details
Guido Dinello
- GitHub: @guidodinello
- Extension ID:
pullscope@guidodinello.dev
- Built with WXT
- Template used oneezy/svelte-5-extension