Skip to content

Fake GitHub stars: what the research found and what to check

Published

Fake GitHub stars exist at scale but can't be proven for one repo. Learn what the ICSE 2026 StarScout study found and how to check star history against commits.

  • github stars
  • fake stars
  • star history
  • repo due diligence
  • commit cadence
  • starscout

Fake GitHub stars exist at scale: a peer-reviewed Carnegie Mellon University study published at ICSE 2026 reported millions of suspected fake stars, but no outsider can prove them for one repository. Weigh several signals together: star-history shape, commit cadence, contributor concentration, releases, issues and pull requests, and package downloads. Each is a prompt to look closer, not a verdict.

You land on a repository with thousands of stars and have to decide whether to depend on it, cite it, or fund it. Stars are the first number you see and the easiest to read as trust. Fake GitHub stars are why that number can’t settle the decision alone.

After reading, you can check what the StarScout paper measured, weigh repository-level signals yourself, and describe a star spike in public without judging any single account.

Key Takeaways

  • Cite the final ICSE 2026 paper; figures in earlier preprints may differ.
  • A launch post or Hacker News front page can draw the same star step as a purchase, so check that week first.
  • Commits, releases and downloads can be gamed too, so no single ratio or metric decides anything.
  • gitdebt shows star history beside commit-based health; its methodology page says it does not flag stars as fake, real or suspicious.

What did the StarScout study find about fake GitHub stars?

StarScout is a detection method from a Carnegie Mellon University study, published at ICSE 2026, that estimates how many GitHub stars look inauthentic across public repositories. Its findings describe patterns in aggregate. They do not prove that any single repository bought stars.

Image generated

Awesome Agents summarizes the study as finding 6 million fake stars across 18,617 repositories using 301,000 accounts. Treat those three numbers as a secondhand report until you’ve matched them against the paper itself, and write down which version you read.

Five items in the paper settle most questions:

  • The venue and publication date of the version you’re citing.
  • The author list as printed on the paper.
  • What was measured: stars, accounts, or repositories, and over which period.
  • The share of repositories affected in each period, and the deletion rates reported at each date.
  • The paper’s own stated precision and its limitations section.

The last item matters most. A method that flags patterns will sometimes flag a genuine hype-driven launch, and it will miss manipulation that looks ordinary. The paper’s stated precision tells you how often to expect each kind of error.

To compare versions, open the study’s arXiv listing (2412.13459) and click the submission history to see every posted version with its date. Compare the abstract across versions, find which figure changed, then cite the version that matches the published ICSE 2026 paper.

A blog post that quotes an older total is quoting an older version.

Whatever the paper says about GitHub as a whole, a single repository’s curve is something you can read directly. gitdebt’s star history shows counts by date, so you can see when a curve stepped up and decide what to check next.

How did the press cover the StarScout study?

Press coverage of the StarScout study mostly repeated the headline totals. The Awesome Agents write-up opens its summary with “A peer-reviewed CMU study (ICSE 2026)” and states the result as fake stars found, with no hedge in that line.

A study that estimates from account and activity patterns can only call stars suspected. When you read a headline, check whether it says “suspected” or “estimated” and whether it names the paper version.

Keep the outlet’s own work separate from the study. The same write-up adds a second analysis, saying it sampled 150 profiles per repo across 20 projects. That sample belongs to the outlet, not to the paper, so don’t cite its percentages as StarScout results.

Why do fake GitHub stars matter when you choose a dependency or fund a project?

Fake GitHub stars matter because people read the star count as a shortcut for trust, and a shortcut only works if the number is honest. In a post on spotting fake stars, a developer who nearly added a 3,400-star dependency wrote that “we all use star count as a quick trust signal.”

The same shortcut shows up in money decisions. Awesome Agents reports that venture firms use stars as sourcing signals, citing Redpoint’s finding that the median star count at seed is 2,850, and that firms run automated scrapers to find fast-growing repositories.

A ranking built on star gains, like the gitdebt star velocity leaderboard, inherits whatever is in those gains.

What GitHub says and does

GitHub’s Acceptable Use Policies list “rank abuse, such as automated starring or following” under spam and inauthentic activity. That is the policy text to cite when a repository’s popularity looks staged.

The StarScout paper also carries figures on GitHub removing flagged repositories and accounts, and on inflated repositories promoting scams and malware. Take those numbers and their exact wording from the final ICSE 2026 text, not from summaries.

The limit of the number

A star count measures attention. It doesn’t measure maintenance, safety or adoption, even when every star is real.

A popular repository can have no commits for a year, and a repository with few stars can be carefully maintained.

So check a second source before you decide. Open the repository’s gitdebt report and read its commit-based maintenance reading beside the star history. A mismatch is a reason to look closer.

How can you check a repository’s stars without judging any account?

You can check a repository’s stars without judging any account by reading six repository-level signals together: star-history shape, commit cadence, contributor spread, issue and pull request activity, releases, and package downloads. The pass takes about 10 minutes and needs no code or token.

None of the readings below comes from a study’s threshold, so each is labeled opinion or directional.

  1. Read the star-history shape. On the repository’s report, switch the chart from Date to Timeline and read the first months of the curve. A sudden step on a young repository is a reason to look closer (opinion). A Hacker News front page or a launch post draws the same step, so it isn’t a verdict.
  2. Compare commit cadence. Put the same stretch beside the commit trend and the maintenance reading. Stars climbing while commits stay flat is directional. Commits are also cheap to produce, so activity alone proves little.
  3. Count who writes half the commits. Ownership shows how few contributors it takes. One or two people is common in small projects (opinion). It shows where knowledge has pooled, not anything about a person.
  4. Scan issues and pull requests. One developer writing about fake stars said a 3,400-star dependency had “only two forks and zero open issues.” That is one author’s anecdote, not a rule, and a quiet, stable tool can look the same.
  5. Read the release history. Look for tagged releases spread over time (opinion). Automated tagging can fake a steady cadence.
  6. Plot downloads beside stars. Check npm, PyPI or crates.io against the star curve. A wide gap is directional only, because CI runs and mirrors inflate downloads.

A worked example

Open apache/airflow on gitdebt and read its star history beside the maintenance reading, the ownership reading and the commit trend.

The star history shows when people starred. Maintenance shows whether recent commits are speeding up, holding steady or slowing down. Ownership shows how concentrated the commit authorship is.

None of the three says whether a given star is genuine. Skip live numbers and check one thing: whether the curves move in a way you can explain.

Why no single ratio is enough

Circulating heuristics don’t agree. One investigation into fake stars reports repos with “fork-to-star ratios 10x below organic baselines,” while the developer above leaned on a raw fork count and open issues.

Each source frames its cutoff differently, and organic repositories vary by project type (opinion). Use several signals together and treat a lone ratio as a prompt for a closer look.

How do you avoid wrongly calling a star spike fake?

You avoid wrongly calling a star spike fake by treating the step as a question, then checking what else happened the same week.

A spike alone can’t separate attention from manipulation. In our opinion, a launch post, press coverage, a place on a curated list, a Hacker News front-page post or a GitHub Trending appearance can each send thousands of real visitors in a day, and some of them will star the repository.

Detection tools prove less than most pages imply. Dagster’s fake-star-detector says its simple low-activity heuristic “can detect many (but hardly all) suspected fake accounts”, so it misses some.

The fake-star-audit project returns “a LOW / MEDIUM / HIGH risk verdict with every rule explained”. A risk rating is a heuristic reading, not a finding of fact.

The errors run the other way too. In our opinion, an honest launch burst on a young repository can look like a purchased one, and a real account that is old but rarely active can look like a throwaway.

The same caution applies to StarScout. Read the limitations in the ICSE 2026 paper before you quote its figures, because its estimates describe patterns across many repositories, not one.

In public writing, say “the star history shows a step on this date”. Don’t say “this repository bought stars”. The first is something you can see. The second is a claim about intent that you can’t verify from outside.

Before you publish anything, check the same week for:

  • commits and releases that explain a launch
  • new issues and pull requests from different people
  • package downloads that rose alongside the stars
  • a post or list that links to the repository

Each of these can also be gamed, so none settles the question. They only make an innocent explanation easier or harder to believe.

gitdebt’s star velocity leaderboard ranks repositories by stars gained over recent windows, which makes it a list of steps to investigate, not a list of suspects.

What should you use instead of stars, by role?

Instead of stars, each role should lead with the evidence that fits its decision: commits and releases for developers, curve shape beside commits for investors, a chart beside commit health for maintainers, and authored work for recruiters.

Developer Investor or VC Maintainer Recruiter
Lead signals Commit cadence, releases, issue and PR response Star-history shape beside commits and downloads Star-history chart beside commit health Authored commits and PRs
Second check Downloads, dependents Contributor concentration Release history Stars as context
Easiest to misread Cosmetic releases A launch spike A chart read as proof Stars read as contribution

The limits below are our opinion unless a source is named.

A developer choosing a dependency they’ll have to maintain around should read commit cadence, releases, issue and PR response, and downloads together. In our opinion, automation or mirrors can inflate downloads, commits can be trivial, and releases can be cosmetic, so no single one settles it.

An investor or VC sourcing deals has a reason to distrust any single number. Awesome Agents reports that “VCs explicitly use stars as sourcing signals”, which makes a star spike worth faking.

Read the curve’s shape beside commits and downloads, then see how few contributors write most of the commits. That shows where knowledge has pooled, not whether anyone did wrong.

A maintainer showing growth honestly should put the star-history chart next to commit health. The chart can’t prove stars are organic. It only stops the curve from standing alone.

A recruiter reading a résumé link should treat stars as context. In our opinion, a starred project says little about what the candidate wrote, so check their authored commits and reviewed PRs.

To read a whole field at once, use a comparison page. The frontend frameworks comparison and the AI coding tools comparison run on gitdebt’s compare tool, which can overlay up to eight repositories’ star histories on one set of axes.

A curve that departs from its peers is a question to ask, not a finding.

Does gitdebt detect fake GitHub stars?

No: gitdebt does not flag stars as fake, real or suspicious, and it does not score accounts, as gitdebt’s methodology page states. It never stores an actor or a stargazer profile.

What it shows instead is two independent sources, side by side and never blended. Star history comes from GitHub’s own star history. The four health readings (maintenance, ownership, repair load and debt markers) come from the git history.

Health readings are directional signals, not verdicts, so a quiet commit log proves nothing about how stars were earned.

Read them as a pair. Put the star curve next to the commits and see whether they tell the same story. The methodology page lists where each series comes from and what the tool deliberately leaves out.

gitdebt is MIT-licensed, open source and not affiliated with GitHub, and every public repository report works without an account.

Frequently asked questions

How can I tell if a GitHub repository has fake stars?

You can’t prove it from outside GitHub. You can find reasons to look closer: a sudden step in a young repository’s star history, commit and release activity that doesn’t match the attention, or package downloads far below stars. Each is a prompt for review, not a verdict about the project or anyone who starred it.

How many GitHub stars are fake, according to research?

A peer-reviewed Carnegie Mellon University study presented at ICSE 2026 reported 6 million fake stars across 18,617 repositories using 301,000 accounts. Those are detector estimates across GitHub, not proof about any one repository.

Does GitHub remove fake stars?

GitHub’s Acceptable Use Policies prohibit automated starring as rank abuse. For figures on GitHub removing flagged repositories and accounts, quote the final ICSE 2026 text of the StarScout paper, not a summary.

Is a sudden jump in stars proof of manipulation?

A sudden jump isn’t proof of manipulation. A launch post, press coverage or a trending placement can cause the same step. Check commits, releases and public mentions from that week before drawing any conclusion.

Can package downloads replace stars as a popularity signal?

Downloads add a second reading, but they don’t replace stars. CI runs and mirrors can inflate downloads, so read them beside commit cadence and releases.

Next steps: check star history against commits today

Start today with one repository’s star history against its commits, then widen the check over the week.

Today: Pick the repository you’re evaluating. Read its star history beside the commit trend on the same page. A step in stars with no matching change in commits or releases is your cue to dig further.

This week: Add package downloads, then issue and pull request response times. Write down what each signal can and cannot show.

Ongoing: If you maintain a repository, put a truthful star-history chart in your README with a snippet from gitdebt’s README badges page. Readers then see the same curve you do.

Compare the repositories you are deciding between on one set of axes at gitdebt.com/compare. Nothing you run there changes the repository, so you can read the result and walk away. gitdebt puts star history and commit-based health in front of you and leaves the judgment with you.

Sources

Inside GitHub’s Fake Star Economy | Awesome Agents · How gitdebt works: methodology and data sources · arxiv.org · How to Spot Fake GitHub Stars Before They Burn You · GitHub star velocity leaderboard · GitHub Acceptable Use Policies · GitHub - dagster-io/fake-star-detector · GitHub - ardev-lab/fake-star-audit. Every other source is linked where the article cites it.

Frequently asked questions

How can I tell if a GitHub repository has fake stars?
You can't prove it from outside GitHub. You can find reasons to look closer: a sudden step in a young repository's star history, commit and release activity that doesn't match the attention, or package downloads far below stars. Each is a prompt for review, not a verdict about the project or anyone who starred it.
How many GitHub stars are fake, according to research?
A peer-reviewed Carnegie Mellon University study presented at ICSE 2026 reported 6 million fake stars across 18,617 repositories using 301,000 accounts. Those are detector estimates across GitHub, not proof about any one repository. The figures come from automated detection, not a manual review of every repository.
Does GitHub remove fake stars?
GitHub's own policy text is the place to check what it prohibits and how it enforces. We don't cite a removal rate here, and gitdebt does not flag stars as fake, real or suspicious. Check GitHub's current policy text for the most accurate information.
Is a sudden jump in stars proof of manipulation?
A sudden jump isn't proof of manipulation. A launch post, press coverage or a trending placement can cause the same step. Check commits, releases and public mentions from that week before drawing any conclusion. Look at multiple signals rather than assuming any one spike is fake.
Can package downloads replace stars as a popularity signal?
Downloads add a second reading, but they don't replace stars. In our opinion, they can be gamed too, so read them beside commit cadence and releases. Use both signals together to get a fuller picture of a repository's activity and popularity.

See us more often in Google

One click marks gitdebt as a preferred source in your Google account, so our articles are more likely to appear in your Top Stories and can be badged in AI Mode and AI Overviews.