Skip to content
Marketing
Skill

/github-stars

Show a GitHub repo's star growth as CLI charts — by day and by hour, in any timezone. Use when the user asks to "check GitHub stars", "stars by hour/day for <repo>", "star growth", "how many stars did <repo> get today", or shares a repo name and wants its starring activity over

From plugin
openclaudia-skills
62375 skills
Install
$ npx -y skills add openclaudia/openclaudia-skills --skill github-stars --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/github-stars

Context preview

The summary Claude sees to decide when to auto-load this skill.

Show a GitHub repo's star growth as CLI charts — by day and by hour, in any timezone. Use when the user asks to "check GitHub stars", "stars by hour/day for <repo>", "star growth", "how many stars did <repo> get today", or shares a repo name and wants its starring activity over

SKILL.md

github-stars.SKILL.md
name: github-stars
description: Show a GitHub repo's star growth as CLI charts — by day and by hour, in any timezone. Use when the user asks to "check GitHub stars", "stars by hour/day for <repo>", "star growth", "how many stars did <repo> get today", or shares a repo name and wants its starring activity over time.

github-stars

Fetch a repo's per-star timestamps from the GitHub API and render two ASCII charts in the terminal: **stars by day** and **stars by hour** (for the most recent day(s)). Useful for tracking a launch, a Show HN / Product Hunt spike, or DevRel growth.

Requirements

  • The [`gh` CLI](https://cli.github.com/) installed and authenticated (`gh auth status`). Unauthenticated calls hit a low rate limit and large repos fail mid-pagination.
  • Python 3.9+ (uses the stdlib `zoneinfo` for correct DST handling).

How it works

The script calls `gh api` with the `application/vnd.github.star+json` Accept header, which adds a `starred_at` timestamp to each stargazer. It paginates through all stargazers, converts each timestamp to the target timezone, and buckets them by day and by hour.

Usage

The script lives next to this file. From the skill directory:

bash github-stars.sh <owner/repo | search-term> [--tz <IANA tz>] [--days N] [--hours-days N]
  • **`<owner/repo>`** — exact repo (e.g. `facebook/react`). Skips the search.
  • **`<search-term>`** — a bare word (no `/`) is resolved to the top repo by stars.
  • **`--tz`** — IANA timezone for all buckets. Default `America/Los_Angeles`. Use e.g. `UTC`, `America/New_York`, `Asia/Shanghai`, `Europe/Berlin`.
  • **`--days N`** — how many recent days to show in the daily chart (default 14).
  • **`--hours-days N`** — how many recent days to break out hourly (default 2).

Examples

# default: last 14 days daily + last 2 days hourly
bash github-stars.sh vercel/next.js

# resolve a search term, show UTC
bash github-stars.sh next.js --tz UTC

# zoom in: only today hourly, 7-day daily window
bash github-stars.sh facebook/react --days 7 --hours-days 1

Sample output

owner/repo — 284 stars (with timestamps)
newest: 2026-06-15 02:03 PM PDT   |   now: 2026-06-15 02:11 PM PDT

STARS BY DAY (PDT)
  2026-06-13    16  █████████
  2026-06-14    69  ████████████████████████████████████████  ← peak
  2026-06-15    22  █████████████

STARS BY HOUR — 2026-06-15 (PDT)   total 22
  06:00     5  ██████████████████████████████
  07:00     2  ████████████
  14:00     2  ████████████

Caveats — surface these to the user when relevant

  • **40,000-star cap:** GitHub only returns `starred_at` for the first 40k stargazers. Past that, the hourly/daily breakdown is incomplete (the script warns). The plain total stays accurate.
  • **Net, not gross:** the stargazer list reflects stars currently in place. Un-stars don't appear, so a flat total between two checks can hide +1/−1 churn. If the live `stargazers_count` disagrees with the timestamp count, an un-star happened.
  • **DST is handled** automatically via `zoneinfo` — don't hardcode UTC offsets.

Re-checking / live polling

Just run the script again — it re-fetches live each time. To watch a launch, re-run on an interval and report the delta; don't poll faster than every ~15 minutes (rate limits + politeness).

Read more
Ships withopenclaudia-skills

34 open-source marketing skills for Claude Code. SEO, content, email, ads, analytics, and growth.

Get the whole plugin
Stats
623
Stars
45
Forks
Active
Maintenance
JavaScript
Language
MIT
License
16h ago
Last commit
6mo ago
Created

Repo: openclaudia/openclaudia-skills

Other skills on openclaudia-skills.