OpenClaw Skills Weekly
Automated pipeline for tracking trending ClawHub skills and generating YouTube-ready video scripts in the GitHubAwesome format.
What This Skill Does
- 1. ClawHub API Discovery — Fetches all ~13K skills from
GET https://clawhub.ai/api/v1/skills with cursor pagination. No auth required. - SQLite Time-Series Snapshots — Records daily metrics (installs, downloads, stars) to build 7-day velocity history.
- Two-Track Ranking — MOVERS (established skills, 30+ days, ranked by install velocity) and ROCKETS (new skills <30 days, with recency bonus). Author diversity cap prevents one author from dominating.
- Content Harvesting — Fetches documentation and author info from ClawHub detail API for top-ranked skills.
- YouTube Script Generation — Generates GitHubAwesome-style video segments via Claude Haiku: hook-first, technical specs, no popularity metrics, dry newscast tone.
- Dual Output — Markdown report (
.md) + voice-ready video script (.txt).
Commands
Parse the user's request and route to the correct mode:
| User says | Mode | What happens |
|---|
INLINECODE3 or full report or INLINECODE5 | Full Pipeline | Discovery → snapshot → rank → harvest → scripts → output |
| INLINECODE6 or INLINECODE7 |
Snapshot Only | Record ClawHub metrics to DB (no scripts) |
|
trending or
what's trending | Quick Trending | Show top 10 from existing DB data |
|
status or
db status | Status | Show DB health and snapshot history |
|
video script or
generate script | Script Only | Re-generate scripts from last snapshot (no re-fetch) |
Full Pipeline (Weekly Report)
First, install dependencies if not already present:
CODEBLOCK0
Then run the full pipeline:
CODEBLOCK1
Replace ${EPISODE_NUM} with the episode number the user specifies, or default to 1.
If the user says --skip-x or doesn't want X/Twitter capture, add --skip-x:
CODEBLOCK2
What this produces:
- -
openclaw_weekly_YYYYMMDD.md — Data-rich markdown report with metrics, rankings, and scripts - INLINECODE18 — Voice-ready video script in GitHubAwesome format
Present both file paths to the user when done.
Expected output:
CODEBLOCK3
Snapshot Only (Daily Cron)
For daily snapshot accumulation without script generation:
CODEBLOCK4
Tell the user how many skills were captured and how many snapshot dates exist in the DB.
Quick Trending
Show what's trending from existing DB data without re-fetching:
CODEBLOCK5
Status
CODEBLOCK6
Shows: DB path, total snapshot rows, distinct dates, top skills by current installs.
CLI Options Reference
| Flag | Default | Description |
|---|
| INLINECODE19 | 10 | Number of top movers to include |
| INLINECODE20 |
7 | Trailing days for velocity calculation |
|
--episode N | 1 | Episode number for video script cold open |
|
--skip-x | false | Skip X/Twitter signal capture |
|
--snapshot-only | false | Just record snapshot, no scripts |
|
--max-pages N | 0 (all) | Limit API pages (for testing) |
|
--model MODEL | claude-haiku-4-5-20251001 | Anthropic model for script gen |
|
--output FILE | auto-dated | Custom output file path |
|
--mock | false | Use synthetic data (offline dev) |
Environment Variables
| Variable | Required | Description |
|---|
| INLINECODE28 | Yes | For YouTube script generation via Claude |
| INLINECODE29 |
No | For fetching source READMEs from GitHub |
|
XAI_API_KEY | No | For X/Twitter signal capture via xAI |
|
CLAWHUB_BASE_URL | No | Override ClawHub URL (default: https://clawhub.ai) |
Video Script Format
Scripts follow the GitHubAwesome "GitHub Trending Weekly" format:
- - Cold open: "It is time for OpenClaw Skills Weekly, episode number N..."
- Per-skill segments (~20 sec each): Hook first → technical specs → sharp closer
- No popularity metrics in narration (no download/install/star counts)
- Dry, confident newscast tone — no hype, no superlatives
- No outro — last item ends the episode
Architecture
CODEBLOCK7
OpenClaw Skills Weekly
用于追踪热门ClawHub技能并以GitHubAwesome格式生成YouTube视频脚本的自动化流水线。
该技能的功能
- 1. ClawHub API发现 — 通过游标分页从GET https://clawhub.ai/api/v1/skills获取约13K个技能。无需认证。
- SQLite时间序列快照 — 记录每日指标(安装量、下载量、星标数),构建7天变化速度历史。
- 双轨排名 — MOVERS(成熟技能,30天以上,按安装速度排名)和ROCKETS(新技能,30天以内,带有新近度加成)。作者多样性上限防止单一作者主导。
- 内容采集 — 从ClawHub详情API获取排名靠前技能的文档和作者信息。
- YouTube脚本生成 — 通过Claude Haiku生成GitHubAwesome风格的视频片段:钩子先行、技术规格、无流行度指标、干练新闻播报风格。
- 双重输出 — Markdown报告(.md)+ 语音就绪视频脚本(.txt)。
命令
解析用户请求并路由到正确模式:
| 用户输入 | 模式 | 执行操作 |
|---|
| weekly report 或 full report 或 generate report | 完整流水线 | 发现 → 快照 → 排名 → 采集 → 脚本 → 输出 |
| snapshot 或 daily snapshot |
仅快照 | 将ClawHub指标记录到数据库(无脚本) |
| trending 或 whats trending | 快速趋势 | 显示现有数据库数据中的前10名 |
| status 或 db status | 状态 | 显示数据库健康状况和快照历史 |
| video script 或 generate script | 仅脚本 | 从上次快照重新生成脚本(不重新获取) |
完整流水线(周报)
首先,如果尚未安装依赖:
bash
cd ${SKILL_ROOT} && pip install -r requirements.txt --quiet 2>/dev/null || pip3 install -r requirements.txt --quiet
然后运行完整流水线:
bash
cd ${SKILLROOT} && python3 runweekly.py --top 10 --episode ${EPISODE_NUM:-1}
将${EPISODE_NUM}替换为用户指定的集数,默认为1。
如果用户说--skip-x或不需要X/Twitter抓取,添加--skip-x:
bash
cd ${SKILLROOT} && python3 runweekly.py --top 10 --skip-x --episode ${EPISODE_NUM:-1}
生成内容:
- - openclawweeklyYYYYMMDD.md — 包含指标、排名和脚本的数据丰富Markdown报告
- openclawweeklyYYYYMMDD_script.txt — 语音就绪的GitHubAwesome格式视频脚本
完成后向用户展示两个文件路径。
预期输出:
============================================================
OpenClaw Skills Weekly — 完整流水线 (v4)
2026年3月1日当周
============================================================
阶段1:多源信号捕获 (X + Reddit + HN)
阶段2:ClawHub数据流水线
[1/5] 发现ClawHub技能...
[2/5] 保存快照...
[3/5] 按7天速度排名...
[4/5] 采集内容...
[5/5] 生成YouTube脚本...
完成:
报告:openclawweekly20260301.md
脚本:openclawweekly20260301_script.txt
仅快照(每日定时任务)
用于每日快照累积而不生成脚本:
bash
cd ${SKILLROOT} && python3 runweekly.py --snapshot-only --skip-x
告知用户捕获了多少技能以及数据库中有多少个快照日期。
快速趋势
显示现有数据库数据中的趋势,无需重新获取:
bash
cd ${SKILL_ROOT} && python3 main.py --list-db
状态
bash
cd ${SKILL_ROOT} && python3 main.py --list-db
显示:数据库路径、总快照行数、不同日期数、按当前安装量排名的顶级技能。
CLI选项参考
| 标志 | 默认值 | 描述 |
|---|
| --top N | 10 | 包含的顶级变动者数量 |
| --days N |
7 | 速度计算的后溯天数 |
| --episode N | 1 | 视频脚本冷开场集数 |
| --skip-x | false | 跳过X/Twitter信号捕获 |
| --snapshot-only | false | 仅记录快照,不生成脚本 |
| --max-pages N | 0(全部) | 限制API页数(用于测试) |
| --model MODEL | claude-haiku-4-5-20251001 | 用于脚本生成的Anthropic模型 |
| --output FILE | 自动日期 | 自定义输出文件路径 |
| --mock | false | 使用合成数据(离线开发) |
环境变量
| 变量 | 必需 | 描述 |
|---|
| ANTHROPICAPIKEY | 是 | 用于通过Claude生成YouTube脚本 |
| GITHUB_TOKEN |
否 | 用于从GitHub获取源README |
| XAI
APIKEY | 否 | 用于通过xAI捕获X/Twitter信号 |
| CLAWHUB
BASEURL | 否 | 覆盖ClawHub URL(默认:https://clawhub.ai) |
视频脚本格式
脚本遵循GitHubAwesome的GitHub Trending Weekly格式:
- - 冷开场:又到了OpenClaw Skills Weekly时间,第N集...
- 每个技能片段(约20秒):钩子先行 → 技术规格 → 干脆收尾
- 旁白中不提及流行度指标(无下载/安装/星标计数)
- 干练、自信的新闻播报风格 — 无炒作、无最高级
- 无结尾 — 最后一个项目结束本集
架构
run_weekly.py # 完整流水线编排器
main.py # 带--list-db的替代CLI
discovery.py # ClawHub API游标分页(约13K技能)
storage.py # SQLite时间序列(基于slug的去重,CTE速度计算)
ranker.py # 双轨:变动者 + 火箭,作者多样性上限
harvester.py # ClawHub详情API内容 + 作者提取
script_generator.py # LLM脚本生成 + Markdown + 视频脚本渲染
community_signals.py # 多源信号加载和渲染
xcapture.py # xAI xsearch API集成
reddit_capture.py # Reddit + Hacker News信号捕获
hourly_heartbeat.py # 前500名每小时快照 + 项目元数据
project_tracker.py # OpenClaw GitHub仓库元数据追踪
data/metrics.db # SQLite数据库(自动创建)