A fast, colorful CLI tool for monitoring GitHub pull requests and issues across repositories. Track your contributions, reviews, and assignments with real-time progress visualization.
- 🚀 Parallel API Calls - Fetches data concurrently for maximum speed
- 🎨 Colorized Output - Easy-to-read color-coded labels, states, and progress
- 📊 Smart Cross-Referencing - Automatically links related PRs and issues
- ⚡ Real-Time Progress Bar - Visual feedback with color-coded completion status
- 🔍 Comprehensive Search - Tracks authored, mentioned, assigned, commented, and reviewed items
- 📅 Time Filtering - View items from the last month by default (configurable with
--time) - 🎯 Organized Display - Separates open, merged, and closed items into clear sections
go build -o github-feed .On first run, GitAI automatically creates a configuration directory at ~/.github-feed/ with:
.env- Configuration file (with helpful template)github.db- Local database for caching GitHub data
Create a GitHub Personal Access Token with the following scopes:
repo- Access to repositoriesread:org- Read organization data
Generate token: https://github.com/settings/tokens
You can provide your token and username in two ways:
Option 1: Configuration File (Recommended)
Edit ~/.github-feed/.env and add your credentials:
# Your GitHub Personal Access Token (required)
GITHUB_TOKEN=your_token_here
# Your GitHub username (required)
GITHUB_USERNAME=your_username
# Optional: Comma-separated list of allowed repos
ALLOWED_REPOS=user/repo1,user/repo2Option 2: Environment Variables
export GITHUB_TOKEN="your_token_here"
export GITHUB_USERNAME="your_username"
export ALLOWED_REPOS="user/repo1,user/repo2" # Optional: filter to specific reposNote: Environment variables take precedence over the .env file.
# Monitor PRs and issues from the last month (default, fetches from GitHub)
github-feed
# Show items from the last 3 hours
github-feed --time 3h
# Show items from the last 2 days
github-feed --time 2d
# Show items from the last 3 weeks
github-feed --time 3w
# Show items from the last 6 months
github-feed --time 6m
# Show items from the last year
github-feed --time 1y
# Show detailed logging output
github-feed --debug
# Use local database instead of GitHub API (offline mode)
github-feed --local
# Show hyperlinks underneath each PR/issue
github-feed --links
# Delete and recreate the database cache (start fresh)
github-feed --clean
# Filter to specific repositories only
github-feed --allowed-repos="user/repo1,user/repo2"
# Combine flags
github-feed --local --time 2w --debug --links --allowed-repos="miniohq/ec,tunnels-is/tunnels"| Flag | Description |
|---|---|
--time RANGE |
Show items from the last time range (default: 1m)Examples: 1h (hour), 2d (days), 3w (weeks), 4m (months), 1y (year) |
--debug |
Show detailed API call progress instead of progress bar |
--local |
Use local database instead of GitHub API (offline mode, no token required) |
--links |
Show hyperlinks (with 🔗 icon) underneath each PR and issue |
--clean |
Delete and recreate the database cache (useful for starting fresh or fixing corrupted cache) |
--allowed-repos REPOS |
Filter to specific repositories (comma-separated: user/repo1,user/repo2) |
Labels:
AUTHORED- CyanMENTIONED- YellowASSIGNED- MagentaCOMMENTED- BlueREVIEWED- GreenREVIEW REQUESTED- RedINVOLVED- Gray
States:
OPEN- GreenCLOSED- RedMERGED- Magenta
Usernames: Each user gets a consistent color based on hash
-
Parallel Fetching - Simultaneously searches for:
- PRs you authored
- PRs where you're mentioned
- PRs assigned to you
- PRs you commented on
- PRs you reviewed
- PRs requesting your review
- PRs involving you
- Your recent activity events
- Issues you authored/mentioned/assigned/commented
-
Local Caching - All fetched data is automatically saved to a local BBolt database (
~/.github-feed/github.db)- PRs, issues, and comments are cached for offline access
- Each item is stored/updated with a unique key
- Database grows as you fetch more data
-
Cross-Reference Detection - Automatically finds connections between PRs and issues by:
- Checking PR body and comments for issue references (
#123,fixes #123, full URLs) - Checking issue body and comments for PR references
- Displaying linked issues directly under their related PRs
- Checking PR body and comments for issue references (
-
Smart Filtering:
- Shows both open and closed items from the specified time period
- Default: Items updated in last month (
1m) - Custom: Use
--timewith values like1h,2d,3w,6m,1y
- Reads all data from the local database instead of GitHub API
- No internet connection or GitHub token required
- Displays all cached PRs and issues
- Useful for:
- Working offline
- Faster lookups when you don't need fresh data
- Reviewing previously fetched data
GitAI monitors GitHub API rate limits and will warn you when running low:
- Search API: 30 requests per minute
- Core API: 5000 requests per hour
Rate limit status is displayed in debug mode.
When rate limits are hit, GitAI automatically retries with exponential backoff:
- Detects rate limit errors (429, 403 responses)
- Waits progressively longer between retries (1s → 2s → 4s → ... up to 30s max)
- Continues indefinitely until the request succeeds
- Shows clear warnings:
⚠ Rate limit hit, waiting [duration] before retry... - No manual intervention required - the tool handles rate limits gracefully
Set up your GitHub token as described in Configuration.
Wait for the rate limit to reset. Use --debug to see current rate limits.
Your terminal may not support ANSI colors properly. Use --debug mode for plain text output.
github-feed/
├── main.go # Main application code
├── db.go # Database operations for caching GitHub data
├── README.md # This file
~/.github-feed/ # Config directory (auto-created)
├── .env # Configuration file with credentials
└── github.db # BBolt database for caching
MIT License - Feel free to use and modify as needed.