GhStats is an open-source, cross-platform desktop analytics dashboard for your public GitHub repositories. Track stars and release download counts over time - totals, daily deltas, and rolling windows stored entirely on your machine.
Ideal for indie developers who want a lightweight Google Analytics–style view of GitHub engagement without shipping data to a third party.
- KPI strip: total stars / downloads, today, 7d, and 30d windows
- Time ranges: 7d · 30d · 90d · All
- Charts: new stars per day, download deltas, cumulative stars, total downloads
- Hover tooltips on delta charts showing which repos changed
- Per-repo table with stars, downloads, and 7d/30d star windows
- Local snapshots + optional star-history cache (rate-limit aware)
- Live fetch timer and rolling average timings
- Toggleable debug log bar
- Tray icon, splash screen, single-instance, window bounds persistence
- Close hides to tray (Quit from tray menu)
Main analytics dashboard:
- GitHub CLI (
gh) installed and authenticated (gh auth login)
- Download the latest installer from Releases
- Run the installer and follow the prompts
- Download the
.dmgfrom Releases and drag GhStats to Applications - macOS may say the app is “damaged” — that is Gatekeeper blocking an unsigned download, not a bad file. Go to System Preferences → Security & Privacy, then “Open anyway”.
bun install
bun run startbun run releaseBump the version in package.json and push to master (or run bun run bump). The GitHub Actions workflow builds Windows and macOS installers, uploads updater metadata, and creates a GitHub Release.
- Sign in with
gh auth loginif you have not already - Launch GhStats — it auto-fetches public repo totals on first run (and every 24h)
- Use the range tabs (7d / 30d / 90d / All) to change the chart window
- Click Refresh to re-pull current stars and release download totals
- Click History once to backfill star timelines via
gh api stargazers(slow; rate-limit aware) - Hover delta chart bars to see which repos contributed that day
- Click Debug to show or hide the log strip
Download charts need multiple daily snapshots before deltas appear. Star charts need a History fetch for day-by-day stargazer detail (snapshot totals still plot without it).
| Metric | Source | Notes |
|---|---|---|
| Current stars | gh repo list --json stargazerCount |
One API call |
| Current downloads | gh api repos/{repo}/releases per repo |
Summed asset download_count (same as ghstats) |
| Star history | gh api stargazers with star timestamps |
On-demand; paginated with delays |
| Download trends | Local daily snapshots | Auto-refresh every 24h; deltas computed locally |
GitHub does not expose historical download counts — only cumulative totals. Daily download charts appear after repeated snapshots over time.
Logs are written to %APPDATA%/gh-stats/logs/gh-stats.log (Windows) / the Electron userData folder on macOS/Linux.
GitHub analytics, stars over time, release downloads, gh CLI dashboard, Electron desktop app, local GitHub stats, repository metrics
Contributions are welcome! Please feel free to submit a Pull Request.
MIT
