Smithery Logo
MCPsSkillsDocsPricing
Login
Smithery Logo

Accelerating the Agent Economy

Resources

DocumentationPrivacy PolicySystem Status

Company

PricingAboutBlog

Connect

© 2026 Smithery. All rights reserved.

    aaddrick

    gh-search-repos

    aaddrick/gh-search-repos
    Research
    3
    4 installs

    About

    SKILL.md

    Install

    Install via Skills CLI

    or add to your agent
    • Claude Code
      Claude Code
    • Codex
      Codex
    • OpenClaw
      OpenClaw
    • Cursor
      Cursor
    • Amp
      Amp
    • GitHub Copilot
      GitHub Copilot
    • Gemini CLI
      Gemini CLI
    • Kilo Code
      Kilo Code
    • Junie
      Junie
    • Replit
      Replit
    • Windsurf
      Windsurf
    • Cline
      Cline
    • Continue
      Continue
    • OpenCode
      OpenCode
    • OpenHands
      OpenHands
    • Roo Code
      Roo Code
    • Augment
      Augment
    • Goose
      Goose
    • Trae
      Trae
    • Zencoder
      Zencoder
    • Antigravity
      Antigravity
    ├─
    ├─
    └─

    About

    Use when searching GitHub repositories - provides syntax for filtering by stars, forks, language, topics, license, archived status, and all repository attributes

    SKILL.md

    GitHub CLI: Search Repositories

    Overview

    Search for repositories across GitHub using gh search repos. Filter by stars, forks, language, topics, license, and more.

    When to Use This Skill

    Use this skill when searching for repositories across GitHub:

    • Finding repositories by popularity (stars/forks)
    • Searching by programming language or topics
    • Finding repos with good first issues
    • Filtering by license or archived status
    • Searching in specific organizations or by owner
    • Need to exclude certain results (requires -- flag)

    Syntax

    gh search repos [<query>] [flags]
    

    Key Flags Reference

    Repository Attributes

    Flag Purpose Example
    --language <string> Programming language --language python
    --topic <strings> Repository topics --topic machine-learning
    --license <strings> License type --license mit
    --archived {true|false} Archived state --archived false
    --owner <strings> Repository owner --owner github
    --visibility <string> Visibility: public, private, internal --visibility public

    Popularity Metrics

    Flag Purpose Example
    --stars <number> Star count --stars ">1000"
    --forks <number> Fork count --forks ">100"
    --followers <number> Follower count --followers ">50"
    --size <string> Size in KB --size "100..1000"

    Issue Counts

    Flag Purpose Example
    --good-first-issues <number> "Good first issue" label count --good-first-issues ">=5"
    --help-wanted-issues <number> "Help wanted" label count --help-wanted-issues ">=3"

    Date Filters

    Flag Purpose Example
    --created <date> Creation date --created ">2024-01-01"
    --updated <date> Last update date --updated ">2024-06-01"

    Search Scope

    Flag Purpose Example
    --match <strings> Search in: name, description, readme --match name
    --include-forks {false|true|only} Include/exclude forks --include-forks false

    Output & Sorting

    Flag Purpose Example
    -L, --limit <int> Max results (default: 30) --limit 100
    --sort <string> Sort by: stars, forks, updated, etc. --sort stars
    --order <string> Sort direction: asc or desc --order desc
    --json <fields> JSON output --json name,stargazersCount,language
    -w, --web Open in browser -w

    JSON Output Fields

    createdAt, defaultBranch, description, forksCount, fullName, hasDownloads, hasIssues, hasPages, hasProjects, hasWiki, homepage, id, isArchived, isDisabled, isFork, isPrivate, language, license, name, openIssuesCount, owner, pushedAt, size, stargazersCount, updatedAt, url, visibility, watchersCount

    Exclusion Syntax (Critical!)

    When using inline query exclusions (negations with -), you MUST use the -- separator:

    ✅ Correct: gh search repos -- "search-terms -qualifier:value" ❌ Wrong: gh search repos "search-terms" --flag=-value ❌ Wrong: gh search repos "search-terms" --flag=!value ❌ Wrong: gh search repos --language=-Go

    Examples:

    • gh search repos -- "cli -language:go" (exclude language)
    • gh search repos -- "starter -archived:true" (exclude archived)
    • gh search repos -- "web -topic:deprecated" (exclude topic)
    • gh search repos -- "library -license:gpl-3.0" (exclude license)

    Why the -- separator is required: The -- tells the shell to stop parsing flags and treat everything after it as arguments. Without it, -qualifier:value inside quotes may be misinterpreted.

    Critical Syntax Rules

    When to Use Flag Syntax vs Query Syntax

    Decision Tree:

    Does your search include:
      - Any exclusions (NOT, minus, without, except)?  → Use Query Syntax with `--`
      - Complex boolean logic (OR, AND)?              → Use Query Syntax with `--`
    
    Otherwise:
      - Simple positive filters only?                  → Use Flag Syntax
    

    Flag Syntax (for positive filters):

    gh search repos "cli" --language go --stars ">100"
    

    Query Syntax with -- (required for exclusions):

    gh search repos -- "cli -language:javascript -archived:true"
    

    ⚠️ NEVER mix both syntaxes in a single command!

    1. Exclusions and Negations

    CRITICAL: When excluding results, you MUST use query syntax with the -- separator.

    Exclusion Syntax Rules:

    1. Use the -- separator before your query
    2. Use -qualifier:value format (dash prefix for negation)
    3. Quote the entire query string

    Examples:

    Single exclusion:

    # Exclude specific language
    gh search repos -- "web framework -language:javascript"
    
    # Exclude archived repos
    gh search repos -- "cli tool -archived:true"
    

    Multiple exclusions:

    # Exclude multiple languages
    gh search repos -- "game engine -language:javascript -language:python"
    
    # Exclude archived and small repos
    gh search repos -- "starter -archived:true -stars:<10"
    

    Combine with positive filters using flags:

    # Wrong - mixing syntaxes:
    gh search repos "cli" --language go -archived:true  # ❌
    
    # Correct - use query syntax for everything when excluding:
    gh search repos -- "cli language:go -archived:true"  # ✅
    

    PowerShell exclusions:

    # Use --% to prevent PowerShell parsing
    gh --% search repos -- "cli -language:javascript"
    

    Common Exclusion Patterns:

    User Request Command
    "Find repos but not archived" gh search repos -- "starter -archived:true"
    "Repos excluding specific language" gh search repos -- "web framework -language:php"
    "Repos not in specific topic" gh search repos -- "cli -topic:deprecated"
    "Repos excluding multiple languages" gh search repos -- "game -language:javascript -language:css"
    "Repos not forks" gh search repos -- "template -is:fork" (or use --include-forks false)
    "Repos excluding low stars" gh search repos -- "framework -stars:<100"
    "Repos not with specific license" gh search repos -- "library -license:gpl-3.0"

    2. Special Values

    • Multiple topics: --topic unix,terminal
    • Boolean flags: --archived false or --archived true
    • Fork inclusion: --include-forks false|true|only

    3. Quoting Rules

    Multi-word search:

    gh search repos "machine learning"
    

    Comparison operators need quotes:

    gh search repos "python" --stars ">1000"
    

    Ranges use quotes:

    gh search repos "cli" --stars "100..500"
    

    Common Use Cases

    Find popular Python repos:

    gh search repos "data science" --language python --stars ">5000"
    

    Find repos with good first issues:

    gh search repos --language javascript --good-first-issues ">=10"
    

    Find recently updated repos:

    gh search repos "react" --updated ">2024-01-01" --stars ">100"
    

    Find repos by topic:

    gh search repos --topic machine-learning --language python
    

    Find repos by license:

    gh search repos "web framework" --license mit,apache-2.0
    

    Exclude archived repos:

    gh search repos "cli tool" --archived false
    

    Find repos by organization:

    gh search repos --owner microsoft --visibility public
    

    Exclude forks:

    gh search repos "starter" --include-forks false
    

    Find only forks:

    gh search repos "template" --include-forks only
    

    Find repos in star range:

    gh search repos "game engine" --stars "100..1000"
    

    Exclude specific language:

    gh search repos -- "cli -language:go"
    

    Search in name only:

    gh search repos "awesome" --match name
    

    Common Mistakes

    Mistake Problem Fix
    --language="NOT javascript" or --archived=-true Flag syntax doesn't support negation Use query: -- "-language:javascript" or -- "-archived:true"
    gh search repos cli -language:js -language interpreted as flag Use --: -- "cli -language:js"
    "cli NOT language:js" NOT keyword doesn't work Use -: -- "cli -language:js"
    Mixing syntaxes: --stars ">100" "cli -language:js" Can't mix flags with query qualifiers Use query for all: -- "cli stars:>100 -language:js"
    Not quoting comparisons Shell interprets > Quote: --stars ">1000"
    --archived archived Invalid value Use boolean: --archived true or false
    Not quoting multi-word search Searches separately Quote: "machine learning"
    Using @ with owner Invalid syntax Drop @: --owner github
    PowerShell without --% Breaks with exclusions Add: gh --%

    Installation Check

    If gh command not found:

    # Check if gh is installed
    which gh
    
    # Install: https://cli.github.com/manual/installation
    

    If not authenticated:

    # Authenticate with GitHub
    gh auth login
    

    Comparison Operators

    • > - Greater than
    • >= - Greater than or equal
    • < - Less than
    • <= - Less than or equal
    • .. - Range: 100..1000 or 2024-01-01..2024-12-31

    Common Licenses

    • mit - MIT License
    • apache-2.0 - Apache License 2.0
    • gpl-3.0 - GNU GPL v3
    • bsd-2-clause - BSD 2-Clause
    • bsd-3-clause - BSD 3-Clause
    • mpl-2.0 - Mozilla Public License 2.0
    • isc - ISC License

    Match Field Options

    • name - Search repository names only
    • description - Search descriptions only
    • readme - Search README files only

    Example: gh search repos "documentation" --match readme

    Related

    • GitHub search syntax: https://docs.github.com/search-github/searching-on-github/searching-for-repositories
    • For searching other resources: gh-search-code, gh-search-commits, gh-search-issues, gh-search-prs
    Recommended Servers
    Vercel Grep
    Vercel Grep
    GitHub
    GitHub
    Docfork
    Docfork
    Repository
    aaddrick/gh-cli-search
    Files