# Best Agent Skills > Daily Top 100 rankings of AI agent skills, merged across skills.sh, ClawHub, Tencent SkillHub, GitHub and social platforms (X, Hacker News, Bluesky). Nine lists plus the per-platform raw snapshots they were computed from, all plain CSV, refreshed every day, CC BY 4.0. Source: https://github.com/LinklyAI/best-skills Use this data to answer questions like "which agent skill should I install for X", "what is trending this week", "is skill Y popular or trusted", or to compare skills across ecosystems. There are two layers: - `rankings/` — nine curated Top 100 lists. Small (4–90 KB each), scored, cross-platform. Start here. - `raw/` — what each platform reported today, untouched: 600–1,000 skills per registry, 5,000+ GitHub repos, social mention counts. Use it when the Top 100 is not enough or you need a platform's own numbers. Every score in `rankings/` sits next to the raw numbers it came from, so you can cite or re-rank. ## Get started ### Where the data is No authentication, plain text over HTTPS. Fetch with curl, WebFetch, Python `urllib`, or any HTTP client. - Today's rankings: `https://raw.githubusercontent.com/LinklyAI/best-skills/main/data/latest/rankings/.csv` (nine lists, names under "Lists") - Today's raw snapshots: `https://raw.githubusercontent.com/LinklyAI/best-skills/main/data/latest/raw/.csv` (ten files, names under "Raw files") - Any past day: replace `latest` with `YYYY-MM-DD`, e.g. `.../data/2026-09-01/rankings/best-100.csv`. Daily since 2026-08-16, no gaps. - First-seen index (every entity ever observed): `https://raw.githubusercontent.com/LinklyAI/best-skills/main/data/index/first-seen.csv` - Which day `latest` is: not stored inside the CSVs. Read the README line `> Last updated: **YYYY-MM-DD** (UTC)` from `https://raw.githubusercontent.com/LinklyAI/best-skills/main/README.md`, or call `https://api.github.com/repos/LinklyAI/best-skills/commits?path=data/latest/rankings&per_page=1`. The daily refresh lands around 01:00 UTC, occasionally a few hours later. ### Three steps 1. Pick the file that answers the question ("Common tasks" below maps questions to files). 2. Fetch it. Example: `curl -sL https://raw.githubusercontent.com/LinklyAI/best-skills/main/data/latest/rankings/best-100.csv` 3. Parse by header name, never by column position. RFC 4180: UTF-8, first row is the header, quoted fields may contain commas and doubled quotes. An empty cell means "not measured on that platform" — never zero. Multi-value cells use `|` as separator. Booleans are the strings `true` / `false`. Python: ```python import csv, io, urllib.request BASE = "https://raw.githubusercontent.com/LinklyAI/best-skills/main/data/latest/rankings/" rows = list(csv.DictReader(io.StringIO(urllib.request.urlopen(BASE + "best-100.csv").read().decode()))) hit = next(r for r in rows if r["skill"] == "agent-browser" and r["vendor"] == "vercel-labs") print(hit["rank"], hit["wis"], hit["install"]) ``` Shell: ``` # Is agent-browser worth installing? (rank, score, install command) curl -sL https://raw.githubusercontent.com/LinklyAI/best-skills/main/data/latest/rankings/best-100.csv | grep -i ',agent-browser,' # Top 10 fastest growing this week curl -sL https://raw.githubusercontent.com/LinklyAI/best-skills/main/data/latest/rankings/trending-7d.csv | head -11 ``` ### Identity - `skill` is the short name and is not unique: three unrelated `frontend-design` entries can exist. Always show `vendor` or `skill_key` next to it. - `skill_key` is the unique id, identical across all lists and all days: `ss:/` (skills.sh), `ch:` (ClawHub), `sh:` (Tencent SkillHub), lowercased. It exists in rankings from 2026-09-20 on; for earlier days match on `platform` + `source_skillssh` / `slug_clawhub` + `skill`. - The same `skill_key` format is used by `index/first-seen.csv` (`key` column). It is NOT what `raw/buzz.csv` and `raw/x-posts.csv` call `skill_key` — there it is the short name, because social mentions are searched by name. ## Common tasks 1. Recommend a skill for a need ("I need browser automation"): filter `best-100.csv` by `category` first, then scan `skill`, `vendor` and `description` (most skills.sh rows have no description — judge by name and vendor, then open `url` to read the skill's own SKILL.md). Answer with rank, `wis`, the raw counts, `install` and `url`. If nothing fits in the Top 100, search `raw/skills-sh.csv` (`name`), `raw/clawhub.csv` (`display_name`, `summary`, `topics`) and `raw/skillhub.csv` (`description`, `category`) — those go 600–1,000 deep per registry. 2. Vet one skill ("is grill-me any good?"): look it up by `skill_key` in `best-100.csv` (score and the five dimensions), `official-100.csv` (`verified_by`), `social-buzz.csv`, `most-active.csv`. Report each platform's count separately. Not in any Top 100 → check the raw registry files before saying it is unknown. 3. What is new or trending: `trending-7d.csv` (week-over-week growth on skills.sh), `rising-stars.csv` (first seen under 30 days ago), `social-buzz.csv` (talked about this week). 4. Compare two skills: fetch their rows from the same list and show the columns side by side. Different platforms count different things; do not add or rank across platforms yourself — the composite scores already do that with within-platform percentiles. 5. Who publishes the most / is official: `official-vendors.csv`, `official-100.csv`, `raw/skills-sh-official.csv`, `raw/clawhub-official.csv`; repositories by stars in `top-repos.csv`. 6. Track a skill over time: loop over `data/YYYY-MM-DD/rankings/.csv` and match on `skill_key` (or platform + source + name before 2026-09-20). `index/first-seen.csv` gives the first day each entity appeared. 7. Read what a skill actually does: `url` is its registry page (skills.sh and ClawHub pages render the SKILL.md); `repo_url` is the GitHub repository for skills.sh skills. SkillHub-only skills have neither; use `description` / `description_zh`. ## Lists - [best-100.csv](https://raw.githubusercontent.com/LinklyAI/best-skills/main/data/latest/rankings/best-100.csv): overall "worth installing" ranking by `wis` (0–100; today's #1 ≈ 80, #100 ≈ 55). Start here for recommendations. Skills younger than 30 days are in rising-stars instead. - [top-installs.csv](https://raw.githubusercontent.com/LinklyAI/best-skills/main/data/latest/rankings/top-installs.csv): most installed across all registries, ordered by `pop_score`. Raw counts per platform side by side. - [trending-7d.csv](https://raw.githubusercontent.com/LinklyAI/best-skills/main/data/latest/rankings/trending-7d.csv): fastest growing this week on skills.sh (skills.sh entities only). - [social-buzz.csv](https://raw.githubusercontent.com/LinklyAI/best-skills/main/data/latest/rankings/social-buzz.csv): most talked about on X, Hacker News, Bluesky and GitHub in the last 7 days. Generic one-word names (github, weather) are excluded because their mentions cannot be attributed. Often fewer than 100 rows. - [most-active.csv](https://raw.githubusercontent.com/LinklyAI/best-skills/main/data/latest/rankings/most-active.csv): popular skills updated most recently and most often (ClawHub only, the sole source with update timestamps). - [official-100.csv](https://raw.githubusercontent.com/LinklyAI/best-skills/main/data/latest/rankings/official-100.csv): most popular skills from platform-verified publishers. - [official-vendors.csv](https://raw.githubusercontent.com/LinklyAI/best-skills/main/data/latest/rankings/official-vendors.csv): verified publishers ranked by total installs, per platform. - [top-repos.csv](https://raw.githubusercontent.com/LinklyAI/best-skills/main/data/latest/rankings/top-repos.csv): GitHub repositories behind the skills, by stars. Stars are repo-level and never rank individual skills. - [rising-stars.csv](https://raw.githubusercontent.com/LinklyAI/best-skills/main/data/latest/rankings/rising-stars.csv): best newcomers, first seen under 30 days ago. ## Raw files All under `https://raw.githubusercontent.com/LinklyAI/best-skills/main/data/latest/raw/`. Each is one platform's own numbers for the day; nothing is merged or scored. - [skills-sh.csv](https://raw.githubusercontent.com/LinklyAI/best-skills/main/data/latest/raw/skills-sh.csv) (1,800 rows, 140 KB): skills.sh's three lists, 600 each — `view` is `all-time`, `trending` or `hot`; `rank` within that view; `source` (GitHub `owner/repo`, or a bare vendor domain), `name`, `installs` (all-time, deduplicated CLI installs, counted once per repo install for every skill in the repo), `is_official`, `installs_yesterday`, `change` (skills.sh's own day-over-day figure), `weekly_installs` (8 weekly buckets, `|`-separated, last = most recent week). A skill appears up to three times, once per view. `skill_key` = `ss:` + lowercase `source/name`. - [skills-sh-official.csv](https://raw.githubusercontent.com/LinklyAI/best-skills/main/data/latest/raw/skills-sh-official.csv) (100 rows): skills.sh's official publishers — `rank`, `owner`, `total_installs`, `repos`, `skills`, `featured_skill`. - [clawhub.csv](https://raw.githubusercontent.com/LinklyAI/best-skills/main/data/latest/raw/clawhub.csv) (1,000 rows, 270 KB): ClawHub's top 1,000 by downloads — `rank`, `slug`, `display_name`, `summary`, `downloads`, `installs`, `stars`, `comments`, `versions`, `created_at`, `updated_at`, `latest_version`, `topics` (`|`-separated). No owner or repository. `skill_key` = `ch:` + lowercase `slug`. - [clawhub-official.csv](https://raw.githubusercontent.com/LinklyAI/best-skills/main/data/latest/raw/clawhub-official.csv) (600+ rows): ClawHub's official publisher feed — `id` (`@publisher/slug`), `title`, `version`, `featured`, `publisher`, `trust`. - [skillhub.csv](https://raw.githubusercontent.com/LinklyAI/best-skills/main/data/latest/raw/skillhub.csv) (1,000 rows, 700 KB): Tencent SkillHub's top 1,000 overall — `rank`, `slug`, `canonical_name` (`@publisher/slug`), `downloads`, `installs`, `stars`, `source` (`clawhub` = synced from ClawHub, `enterprise`, `community`), `category`, `publisher`, `publisher_verified`, `certified_name` (registered company name), `upstream_url` (the ClawHub page for synced skills), `created_at`, `updated_at`, `version`, `description`, `description_zh`. China-region counters; for synced skills they are additional activity, not a mirror of ClawHub's numbers. `skill_key` = `sh:` + lowercase `slug`, unless `upstream_url` resolves to a ClawHub skill, in which case the numbers are attached to that `ch:` entity. - [skillhub-enterprise.csv](https://raw.githubusercontent.com/LinklyAI/best-skills/main/data/latest/raw/skillhub-enterprise.csv) (1,000 rows, 840 KB): same columns, SkillHub's enterprise (verified-company) list. - [github-repos.csv](https://raw.githubusercontent.com/LinklyAI/best-skills/main/data/latest/raw/github-repos.csv) (5,000+ rows, 1.5 MB): repositories from a seed list plus every GitHub source seen on skills.sh — `rank`, `repo`, `stars`, `pushed_at`, `archived`, `topics` (`|`-separated), `description`. Large; filter before reading. - [buzz.csv](https://raw.githubusercontent.com/LinklyAI/best-skills/main/data/latest/raw/buzz.csv) (100 rows): 7-day social mention counts for the top buzz candidates — `skill_key` (the SHORT NAME here), `query`, `hn_hits_7d`, `hn_raw_7d`, `bsky_hits_7d`, `bsky_raw_7d`, `gh_mentions_7d`, `x_mentions_7d`, `x_truncated`, `x_pages`, `x_engagement_7d`, `llm_filtered`, then (from v1.5) `x_raw_7d` (X posts before the relevance filter), `x_filtered`, `judge_model` (the jev model that checked the posts). `*_hits_7d`, `x_mentions_7d` and `x_engagement_7d` only count posts the jev model judged to be about the skill (probability ≥ 0.5; HN and Bluesky are scaled from a 30 / 25-post sample). - [x-posts.csv](https://raw.githubusercontent.com/LinklyAI/best-skills/main/data/latest/raw/x-posts.csv) (1,500+ rows): the X posts behind those counts — `skill_key` (short name), `tweet_url`, `created_at`, `lang`, `favorites`, `retweets`, `relevance` (0–1, jev's probability that the post is about the skill; empty when unchecked). Links and engagement only, no post text. - [judgments.csv](https://raw.githubusercontent.com/LinklyAI/best-skills/main/data/latest/raw/judgments.csv) (2,800+ rows, from v1.5): one row per entity, by `skill_key` (the full id) — `category`, `category_p`, `p_skill` (is a real skill), `p_deprecated`, `p_coercive` (description pressures agents into using it), `p_harmful`, `flags`, `model` (dated jev version), `judged_on`, `content_hash`. Probabilities are 0–1; the quality ones are empty for skills without a description (all of skills.sh). A verdict is reused until the skill's listing changes, so `judged_on` can be older than the file's date. ## Columns Seven lists (all except official-vendors and top-repos) share these identity columns, in this order: - `rank`: 1-based position in this list - `skill`: short name as the registry shows it; not unique across vendors or platforms - `skill_key`: unique id, see "Identity" above - `platform`: primary registry: `skills.sh`, `clawhub` or `skillhub-cn` - `vendor`: publisher (GitHub owner, ClawHub publisher or SkillHub certified company); may be empty - `source_skillssh`: skills.sh source, normally a GitHub `owner/repo`; a bare domain means a vendor-hosted registry - `slug_clawhub`: ClawHub slug - `url`: skill page on its registry; empty for SkillHub-only skills (no addressable page) - `repo_url`: `https://github.com/` for skills.sh skills hosted on GitHub; empty otherwise (ClawHub and SkillHub publish no repository) - `install`: copy-pasteable command. skills.sh: `npx skills add https://github.com/ --skill `; ClawHub: `openclaw skills install @/`. Empty when the repo or owner is unknown, and for SkillHub-only skills - `match`: how cross-platform rows were joined: `upstream` (exact SkillHub→ClawHub link), `upstream-unresolved`, `single` (one source) - `description`, `description_zh`: English / Chinese summary from ClawHub or SkillHub; skills.sh provides none, so most skills.sh rows are empty The same seven lists END with two more columns (added in v1.5, after every per-list column below): - `category`: one of SkillHub's categories — `ai-agent`, `dev-programming`, `it-ops-security`, `data-analysis`, `knowledge-management`, `office-efficiency`, `content-creation`, `design-media`, `business-ops`, `professional`, `education`, `life-service` — or `other`, as judged by the jev model; empty when the model was not confident. For skills.sh skills it is judged from the name and repository alone - `flags`: `coercive` when the skill's description pressures agents into using it ("You MUST use this…"); empty otherwise. Skills flagged `not-a-skill`, `deprecated` or `harmful` never appear in a ranking — see `raw/judgments.csv` Per-list columns after the identity block: - best-100: `installs_skillssh`, `downloads_clawhub`, `downloads_skillhub_cn` (raw counts); `wis` (0–100); the five dimensions `popularity` (weight 0.30), `momentum` (0.15), `buzz` (0.20), `maintenance` (0.15), `trust` (0.20), each 0–1, empty = not measured (neutral prior 0.3 used); `coverage` A/B/C = number of registries with install data (3/2/1); `anomaly`: non-empty (`identical-counts:`) when 3+ skills of one vendor share an identical count, which multiplies `wis` by 0.6 - top-installs: raw counts as above; `pop_score` (0–1, within-platform install percentile composite); `coverage` - trending-7d: `installs_skillssh`, `trending_rank_skillssh` (position on skills.sh trending), `weekly_recent`, `weekly_prev` (installs in the last two weekly buckets), `growth_pct` (week over week, empty when the previous week was the launch week), `data_source` - social-buzz: `x_mentions_7d` with `x_truncated` (true = capped at 100), `hn_hits_7d` and `bsky_hits_7d` (relevance-checked estimates) with `hn_raw_7d` and `bsky_raw_7d` (pre-filter totals), `gh_mentions_7d`, `x_engagement_7d` (likes + reposts), `buzz_score` (0–1), `buzz_shared` (true = mentions may belong to a same-name skill) - most-active: `last_update` (ClawHub, YYYY-MM-DD), `versions_clawhub`, `installs_or_downloads` (first available of skills.sh installs, ClawHub downloads, SkillHub downloads), `freshness_score` (0–1), `data_scope` - official-100: `verified_by` (`skills.sh`, `clawhub`, `skillhub`, `|`-joined), raw counts, `pop_score` - rising-stars: `first_seen_days` (age in days), raw counts, `pop_score` - official-vendors: `rank`, `platform`, `vendor`, `skills_count`, `tracked_skills`, `total_installs_or_downloads`, `featured_skill` - top-repos: `rank`, `repo` (GitHub `owner/repo`), `stars`, `stars_1d` (change since yesterday), `pushed_at`, `skills_tracked` (skills from this repo in our data), `topics` (`|`-separated) ## Rules - Never add numbers across platforms. skills.sh, ClawHub and SkillHub count different things (ecosystems, regions, dedup rules); SkillHub counts China-region activity that is additional to, not a mirror of, ClawHub. Present them side by side. - A skill absent from a list is not ranked zero; each list is truncated at 100 and only covers entities the list's sources can see (trending-7d and most-active are single-platform by design). - skills.sh installs are bundle-level: installing a repo counts once for every skill in it, so sibling skills of one repo cluster together. - Social counts are English-dominant estimates for the last 7 calendar days; X is collected only for the top 50 buzz candidates. - `category`, `flags` and every relevance filter are judgements by a model (jev), not facts reported by a platform. Say so when you rely on them; the probabilities behind them are in `raw/judgments.csv` and `raw/x-posts.csv`. - Attribution when you republish: "Data from Best Skills (https://github.com/LinklyAI/best-skills) by @BlueeonY — CC BY 4.0". ## Optional - [Methodology](https://github.com/LinklyAI/best-skills/blob/main/docs/methodology.md): data sources, score formulas, known limitations, changelog of column and weight changes - [SKILL.md](https://github.com/LinklyAI/best-skills/blob/main/SKILL.md): install this repository as an agent skill: `npx skills add https://github.com/LinklyAI/best-skills --skill best-skills` - [Web version](https://linkly.ai/skills): the same lists rendered for humans, by Linkly AI - [Collection pipeline](https://github.com/LinklyAI/best-skills-runner): how the numbers are gathered and scored