smithery/samhvw8

github-search

Search GitHub for repos, code, and usage examples using gh CLI.

Installation

$ npx skills add smithery/samhvw8 --skill github-search

Summary

  • Search GitHub for repos, code, and usage examples using gh CLI.
  • Capabilities: repo discovery, code search, finding library usage patterns, issue/PR search.
  • Actions: search, find, discover repos/code/examples.
  • Keywords: gh, github, search repos, search code, find examples, how to use library, stars, language filter.
  • Use when: finding repositories, searching code patterns, discovering how libraries are used, exploring open source.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/samhvw8 · top by installs.

npx skills add smithery/samhvw8

Browse all from smithery/samhvw8

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Allowed toolsBash, Read

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 7,831 B
  • docs SUMMARY.md 453 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

GitHub Search

Quick Commands

Goal Command
Search repos gh search repos "<query>" --limit 30
Search code gh search code "<query>" --limit 30
Search issues gh search issues "<query>" --limit 30
Search PRs gh search prs "<query>" --limit 30

Keyword Strategy: Variants & Long → Short

GitHub matches your query tokens against repo name + description + README (for code search, the file contents). There is no semantic matching — a repo is invisible if its text doesn't contain words close to yours. Two ways a search misses:

  • Wrong word — the author used a synonym you didn't try.
  • Too long — your compound phrase is more specific than any repo's name/description, so nothing matches.

Fix: generate keyword variants, and cascade from longer to shorter.

# ❌ Brittle — one long compound, matches almost nothing
gh search repos "AI powered headless browser automation framework"

# ✅ Variants + length cascade — run in parallel, shorter terms guarantee coverage
gh search repos "headless browser automation" --sort stars --limit 15
gh search repos "headless browser"            --sort stars --limit 15
gh search repos "browser automation"          --sort stars --limit 15
gh search repos "browserless"                 --sort stars --limit 15   # synonym
gh search repos "browser"                      --sort stars --limit 15   # shortest, widest net
Rule Why
Longer → shorter Each word you drop widens the match set; the shortest core noun catches repos with zero topics and terse descriptions
Generate variants Authors and users pick different words (headless vs browserless, agent vs bot) — cover the synonyms
Never long-only A single long compound is the most brittle query — if it's all you run, you miss the field
Run in parallel Batch all variants into simultaneous calls; cost is the same, coverage is far higher
Repeat per language Run the cascade in each target language with native terms (无头浏览器, автоматизация браузера)

Direct API Search (Web-Exact Results)

For complex queries where gh search repos gives different results than web:

# Template - URL-encodes query automatically
gh api "search/repositories?q=$(printf '%s' 'YOUR_QUERY_HERE' | jq -sRr @uri)&sort=updated&per_page=30" --jq '.items[].full_name'

Example - Multi-language with exclusions:

gh api "search/repositories?q=$(printf '%s' 'stars:>500 language:rust language:go language:TypeScript language:javascript -topic:ethereum -topic:cryptocurrency -topic:blockchain -topic:bitcoin -topic:web3' | jq -sRr @uri)&sort=updated&per_page=10" --jq '.items[].full_name'

Why use this?

  • gh search repos is a convenience wrapper with its own query parsing
  • gh api search/repositories hits the raw API, matching web behavior exactly
  • Required when combining: multiple languages + topic exclusions + star filters

Common jq extractions:

Output jq filter
Names only --jq '.items[].name'
Full names --jq '.items[].full_name'
With stars `--jq '.items[] \ "\(.fullname) ⭐\(.stargazerscount)"'`
URLs --jq '.items[].html_url'
Full JSON (omit --jq)

Patterns

Finding Repositories

When you see: User wants to find projects/repos by criteria Use: gh search repos

# Basic search with stars
gh search repos "stars:>500 language:rust" --sort=stars --limit=50

# Multiple languages (OR logic)
gh search repos "language:rust language:go language:typescript"

# Exclude topics
gh search repos "stars:>1000 -topic:cryptocurrency -topic:blockchain"

# By topic
gh search repos "topic:cli topic:terminal stars:>100"

# Recently updated
gh search repos "language:python pushed:>2024-01-01"

Output formats:

--json name,url,description,stargazersCount  # JSON output
--web                                         # Open in browser

Finding Code Examples

When you see: User wants to know how to use a library Use: gh search code

# Find usage patterns
gh search code "from zod import" --limit=20
gh search code "import { z } from 'zod'" --limit=20

# In specific file types
gh search code "useQuery" extension:tsx --limit=30

# In specific paths
gh search code "tanstack/query" path:src/ extension:ts

# Exact phrase
gh search code '"createTRPCRouter"' extension:ts

Pro tip: Combine with repo filter for focused results:

gh search code "pattern" repo:owner/repo

Finding Issues/Discussions

When you see: User looking for bug reports, feature requests, or discussions Use: gh search issues or gh search prs

# Open issues with label
gh search issues "is:open label:bug repo:facebook/react"

# PRs by author
gh search prs "author:username is:merged"

# Issues mentioning error
gh search issues '"connection refused" language:go'

Query Qualifiers Reference

Repo Search

Qualifier Example Description
stars: stars:>1000, stars:100..500 Star count
forks: forks:>100 Fork count
language: language:rust Primary language
topic: topic:cli Repository topic
-topic: -topic:blockchain Exclude topic
pushed: pushed:>2024-01-01 Last push date
created: created:>2023-01-01 Creation date
license: license:mit License type
archived: archived:false Archive status
is: is:public, is:private Visibility

Code Search

Qualifier Example Description
extension: extension:ts File extension
path: path:src/ File path
repo: repo:owner/name Specific repo
language: language:javascript Code language
filename: filename:package.json File name

Common Flags

Flag Description
--limit N Number of results (max 1000)
--sort X Sort by: stars, forks, updated, best-match
--order X asc or desc
--json FIELDS JSON output with specific fields
--web Open results in browser

Common Use Cases

"Find popular X repos"

gh search repos "language:X stars:>500" --sort=stars --limit=50

"How do people use library Y"

gh search code "import Y" extension:ts --limit=30
gh search code "from Y import" extension:py --limit=30

"Find repos like Z but exclude crypto"

gh search repos "topic:Z -topic:cryptocurrency -topic:blockchain -topic:web3"

"Find recent active projects"

gh search repos "language:go pushed:>2024-06-01 stars:>100" --sort=updated

Tips

  1. Quote the query when it contains special chars: gh search repos "stars:>500"
  2. Multiple languages = OR: language:rust language:go matches either
  3. Use --json for scripting: --json name,url,stargazersCount
  4. Date ranges: pushed:2024-01-01..2024-06-01
  5. Numeric ranges: stars:100..500
  6. Use gh api for complex queries: When gh search repos gives unexpected results, use gh api search/repositories?q=... for exact web parity