Stop missing important updates in the repos you care about.
GitHub Curator monitors repositories and uses AI to surface what matters: new features, breaking changes, security fixes, and more—all in one unified feed.
github.curator.tour.mov
Watching GitHub repos gives you a firehose of commits. Release notes are often incomplete or delayed. GitHub Curator solves this by:
- Analyzing merged PRs with AI to extract meaningful changes
- Classifying by impact (major, minor, patch, internal) so you see what matters
- Categorizing changes (feature, bugfix, breaking, security, etc.)
- Summarizing in plain English with bullet points, not commit messages
Perfect for teams tracking dependencies, educators monitoring teaching materials, or anyone who needs to stay current with multiple repos.
| Feature | Description |
|---|---|
| Semantic Grouping | AI groups related PRs (feature + tests + docs) into single updates |
| Release Summaries | AI-generated bullet points for release notes |
| Unified Feed | All repos in one chronological view |
| Dropdown Filters | Filter by levels and categories via dropdown menus with select/deselect all |
| Per-Repo Settings | Custom colors, names, significance filters, and release visibility per repo |
| Starred Changes | Save important updates for later |
| Release Modal | Click releases to view full rendered markdown notes |
| New Badges | Highlights unseen changes since your last visit |
| Timeline View | Date-grouped feed with sticky headers and gap indicators showing time between updates |
| Inbox View | Default landing view showing only new updates since last visit, with "You're all caught up!" empty state |
| Collapsible Sidebar | Expandable Repos and Reports sections with inline navigation |
| Releases Filter | Toggle releases on/off in the Levels filter dropdown |
| Per-Repo Filters | Same level/category filters available on individual repo pages |
| User Menu | Profile picture and name with dropdown for Manage Repos, Manage Reports, and logout |
| Manage Repos | Stats dashboard (24h/7d/30d updates, PRs, major changes), card grid with GitHub links and settings |
| Manage Reports | Stats dashboard (completed/in-progress/failed), card grid with download and quick view |
| Shared Indexing | Repos indexed once, shared across all users for instant adds |
| Duplicate Prevention | Hash-based deduplication prevents duplicate updates in feed |
| Auto-Refresh | Fetches new PRs/releases on page load (hourly) + daily background sweep |
| Load Older Updates | Paginate backwards through PR history with clear "end of indexed" indicator |
| Check for Updates | Manually trigger incremental update check for a repo |
| GitHub Stars | Display repo star counts in feed header and My Repos page (updated on refresh and daily sweep) |
| Documentation Links | Auto-detected or manually set docs URLs shown in feed header and repo settings |
| Smart Autocomplete | Search indexed repos when adding, with instant add for pre-indexed repos |
| Flexible URL Input | Paste any GitHub URL format—extra paths, query params, etc. are handled |
| Background Indexing | Repos index in background with progress shown in sidebar; no blocking modal |
| Non-blocking Feed Load | Stale repos refresh in background; cached data loads instantly |
| Landing Page | Feature preview videos showcasing repo updates and reports |
| Reports | Generate AI summaries of repo changes over a date range, grouped by significance |
| Ask Feed | Ask natural language questions about your repos — AI streams answers with citations to specific updates |
| Prompt Templates | LLM prompts stored as editable markdown files with Handlebars templating |
| Neo-Brutalist Design | Bold colors, thick borders, offset shadows via Tailwind CSS v4 |
-
Set up environment variables in
server/.env:DATABASE_URL=postgresql://... GOOGLE_CLIENT_ID=your-google-client-id GOOGLE_CLIENT_SECRET=your-google-client-secret SESSION_SECRET=your-session-secret OPENAI_API_KEY=sk-... GITHUB_TOKEN=ghp_... -
Install & run:
npm install npm run dev
-
If ports are stuck, kill dev servers first:
pkill -f "tsx watch.*github-feed"; pkill -f "vite.*github-feed" npm run dev
-
Login with Google and start adding repos
Add these API keys to your server .env file:
| Key | Purpose | Get it at |
|---|---|---|
| OPENAI_API_KEY | Classifies PR changes | platform.openai.com |
| GITHUB_TOKEN | Higher rate limits (5k/hr vs 60/hr) | github.com/settings/tokens |
Note: GitHub tokens expire. Fine-grained tokens default to 30 days.
- Frontend: React + Vite + TypeScript + Tailwind CSS v4
- Backend: Node.js + Express + TypeScript
- Database: PostgreSQL (Railway) + Prisma 7
- Auth: Google OAuth via Passport.js
- APIs: GitHub (Octokit), OpenAI (gpt-4o-mini, gpt-5-mini, gpt-5.1)
- Fix repo owner images not displaying
- Persistent sessions (stay logged in across page reloads)
- Shared indexing layer (repos indexed once, shared across users)
- AI-generated release summaries
- Clickable release cards with markdown modal
- Repo avatars in sidebar
- Session-based "new" badges (items marked new based on when indexed, persists within browser session)
- User profile page
- Show API usage to users (spec)
- Suggest already indexed repos when adding
- Background cron job for repo updates (daily sweep at 6am UTC)
- Ask Feed — natural language questions about repo changes with streamed AI answers and citations
- Stripe integration for paid plans
- Semantic PR grouping (related PRs merged into single updates)
- Batched parallel LLM calls for faster indexing
- Per-repo "check for updates" button for manual refresh
- Reports feature - generate summaries of repo changes over a date range
- Background repo indexing with progress in sidebar
- Non-blocking stale repo refresh (instant feed load)
- Landing page with feature preview videos
- Inbox view as default landing page with new items only
- Collapsible sidebar with inline repo/report lists
- GitHub star counts in feed header and repo cards
- Documentation URL discovery and display
MIT