OpenClaw Skills Weekly
Automated pipeline for tracking trending ClawHub skills and generating YouTube-ready video scripts in the GitHubAwesome format.
What This Skill Does
- ClawHub API Discovery — Fetches all ~13K skills from
GET https://clawhub.ai/api/v1/skillswith 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 |
|---|---|---|
weekly report or full report or generate report | Full Pipeline | Discovery → snapshot → rank → harvest → scripts → output |
snapshot or daily snapshot | 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:
cd "${SKILL_ROOT}" && pip install -r requirements.txt --quiet 2>/dev/null || pip3 install -r requirements.txt --quiet
Then run the full pipeline:
cd "${SKILL_ROOT}" && python3 run_weekly.py --top 10 --episode ${EPISODE_NUM:-1}
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:
cd "${SKILL_ROOT}" && python3 run_weekly.py --top 10 --skip-x --episode ${EPISODE_NUM:-1}
What this produces:
openclaw_weekly_YYYYMMDD.md— Data-rich markdown report with metrics, rankings, and scriptsopenclaw_weekly_YYYYMMDD_script.txt— Voice-ready video script in GitHubAwesome format
Present both file paths to the user when done.
Expected output:
============================================================
OpenClaw Skills Weekly — Full Pipeline (v4)
Week of Mar 01, 2026
============================================================
PHASE 1: Multi-Source Signal Capture (X + Reddit + HN)
PHASE 2: ClawHub Data Pipeline
[1/5] Discovering ClawHub skills...
[2/5] Saving snapshot...
[3/5] Ranking by 7-day velocity...
[4/5] Harvesting content...
[5/5] Generating YouTube scripts...
DONE:
Report: openclaw_weekly_20260301.md
Script: openclaw_weekly_20260301_script.txt
Snapshot Only (Daily Cron)
For daily snapshot accumulation without script generation:
cd "${SKILL_ROOT}" && python3 run_weekly.py --snapshot-only --skip-x
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:
cd "${SKILL_ROOT}" && python3 main.py --list-db
Status
cd "${SKILL_ROOT}" && python3 main.py --list-db
Shows: DB path, total snapshot rows, distinct dates, top skills by current installs.
CLI Options Reference
| Flag | Default | Description |
|---|---|---|
--top N | 10 | Number of top movers to include |
--days N | 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 |
|---|---|---|
ANTHROPIC_API_KEY | Yes | For YouTube script generation via Claude |
GITHUB_TOKEN | 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
run_weekly.py # Full pipeline orchestrator
main.py # Alternative CLI with --list-db
discovery.py # ClawHub API cursor pagination (~13K skills)
storage.py # SQLite time-series (slug-scoped dedup, CTE velocity)
ranker.py # Two-track: Movers + Rockets, author diversity cap
harvester.py # ClawHub detail API content + author extraction
script_generator.py # LLM script gen + markdown + video script rendering
community_signals.py # Multi-source signal loading and rendering
x_capture.py # xAI x_search API integration
reddit_capture.py # Reddit + Hacker News signal capture
hourly_heartbeat.py # Top-500 hourly snapshot + project metadata
project_tracker.py # OpenClaw GitHub repo metadata tracking
data/metrics.db # SQLite database (auto-created)