mrkeyoor.com_
Sun 04 Oct 07:02 UTC
Dev Toolsevaluationupdated 04 Oct 2026

github-stars-history review

GitHub Stars History is a Python command-line tool that retrieves daily star counts for public GitHub repositories. It turns GitHub's aggregate history into growth summaries plus CSV or JSON files, which is useful for comparing launches without collecting stargazer identities.

Verdict

Our GitHub Stars History run installed 36 packages in 32 seconds and passed all 8 tests, making it an easy choice for repeatable CSV or JSON star counts. Use it when you want raw daily data and will investigate the events behind each spike separately. Choose a charting alternative if the graph itself is the deliverable, and wait for a longer maintenance record before making this young project a required reporting dependency.

We ran it

Lab card: what happened when we ran github-stars-historyScreenshot of github-stars-history (buygithub.com/blog/how-github-stars-work/?utm_source=github&utm_medium=readme&utm_campaign=github-stars-history)
Install✓ · 32s36 packages · 37 MB
Build✓ · 5s
Tests✓ · 5s8 passed · 0 failed of 8 (pytest)
Known vulns0(pip-audit)
Repo14 files~503 lines of source · 0 MB · 0 CI workflows · tests dir

Answers from our run

Does github-stars-history build from source?

Dependencies installed in 32 seconds (36 packages), and the build succeeded in 5 seconds. We cloned commit 940cb93 into a clean Debian container with 3 CPUs and no project-specific setup.

Do github-stars-history's tests pass?

Yes: 8 of 8 passed when we ran the project's own test command (pytest). Some failures need services or credentials a bare container does not have.

Does github-stars-history have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use github-stars-history?

Investigators who need to identify individual stargazers: GitHub's aggregate endpoint and this tool return counts, not identities.

What are the alternatives to github-stars-history?

Star History, dtolnay/star-history, gh-star-history. Our GitHub Stars History run installed 36 packages in 32 seconds and passed all 8 tests, making it an easy choice for repeatable CSV or JSON star counts.

Setup5/532-second install and no credential needed for public repos
Docs4/5Clear commands, formats, limits, examples, and API explanation
Community2/5276 stars, but no issue history and only a short public record
Maturity2/58 tests pass, but the repo is weeks old and has no CI

Who it’s for

Maintainers who want daily star counts in a scriptable CSV or JSON file.
Developer-relations teams comparing launch periods across several public repositories.
Analysts who prefer a small Python utility over a hosted chart service.
Researchers who need aggregate counts without gathering GitHub usernames.

Who it’s NOT for

Investigators who need to identify individual stargazers: GitHub's aggregate endpoint and this tool return counts, not identities.
Teams that need a spike labeled organic or purchased: a daily jump shows when growth happened, but it does not establish the cause.
People expecting a polished browser chart: the main command exports CSV or JSON, while the included velocity example draws a terminal bar chart.
Private-repository users unwilling to provide a GitHub token with access: anonymous use covers public repositories only.
Release processes that require visible CI and a long maintenance record: the repository was created on September 16, 2026, and our scan found 0 CI workflow files.

Setup reality

Our sandbox installed commit 940cb93 in 32 seconds, adding 36 packages and using 37 MB. The build passed in 5 seconds, then all 8 pytest tests passed in another 5 seconds. Pip-audit found 0 known vulnerabilities.

The README's quick start is close to the real local effort: Python 3.8 or newer and network access to GitHub are enough for public repositories. A token is optional, but it raises the documented limit from 60 to 5,000 requests per hour and is required for private repositories.

This is a CLI, not a hosted dashboard. Our checkout had 14 files and about 503 source lines, with no Dockerfile and 0 CI workflow files, so deployment packaging and automated release checks are left to you.

Version 1.1.0 turns aggregate history into daily data

GitHub Stars History wraps GitHub's privacy-safe star-history endpoint in a small Python command. Version 1.1.0 reads weekly buckets, expands their seven daily values, sorts the result, and calculates 7-day, 30-day, 365-day, and lifetime totals. You can inspect one repository, pass several names for comparison, print a summary, or export the series as CSV or JSON. That is a focused job, and the code does not pretend to be a full analytics platform.

The privacy boundary is useful as well as limiting. The endpoint returns daily counts without usernames, and the tool stores nothing itself. A maintainer can measure growth without assembling a list of people who starred a project. Version 1.1.0 replaced the older per-stargazer route after GitHub restricted that data in June 2026. If you need identities, this project cannot recover them. For launch analysis and trend lines, counts are usually the cleaner input anyway.

A daily spike records timing, not motive

A CSV row with 200 stars on one day is a lead, not a verdict about what caused those stars. The README suggests using vertical jumps to investigate suspicious activity, but the exported series contains no referral source, account age, campaign record, or outside event. A release, conference talk, popular post, or paid campaign can produce a similar shape. GitHub Stars History tells you when to look. You still have to correlate that date with evidence elsewhere.

This distinction matters because the repository links to commercial GitHub-star services and describes star velocity as a discovery signal. The tool's own calculations do not test search position, Trending placement, or star quality. Its peak-day result is arithmetic over GitHub's aggregate counts. Treating that result as proof of ranking impact or purchased activity would ask the data to answer a question it does not contain. Used as a timeline generator, the project stays on firm ground.

What happened when we ran it

Our sandbox installed commit 940cb93 in 32 seconds. The fresh Debian container had 3 CPUs, 8 GB of RAM, Python 3.12, no secrets, and no elevated privileges. Installation added 36 packages and occupied 37 MB. The build finished successfully in 5 seconds. Those figures support the README's claim that local setup is light, although they do not measure GitHub API response time on a large repository.

Pytest completed in 5 seconds with 8 passed and 0 failed out of 8. Pip-audit reported 0 known vulnerabilities. The repository itself contained 14 files and roughly 503 lines of source at the tested commit, plus a tests directory. Our scan found no Dockerfile and 0 CI workflow files. The green local suite is good evidence for the paths it covers, but the repository does not show an automated check running those tests on every change.

The 60-request anonymous limit is the main runtime constraint

Public repositories need no credential, and the README documents 60 GitHub API requests per hour for anonymous callers versus 5,000 with a token. The client follows pagination links and reads rate-limit headers from each response. When the remaining quota reaches 5, it waits until GitHub's reset time instead of sending probe requests. That behavior is considerate, though a long wait can surprise an unattended reporting job.

A token also changes the security job. Public analysis needs no special scope, while private repositories require a token that can see them. The process reads GITHUB_TOKEN from its environment, so a scheduled task needs secret injection and log discipline. CSV and JSON files are written to the current directory by default. For a team report, choose the output path, retain the raw series, and record the retrieval date so later comparisons use the same artifact.

The main command exports data rather than a browser graph

The project name promises history and visualization, but the primary command produces a printed summary and either CSV or JSON. An included 30-day velocity example renders bars in the terminal. That may be exactly right for analysts who will load the rows into a notebook or dashboard. It is a mismatch for someone expecting an interactive page, shareable image, or README badge from one command.

Star History supplies the visual product: its browser interface compares repositories and creates embeddable charts. The Rust project dtolnay/star-history opens a D3 graph locally, while k1LoW/gh-star-history fits users who want monthly or yearly counts inside GitHub CLI. This Python project wins when daily machine-readable output is the point. It loses when presentation is the point, because you must build that layer yourself.

A September 18 push shows activity, not a long track record

GitHub Stars History was created on September 16, 2026, released version 1.1.0 on September 18, and was last pushed that same day. GitHub showed 276 stars, 29 forks, and 0 open issues or pull requests on October 4. Those numbers describe quick early attention and a quiet queue. With no issue history to inspect, they say little about response quality when users report edge cases.

The short history is the reason to keep adoption proportional to the job. A 503-line utility with 8 passing tests is easy to read, pin, and replace, so using it for an internal report carries limited switching cost. Making it the sole source for public claims needs more care. Preserve its exported data, verify surprising peaks against another source, and remember what the result can prove: the date and size of a change, not the story behind it.

Alternatives

ProjectWhat it isPick it when
Star HistoryA browser-based service that compares repositories and produces shareable charts and badges.pick this instead when you want an embeddable image or interactive visual without writing Python.
dtolnay/star-historyA Rust CLI that opens D3 star-history graphs for users, organizations, or repositories.pick this instead when the deliverable is a graph and you already use GitHub CLI authentication.
gh-star-historyA GitHub CLI extension that aggregates repository stars by month or year.pick this instead when you live in gh and only need coarse terminal totals.

What people are saying

  1. [velocity-scout] Marcos66236/github-stars-history

Sources

  1. GitHub Stars History repository and README
  2. GitHub Stars History v1.1.0 release
  3. GitHub changelog: public API access restrictions
  4. GitHub changelog: privacy-safe star history endpoint

More dev tools reviews

BrokenPipe · FGOAC-scooby · plexo · window-sweaters · qingjian · airlift · the whole board →