A Chrome extension for tracking GitHub PRs you're shepherding. Designed for maintainers who follow dozens of PRs and need a quick way to monitor their status.
- Priority groups: Organize PRs into customizable groups (default: P0, P1, Backlog)
- One-click tracking: Add PRs directly from GitHub PR pages via a button in the header
- Status dashboard: View CI status, review state, labels, and recent activity in a sidebar
- Change detection: See what changed since your last refresh (new commits, approvals, CI failures)
- Failed test visibility: Expandable list of failed CI checks
- Clone or download this repository
- Open
chrome://extensionsin Chrome - Enable "Developer mode" (top right toggle)
- Click "Load unpacked" and select the
shepherd2folder - Click the extension icon to open the sidebar
Adding PRs: Navigate to any GitHub PR page. Click the "Shepherd" button in the PR header and select a priority group.
Viewing PRs: Click the extension icon to open the sidebar. PRs are organized by group tabs.
Refreshing: Click "Refresh" to fetch latest status for all PRs, or use the ↻ button on individual PRs.
Settings: Configure priority groups and optionally add a GitHub token for higher API rate limits.
manifest.json # Extension configuration (Manifest V3)
sidepanel.html/js # Main dashboard UI (Chrome Side Panel API)
content.js/css # Injects "Shepherd" button on PR pages
background.js # Service worker for initialization and side panel control
Data is stored in chrome.storage.local:
groups: Array of priority group namesprs: Object mapping PR URLs to{ group, data, updates, lastSeen }token: Optional GitHub personal access token
The extension fetches from the public GitHub API:
GET /repos/:owner/:repo/pulls/:number- PR metadataGET /repos/:owner/:repo/pulls/:number/reviews- Review statesGET /repos/:owner/:repo/commits/:sha/check-runs- CI check resultsGET /repos/:owner/:repo/commits/:sha/status- Commit statuses
Without a token, GitHub allows 60 requests/hour. With a token, this increases to 5,000/hour.
This is intentionally a lightweight tool. Current scope:
In scope:
- Track PRs across priority groups
- Display CI, review, and label status
- Detect changes between refreshes
- Manual refresh of PR data
Out of scope (for now):
- Automatic background refresh
- Notifications
- Multiple repository presets
- PR filtering/search within groups
- Syncing across devices
Edit the JS/CSS files directly and reload the extension in chrome://extensions to see changes. The codebase is vanilla JS with no build step.