Install
$ agentstack add skill-aaddrick-gh-cli-search-gh-search-repos ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
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 [] [flags]
Key Flags Reference
Repository Attributes
| Flag | Purpose | Example | |------|---------|---------| | --language | Programming language | --language python | | --topic | Repository topics | --topic machine-learning | | --license | License type | --license mit | | --archived {true\|false} | Archived state | --archived false | | --owner | Repository owner | --owner github | | --visibility | Visibility: public, private, internal | --visibility public |
Popularity Metrics
| Flag | Purpose | Example | |------|---------|---------| | --stars | Star count | --stars ">1000" | | --forks | Fork count | --forks ">100" | | --followers | Follower count | --followers ">50" | | --size | Size in KB | --size "100..1000" |
Issue Counts
| Flag | Purpose | Example | |------|---------|---------| | --good-first-issues | "Good first issue" label count | --good-first-issues ">=5" | | --help-wanted-issues | "Help wanted" label count | --help-wanted-issues ">=3" |
Date Filters
| Flag | Purpose | Example | |------|---------|---------| | --created | Creation date | --created ">2024-01-01" | | --updated | Last update date | --updated ">2024-06-01" |
Search Scope
| Flag | Purpose | Example | |------|---------|---------| | --match | 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 | Max results (default: 30) | --limit 100 | | --sort | Sort by: stars, forks, updated, etc. | --sort stars | | --order | Sort direction: asc or desc | --order desc | | --json | 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:
- Use the
--separator before your query - Use
-qualifier:valueformat (dash prefix for negation) - 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: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..1000or2024-01-01..2024-12-31
Common Licenses
mit- MIT Licenseapache-2.0- Apache License 2.0gpl-3.0- GNU GPL v3bsd-2-clause- BSD 2-Clausebsd-3-clause- BSD 3-Clausempl-2.0- Mozilla Public License 2.0isc- ISC License
Match Field Options
name- Search repository names onlydescription- Search descriptions onlyreadme- 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
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: aaddrick
- Source: aaddrick/gh-cli-search
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.