How we check
The Daily Repo ranks open source AI repositories using public data from GitHub. The data is collected every day, and the same published rules are applied to every repository. Payment, advertising and AI play no part in the rankings.
1. Data sources
- All data comes from GitHub's public API: stars, licence, topics, archive status, last commit date, releases and the number of recent contributors.
- Star counts from before we began tracking a repository come from GitHub's star history, for up to 56 days.
- We store no personal data. Contributors are counted, not recorded.
- A value we could not read shows as "Not stated", never as zero. A repository GitHub no longer returns is removed from the site.
2. Which repos are listed
We find repositories by searching GitHub for these topics: llm, ai-agents, mcp, generative-ai, machine-learning, stable-diffusion, text-to-speech, rag, llm-inference, model-context-protocol. The search covers repositories with at least 100 stars, plus a daily search for repositories created in the last 7 days.
A repository is listed only if it meets every requirement below.
| Requirement | Rule |
|---|---|
| AI-related | Has at least one AI topic |
| Licence | Has a licence |
| Active | Last commit within 183 days |
| Not archived | The repository is not archived |
| Stars | At least 100, or 10 for a new repository |
| Job | Matches one of our job types (section 4) |
| No fake-star hold | Not on hold (section 5) |
Repositories that do not qualify are still tracked, and are listed once they do.
AI topics
llm, llms, ai, artificial-intelligence, machine-learning, deep-learning, generative-ai, genai, ai-agents, agents, agentic-ai, mcp, mcp-server, model-context-protocol, rag, stable-diffusion, text-to-speech, text-to-image, text-to-video, diffusion, gpt, openai, claude, ollama, llama, chatgpt, transformers, nlp, computer-vision, ai-tools, langchain, large-language-models, speech-recognition, text-to-3d, comfyui, fine-tuning, llm-inference
3. How repos are ranked
The score follows the method of the OpenSSF Criticality Score. Each signal is capped, then scaled from 0 to 1 on a log scale. The score is the weighted average of the signals a repository has. A missing signal is left out, not counted as zero.
| Signal | Weight | Cap |
|---|---|---|
| Months since last commit (fewer is better) | 1.5 | 12 |
| Contributors in the last 90 days | 1.5 | 50 |
| Weeks of growth, of the last 8 | 1.5 | 8 |
| Stars gained in 28 days | 1.0 | 50,000 |
| Total stars | 1.0 | 500,000 |
| Releases in the last year | 0.5 | 26 |
- A week of growth is a 7-day span with a gain of at least 10 stars and at least 1.0% of the stars at the start of the week.
- Contributors are the distinct authors among the latest 100 commits made in the last 90 days.
4. Featured, catalogue and new
Each repository is placed in one job type: MCP servers, Coding agents, Agent skills, Agent frameworks, Agent memory, Automation and scraping, RAG and search, Local LLMs, Model gateways, Chat apps, Evals and observability, AI security, Notes and knowledge, Image generation, Video, Speech and audio, 3D and Blender, Fine-tuning, Lists and guides, Other AI tools.
A repository is placed by what it says it is, not by the tags it adds. A job needs proof: its word in the repository name, its phrase in the name or description, or at least 2 of its own topics (some jobs with a precise topic need one). A tag that only shows a repository works with a tool is never proof by itself. When several jobs have proof, the one with the most evidence wins: a name match counts 3, a phrase 2, a topic 1. A list or a course is placed as that, whatever its subject. A repository with no proof but clear signs of our areas goes to the last job type; one with neither is not listed.
Each day we also count the topics that no job type covers. When one becomes common, we add a job type for it.
- Featured: the top 25 repositories in each job.
- Catalogue: every other qualifying repository. There is no limit.
- New: repositories tracked for under 30 days. Growth cannot be measured yet, so they are listed separately.
- The 14-day swap: a catalogue repository that scores higher than the lowest featured one in its job on 14 consecutive days takes its place.
- No longer listed: a repository that stops qualifying is removed from the lists and its page.
5. Fake-star protection
A sudden, unusual rise in stars puts a repository on hold, and it is not listed while the hold lasts.
| Rule | Held when |
|---|---|
| Spike | Daily stars exceed 5 times the repository's 28-day average and exceed 200 a day |
| Surge | Stars gained in 28 days exceed 1.0 times the starting count and exceed 5,000 |
The surge rule applies once a repository has a star history of at least two such periods, because a brand-new repository always gains more than it started with.
A hold ends after 7 days with no new flag. Stars gained during a hold never count as growth.
6. Repo of the Day
One repository leads the home page each day, chosen by these rules:
- Listed: it meets every requirement in section 2.
- Active: its last commit is within 30 days.
- Growing: it gained at least 25 stars in the last 7 days and had at least 100 stars a week ago.
- Steady: its stars rose on at least 3 of those 7 days, not in one jump.
- Clean: no fake-star flag in the last 14 days.
- Not brand new: it was created at least 14 days ago.
- A discovery: it has at most 25,000 stars. Larger projects lead their own lists.
- Ready to read: its page here has an introduction, a list of features or commands, and a picture.
- Not a repeat: it was not Repo of the Day in the last 90 days, and no other repository from the same GitHub account was in the last 30 days.
- Variety: the same category does not lead within 2 days, unless no other repository qualifies.
Among the repositories that pass, each gets two ranks: one for how fast it is growing for its size (the same measure as Rising this week) and one for its score in section 3. The winner has the highest product of the two, so it must be strong on both. Ties go to the most recent commit, then the name.
Every day has a Repo of the Day. If no repository passes every rule, the rules are set aside one at a time until one does, in this order: steady, a discovery, not brand new, growing, ready to read, not a repeat, active, clean. Among the repositories that pass first, one that fails fewer rules comes first; after that they are ranked the same way.
The day's pick does not change once made. If it is removed or put on hold that day, the next repository in the ranking takes its place.
7. Rising this week
The home page lists the repositories growing fastest for their size. Each must have gained at least 25 stars in the last 7 days. They are ordered by stars gained divided by the square root of their stars a week ago, so a small repository that doubles and a large one with a strong week can both appear. Stars gained during a hold are not counted.
8. Daily updates
The data refreshes once a day. An update changes the rankings only if at least 95% of its requests to GitHub succeed. Otherwise the previous rankings stay in place. Each page shows the date of the data it uses.
9. Independence
- Nobody can pay to be listed, ranked higher or removed.
- We do not show ads yet. Any future ad will be labelled "Ad" and will not affect the rankings. See Advertise.
- We do not rate security. Being listed is not an endorsement, and does not mean a repository is safe to use.
10. Corrections
To report an error or ask for a correction, write to [email protected].
