github-search
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 |
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 reposis a convenience wrapper with its own query parsinggh api search/repositorieshits 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[] | "\(.full_name) ⭐\(.stargazers_count)"' |
| 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
- Quote the query when it contains special chars:
gh search repos "stars:>500" - Multiple languages = OR:
language:rust language:gomatches either - Use
--jsonfor scripting:--json name,url,stargazersCount - Date ranges:
pushed:2024-01-01..2024-06-01 - Numeric ranges:
stars:100..500 - Use
gh apifor complex queries: Whengh search reposgives unexpected results, usegh api search/repositories?q=...for exact web parity
Weekly Installs
18
Repository
samhvw8/dotfilesGitHub Stars
12
First Seen
Jan 27, 2026
Security Audits
Installed on
opencode18
gemini-cli18
github-copilot18
codex18
cline18
cursor18