Track trending AI open-source tools, discover underrated gems, and spot abandoned repos.
Zero cost. Runs on GitHub Actions (free) + GitHub Pages (free). No servers, no databases, no cloud bills.
Live at: radar.aegismemory.com
- Trending — Top AI repos by star growth (3-day / 7-day / 30-day windows)
- Underrated Gems — High-quality repos under 500 stars that most people haven't found yet
- Abandoned Detector — Popular repos with no commits in 30+ days (the "hot but dead" trap)
- Category filtering — Agent frameworks, model serving, RAG, fine-tuning, MCP, dev tools, evals, MLOps
- Auto-updated — GitHub Actions cron runs every 6 hours
Each repo gets a weighted quality score (0-100%):
| Signal | Weight | What it measures |
|---|---|---|
| Commit velocity | 30% | Commits per week over last 30 days |
| Issue engagement | 20% | Open issues relative to stars (community interest) |
| Star acceleration | 15% | Stars gained per day of existence |
| Contributor diversity | 15% | Unique contributors (bus-factor proxy) |
| Docs quality | 10% | Description length + topic tag coverage |
| Push recency | 10% | How recently the repo was updated |
Repos with < 500 stars and gem score ≥ 30% make the "Underrated Gems" list.
# Clone this project
git clone <this-repo-url> oss-radar
cd oss-radarOr create a new repo on GitHub named oss-radar and push these files to it.
The collector needs a token to avoid API rate limits (unauthenticated = 60 req/hr, authenticated = 5,000 req/hr).
- Go to https://github.com/settings/tokens?type=beta
- Click "Generate new token" (Fine-grained token)
- Name it
oss-radar-collector - Set expiration to 90 days (you'll rotate it quarterly)
- Under Repository access → select "Public Repositories (read-only)"
- No additional permissions needed — read-only public access is enough
- Click Generate token
- Copy the token (you won't see it again)
- Go to your repo on GitHub → Settings → Secrets and variables → Actions
- Click "New repository secret"
- Name:
GH_PAT - Value: paste the token from Step 2
- Click Add secret
- Go to your repo → Settings → Pages
- Under Source, select "GitHub Actions"
- Save
You have two options:
Option A — Run locally (recommended for first time):
# Install dependency
pip install requests
# Set your token
export GITHUB_TOKEN="ghp_your_token_here"
# Run the collector
python collector/collect.py
# Check the output
cat site/data.json | head -20Option B — Trigger via GitHub Actions:
- Go to your repo → Actions tab
- Click "Collect & Deploy" workflow on the left
- Click "Run workflow" → "Run workflow" (the green button)
- Wait ~5 minutes for it to complete
If you want radar.aegismemory.com:
- Go to your DNS provider (wherever aegismemory.com is registered)
- Add a CNAME record:
- Name:
radar - Value:
quantifylabs.github.io(or your GitHub username +.github.io) - TTL: 3600
- Name:
- Go to your repo → Settings → Pages
- Under Custom domain, enter
radar.aegismemory.com - Check "Enforce HTTPS"
- Wait 5-10 minutes for DNS propagation + SSL certificate
If you don't want a custom domain, delete the site/CNAME file. Your site will be at https://<username>.github.io/oss-radar/.
After the first successful run, the cron job will run automatically every 6 hours (00:00, 06:00, 12:00, 18:00 UTC). Check:
- Actions tab → you should see scheduled runs
- site/data.json → should have real repo data
- Your URL → the dashboard should render with repos
oss-radar/
├── .github/
│ └── workflows/
│ └── collect.yml # GitHub Actions: cron + deploy
├── collector/
│ ├── collect.py # Main collection script (~350 lines)
│ └── requirements.txt # Just: requests
├── site/
│ ├── index.html # Frontend dashboard
│ ├── data.json # Generated data (auto-updated)
│ ├── history.json # Star snapshots (for computing deltas)
│ └── CNAME # Custom domain config
├── .gitignore
└── README.md
GitHub Actions cron (every 6h, free)
│
▼
collector/collect.py
│
├── GitHub Search API → find AI repos by topic
├── GitHub REST API → fetch commits, contributors
├── Gem Score engine → weighted quality scoring
└── Star delta calc → compare with history.json
│
▼
site/data.json (committed to repo)
│
▼
GitHub Pages (free static hosting)
│
▼
radar.aegismemory.com
Total monthly cost: ₹0
- GitHub Actions: ~90 min/month (free tier = 2,000 min)
- GitHub Pages: free for public repos
- GitHub API: ~1,200 req/day (free tier = 5,000/hr)
- Domain: already owned
Edit SEARCH_TOPICS in collector/collect.py:
SEARCH_TOPICS = [
"llm", "ai-agent", ...
"your-new-topic", # add here
]Edit GEM_STAR_CEILING in collector/collect.py:
GEM_STAR_CEILING = 500 # max stars to qualify as "underrated"Edit .github/workflows/collect.yml:
schedule:
- cron: "0 */6 * * *" # every 6 hours
# - cron: "0 */12 * * *" # every 12 hours
# - cron: "0 0 * * *" # once daily at midnight- Python 3.12 +
requests— data collection - GitHub REST API — repo discovery and metadata
- Static HTML/CSS/JS — no framework, no build step
- GitHub Actions — cron scheduler
- GitHub Pages — hosting
MIT — Quantify Labs Ltd
Built by Arulnidhi Karunanidhi · Quantify Labs