A GitHub trending watcher is a small daily routine that turns the morning GitHub board into a short list of repos worth a second look. Each morning it fetches the top 10 through get_top_trends, sets the list beside yesterday's, runs get_context on GitHub for every first-time name, and logs the outcome. The log is the memory: without it, each morning starts from zero. Hand the spec below to Claude, Cursor or ChatGPT, connect the Trends API, and the routine repeats each morning. On 2026-11-05 the board held 10 repos, and 7 of them were AI coding or agent projects: NVIDIA/auto-ontology, max-sixty/worktrunk, mattpocock/skills, thedotmack/claude-mem, vercel-labs/agent-desktop, github/spec-kit and The-PR-Agent/pr-agent. An eighth, garrytan/gstack, is a Claude Code setup. A filter for agent-related repos could catch 7 of the 10 names on the first morning, with the descriptions to confirm each. The calls, the comparison rules, the shortlist test and the log format below are ready to copy.
Four moves, one log file
Pull, diff, check, log: four moves in the same order every morning, starting at 07:00 local time. Each run leaves two things behind: a shortlist of repos worth a closer look, and a log entry that tomorrow's run reads as its baseline. The instructions never change between days, so the thirtieth run behaves like the first.
Three data calls do the work, two required and one optional, and one JSON file holds the memory. The calls are exact and checked below. The file is github-trending-log.json, appended to once per run. One session sets the routine up; after that it asks for nothing unless a shortlist rule fires.
First move: fetch the morning board
The day opens with one raw call: the GitHub board, top 10.
curl -X POST https://api.trendsmcp.ai/api \
-H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"mode": "get_top_trends", "type": "GitHub", "limit": 10}'
That call costs 1 request over REST. The board refreshes once a day. The Free plan shows the top 10 with a 24h delay, so this routine treats that board as its input and writes the snapshot time beside each pull. On 2026-11-05, snapshot 2026-11-05T07:01:42Z, the top 10 came back as:
| Rank | Repository |
|---|---|
| 1 | NVIDIA/auto-ontology |
| 2 | max-sixty/worktrunk |
| 3 | mattpocock/skills |
| 4 | floci-io/floci |
| 5 | thedotmack/claude-mem |
| 6 | vercel-labs/agent-desktop |
| 7 | github/spec-kit |
| 8 | The-PR-Agent/pr-agent |
| 9 | harry0703/MoneyPrinterTurbo |
| 10 | garrytan/gstack |
Keep the whole list, exactly as returned, with the run date attached. Hold off on any reading of it until the later moves. Storing the raw board first means a misread on one day stays a misread, not a corrupted record. The weekly trend radar agent page follows the same store-first habit on a weekly cycle.
Second move: set today beside yesterday
A board on its own is a snapshot. Put beside yesterday's board, it becomes a signal. The routine opens yesterday's log entry and marks two kinds of change: names that were absent from the top 10 and appear today, and names that climbed or fell five or more places. A repo sitting at rank 3 on both days is steady. A repo that was nowhere yesterday and holds rank 2 today is the story.
Day one has an honest gap: no yesterday board exists yet, so there is nothing to set today against. The first run writes its board down as the baseline and the comparison starts on day two. A watcher that says plainly its first day is a baseline beats one that invents a trend from a single snapshot.
Third move: ask GitHub about each newcomer
A rank says a repo is drawing eyes. It says nothing about why. For every name that appears for the first time, the routine runs one get_context call on GitHub, with the repo name as the keyword:
curl -X POST https://api.trendsmcp.ai/api \
-H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"mode": "get_context", "keyword": "thedotmack/claude-mem", "source": "GitHub"}'
Each call costs 1 request over REST, one source per call. The reply lists active repositories with stars, forks and language. What matters is the items, not the rank: a repo with fresh items behind it and another with a quiet star count point in different directions even when their ranks match. Calls that fail cost nothing, so a source that stays silent costs nothing and the routine tries it again the next morning.
The same check can run on Google Search with get_time_series or get_growth when the question is whether interest in a repo name is rising or falling. The broad vs narrow source test shows how one board and one search source can disagree, and why the routine checks both before it decides.
Fourth move: keep only the repos that pass both tests
The shortlist test never changes and is written down before the first run: a repo earns a place when it is new to the top 10 and get_context turned up items about it in the last 7 days. New but silent stays out. Talked about but unmoved stays out too. Both conditions, or nothing.
Each run goes into github-trending-log.json with the date, the 10 repos, the new names, the context result for each name, and the shortlist with one reason per repo. On a day when nothing qualifies, the log records a quiet day. An empty shortlist is a good sign: it shows the routine ran and found nothing, which is not the same as the routine never running.
What the Nov 5 board shows
Run the Nov 5 board through the four moves. The pull is the table above. The comparison waits: with no yesterday board, every name counts as a first sighting and the diff starts on day two. The check would call get_context once per name, and the shortlist would keep only names that are both new and talked about.
One reading comes from the pull alone. Seven of the ten repos are AI coding or agent projects: NVIDIA/auto-ontology at rank 1, max-sixty/worktrunk at rank 2, mattpocock/skills at rank 3, thedotmack/claude-mem at rank 5, vercel-labs/agent-desktop at rank 6, github/spec-kit at rank 7, a toolkit for spec-driven development, and The-PR-Agent/pr-agent at rank 8, an open-source PR reviewer agent. An eighth, garrytan/gstack at rank 10, is a Claude Code setup. The other two work in different areas: harry0703/MoneyPrinterTurbo at rank 9 generates short videos with AI models, and floci-io/floci at rank 4 emulates AWS locally. The names point to a concentration; they do not explain it. That is what the third move is for.
The keyword behind this page carries real demand: "github trending" draws 33,100 monthly searches. A watcher that runs daily on a board this watched earns its keep when it filters, not when it repeats the board.
The watcher spec, ready to copy
The full spec, below. Give it to Claude, Cursor or ChatGPT as standing instructions for the agent, hook up the Trends API, and put the routine on a daily schedule.
GITHUB TRENDING WATCHER, standing instructions
Run time: every day, 07:00 local time.
Move 1, pull:
Call get_top_trends for GitHub, limit 10, over REST.
Keep the full list with today's date and the snapshot time.
This is the Free plan board: top 10 with a 24h delay.
Store it raw; do not read into it yet.
Move 2, diff:
Open yesterday's log entry. Mark names new to the top 10
and names that moved 5+ places. Day one has no yesterday
entry, so write the board down as the baseline and skip
the comparison.
Move 3, check:
For each first-time name, run one get_context call with the
repo name as keyword and source GitHub. Note whether items
came back in the last 7 days. Optional: run get_growth on
Google Search for a repo name to test whether search
interest is rising.
Move 4, shortlist and log:
Keep a repo only when it is new to the top 10 AND talked
about on GitHub. Append the run to github-trending-log.json
with the date, the 10 repos, the new names, the context
results for each name, and the shortlist with one reason
per repo. If nothing qualifies, record a quiet day.