Skill Discovery
Find agent skills on GitHub using gh CLI. Skills work across multiple harnesses (Claude Code, Codex, Gemini CLI, Pi, etc.) as they follow the same SKILL.md format.
Workflow
- Search repos by topic to find skill collections
- For awesome lists: fetch README and extract skill links
- For skill repos: list directories containing SKILL.md
- Build searchable catalog at
/tmp/skills-catalog.md - Search/filter based on user query
Find skill repos
bashgh search repos --topic=claude-skills --sort=stars --limit=30 --json fullName,description gh search repos --topic=codex-skills --sort=stars --limit=20 --json fullName,description gh search repos --topic=gemini-skills --sort=stars --limit=20 --json fullName,description gh search repos --topic=skill-md --sort=stars --limit=20 --json fullName,description gh search repos --topic=agent-skills --sort=stars --limit=20 --json fullName,description gh search repos --topic=claude-code-skills --sort=stars --limit=20 --json fullName,description gh search repos --topic=gemini-cli-skills --sort=stars --limit=20 --json fullName,description
Find repos with SKILL.md files
Search GitHub code for actual SKILL.md files (finds repos not tagged with topics):
bash# Find repos containing SKILL.md files, then fetch stars via GraphQL (single query) repos=$(gh search code "filename:SKILL.md" --limit=50 --json repository | jq -r '.[].repository.nameWithOwner' | sort -u) # Build GraphQL query to get stars for all repos at once query="{ " i=0 for repo in $repos; do owner="${repo%/*}" name="${repo#*/}" query+="r$i: repository(owner: \"$owner\", name: \"$name\") { nameWithOwner stargazerCount description } " ((i++)) done query+="}" gh api graphql -f query="$query" --jq '.data | to_entries[] | "\(.value.nameWithOwner) ★\(.value.stargazerCount) - \(.value.description // "no desc")"' | sort -t'★' -k2 -rn
Build catalog from awesome lists
For repos with "awesome" in name, fetch README:
bashgh api "repos/<owner>/<repo>/contents/README.md" --jq '.content' | base64 -d >> /tmp/skills-catalog.md
List skills in a collection repo
For repos with skills directories:
bash# Find skills directory (skills/, scientific-skills/, etc.) gh api repos/<owner>/<repo>/contents --jq '.[].name' # List individual skills gh api repos/<owner>/<repo>/contents/<skills-dir> --jq '.[].name'
Search catalog
bashgrep -i "<keyword>" /tmp/skills-catalog.md -B2 -A1
View skill contents
bashgh api repos/<owner>/<repo>/contents/<path>/SKILL.md --jq '.content' | base64 -d
Install skill
bashgh repo clone <owner>/<repo> /tmp/<repo> cp -r /tmp/<repo>/skills/<skill-name> ~/.pi/agent/skills/
Output
Show matching skills as table: | Repository | Description |
After results, offer:
- View a specific skill's SKILL.md
- Install a skill to
~/.pi/agent/skills/ - Search for different keywords


