关于 github-stars
github-stars 是一项命令行技能,通过 GitHub API 按天和小时绘制仓库的 Star 时间分布,适合跟踪发布活动及仓库增长变化。
主要功能
- 01通过 GitHub API 获取 Star 时间戳
- 02按天和小时绘制 Star 图表
- 03设置时区和图表时间范围
- 04根据搜索词解析仓库
- 05提示时间戳数据限制
适用场景
- 01跟踪产品发布期间的 Star 活动
- 02查看 Show HN 或 Product Hunt 热度
- 03监测 DevRel 增长
- 04比较多次检查间的近期 Star 活动
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ openclaudia/ openclaudia-skills --skill github-stars安装后在 Claude Code 中输入/github-stars确认已加载。
附带文件github-stars.sh
详细介绍
github-stars
从 GitHub API 获取仓库每颗星的时间戳,并在终端中绘制两张 ASCII 图表:每日星标数和每小时星标数(针对最近几天)。适用于跟踪产品发布、Show HN / Product Hunt 带来的增长峰值或 DevRel 增长。
要求
- 已安装并完成身份验证的
ghCLI(gh auth status)。未经身份验证的调用会受到较低的速率限制,大型仓库在分页过程中可能失败。 - Python 3.9+(使用标准库
zoneinfo正确处理夏令时)。
工作原理
脚本使用 application/vnd.github.star+json Accept 标头调用 gh api,以便为每位点星用户添加 starred_at 时间戳。它会遍历所有点星用户,将每个时间戳转换为目标时区,然后按天和小时分组。
用法
脚本与此文件位于同一目录。从技能目录运行:
bash github-stars.sh <owner/repo | search-term> [--tz <IANA tz>] [--days N] [--hours-days N]
<owner/repo>— 指定确切的仓库(例如facebook/react)。跳过搜索。<search-term>— 不含/的单个词会解析为按星标数排名第一的仓库。--tz— 所有分组使用的 IANA 时区。默认为America/Los_Angeles。例如可使用UTC、America/New_York、Asia/Shanghai、Europe/Berlin。--days N— 每日图表显示最近多少天(默认为 14)。--hours-days N— 按小时细分最近多少天(默认为 2)。
示例
# 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
输出示例
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 ████████████
注意事项 — 相关时请告知用户
- 40,000 星标上限: GitHub 只会为前 40k 位点星用户返回
starred_at。超过此数量后,按小时和按天的统计会不完整(脚本会发出警告)。总数仍然准确。 - 统计净值,而非总量: 点星用户列表反映当前有效的星标。取消的星标不会显示,因此两次检查之间总数不变,也可能掩盖了 +1/−1 的变动。如果实时的
stargazers_count与时间戳数量不一致,则说明有人取消了星标。 - 自动处理夏令时,通过
zoneinfo实现——不要硬编码 UTC 偏移量。
重新检查/实时轮询
只需再次运行脚本——每次都会重新获取实时数据。要跟踪产品发布,请间隔一段时间重新运行并报告变化量;轮询间隔不要短于约 15 分钟(考虑速率限制和礼貌使用)。
评论
支持 Markdown