Learn-skills.dev gh-search

Use when searching GitHub via CLI for issues, PRs, repos, code, or commits - provides correct syntax for exclusions, qualifiers, quoting, and platform-specific handling to avoid command failures

install
source · Clone the upstream repo
git clone https://github.com/NeverSight/learn-skills.dev
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/NeverSight/learn-skills.dev "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/skills-md/aaddrick/gh-cli-search/gh-search" ~/.claude/skills/neversight-learn-skills-dev-gh-search && rm -rf "$T"
manifest: data/skills-md/aaddrick/gh-cli-search/gh-search/SKILL.md
source content

GitHub CLI Search

Overview

Search GitHub from the command line using

gh search
subcommands. The key principle: Always use
--
before queries with exclusions
to prevent shell interpretation of
-
prefixes.

When to Use

Use this skill when:

  • Searching GitHub via
    gh
    CLI for issues, PRs, repos, code, or commits
  • User requests searches with exclusions (NOT, minus prefix)
  • Constructing complex queries with multiple qualifiers
  • Queries contain spaces or special characters

Subcommands Quick Reference

SubcommandUse ForCommon Flags
gh search issues
Issues (add
--include-prs
for PRs too)
--label
,
--state
,
--author
,
--assignee
gh search prs
Pull requests only
--label
,
--state
,
--author
,
--draft
,
--merged
gh search repos
Repositories
--language
,
--stars
,
--topic
,
--owner
gh search code
Code within files
--repo
,
--language
,
--filename
gh search commits
Commit messages
--repo
,
--author
,
--committer

Critical Syntax Rules

1. Exclusions Require
--
Flag

Unix/Linux/Mac:

gh search issues -- "bug -label:duplicate"

PowerShell:

gh --% search issues -- "bug -label:duplicate"

Why: The

-
prefix gets interpreted as a command flag without
--
. PowerShell needs
--% 
to stop parsing.

2. Quoting Rules

Multi-word queries need quotes:

gh search issues "memory leak"

Entire query with spaces should be quoted:

gh search issues "bug label:urgent created:>2024-01-01"

Qualifier values with spaces need inner quotes:

gh search prs -- 'security label:"bug fix"'

3. Qualifier Syntax

Inline qualifiers (use within search query):

gh search repos "react stars:>1000 language:typescript"

Flag-based (use as separate flags):

gh search repos "react" --language typescript --stars ">1000"

Can mix both:

gh search issues "crash" --label bug created:>2024-01-01

Common Qualifiers

Comparison Operators

  • >
    ,
    >=
    ,
    <
    ,
    <=
    - Numeric:
    stars:>100
    ,
    comments:>=5
  • ..
    - Ranges:
    stars:10..50
    ,
    created:2024-01-01..2024-12-31

Special Values

  • @me
    - Current user:
    author:@me
    ,
    assignee:@me
    ,
    owner:@me
  • Dates use ISO8601:
    created:>2024-01-01
    or
    created:2024-01-01..2024-12-31

Field-Specific Search

  • in:title
    - Search in title only
  • in:body
    - Search in body only
  • in:comments
    - Search in comments only

Exclusions

  • -qualifier:value
    - Exclude:
    -label:bug
    ,
    -language:javascript
  • NOT
    keyword - For words only:
    "hello NOT world"

Examples

Find your open issues without bug label:

gh search issues -- "is:open author:@me -label:bug"

Find popular Python ML repos updated recently:

gh search repos "machine learning" --language python --stars ">1000" --updated ">2024-01-01"

Find PRs with specific label and text:

gh search prs -- 'security label:"bug fix" created:>2024-01-01'

Search code in organization repos:

gh search code "TODO" --owner myorg --language javascript

Common Mistakes

MistakeProblemFix
gh search issues -label:bug
-label
interpreted as flag
Add
--
:
gh search issues -- "-label:bug"
gh search repos machine learning
Searches "machine" OR "learning"Quote it:
"machine learning"
in:title
outside quotes
Shell interprets
:
oddly
Include in query:
"crash in:title"
Mixing
@
with value
Invalid syntaxUse
@me
or username, not both:
author:@me
✓,
author:@username
✗ (drop @)
PowerShell without
--%
Parsing breaks with exclusionsAdd
gh --%
before command

Output Options

All subcommands support:

  • --limit <n>
    - Max results (default: 30, max: 1000)
  • --json <fields>
    - JSON output for scripting
  • --web
    - Open results in browser
  • --sort <field>
    - Sort by: comments, created, reactions, updated, stars, etc.
  • --order asc|desc
    - Sort direction (default: desc)

Real-World Impact

Correct syntax prevents:

  • Command failures from misinterpreted flags
  • Missing results from incorrect exclusions
  • Errors from unquoted spaces
  • Platform-specific parsing issues