gh-cli

Original🇺🇸 English
Translated

GitHub CLI for remote repository analysis, file fetching, codebase comparison, and discovering trending code/repos. Use when analyzing repos without cloning, comparing codebases, or searching for popular GitHub projects.

6installs
Added on

NPX Install

npx skill4agent add tenequm/claude-plugins gh-cli

GitHub CLI - Remote Analysis & Discovery

Remote repository operations, codebase comparison, and code discovery without cloning.

When to Use

  • Analyze repositories without cloning
  • Compare codebases side-by-side
  • Fetch specific files from any repo
  • Find trending repositories and code patterns
  • Search code across GitHub

Quick Operations

Fetch a file remotely

bash
gh api repos/OWNER/REPO/contents/path/file.ts | jq -r '.content' | base64 -d

Get directory listing

bash
gh api repos/OWNER/REPO/contents/PATH

Search code

bash
gh search code "pattern" --language=typescript

Find trending repos

bash
gh search repos --language=rust --sort stars --order desc

Compare Two Codebases

Systematic workflow for comparing repositories to identify similarities and differences.
Example use: "Compare solana-fm/explorer-kit and tenequm/solana-idls"

Step 1: Fetch directory structures

bash
gh api repos/OWNER-A/REPO-A/contents/PATH > repo1.json
gh api repos/OWNER-B/REPO-B/contents/PATH > repo2.json
If comparing a monorepo package, specify the path (e.g.,
packages/explorerkit-idls
).

Step 2: Compare file lists

bash
jq -r '.[].name' repo1.json > repo1-files.txt
jq -r '.[].name' repo2.json > repo2-files.txt
diff repo1-files.txt repo2-files.txt
Shows files unique to each repo and common files.

Step 3: Fetch key files for comparison

Compare package dependencies:
bash
gh api repos/OWNER-A/REPO-A/contents/package.json | jq -r '.content' | base64 -d > repo1-pkg.json
gh api repos/OWNER-B/REPO-B/contents/package.json | jq -r '.content' | base64 -d > repo2-pkg.json
Compare main entry points:
bash
gh api repos/OWNER-A/REPO-A/contents/src/index.ts | jq -r '.content' | base64 -d > repo1-index.ts
gh api repos/OWNER-B/REPO-B/contents/src/index.ts | jq -r '.content' | base64 -d > repo2-index.ts

Step 4: Analyze differences

Compare the fetched files to identify:
API Surface
  • What functions/classes are exported?
  • Are the APIs similar or completely different?
Dependencies
  • Shared dependencies (same approach)
  • Different dependencies (different implementation)
Unique Features
  • Features only in repo1
  • Features only in repo2
For detailed comparison strategies, see references/comparison.md.

Discover Trending Content

Find trending repositories

bash
# Most starred repos
gh search repos --sort stars --order desc --limit 20

# Trending in specific language
gh search repos --language=rust --sort stars --order desc

# Recently popular (created in last month)
gh search repos "created:>2024-10-01" --sort stars --order desc

# Trending in specific topic
gh search repos "topic:machine-learning" --sort stars --order desc

Discover popular code patterns

bash
# Find popular implementations
gh search code "function useWallet" --language=typescript --sort indexed

# Find code in popular repos only
gh search code "implementation" "stars:>1000"

# Search specific organization
gh search code "authentication" --owner=anthropics
For complete discovery queries and patterns, see references/discovery.md.

Search Basics

Code search

bash
# Search across all repositories
gh search code "API endpoint" --language=python

# Search in specific organization
gh search code "auth" --owner=anthropics

# Exclude results with negative qualifiers
gh search issues -- "bug report -label:wontfix"

Issue & PR search

bash
# Find open bugs
gh search issues --label=bug --state=open

# Search assigned issues
gh search issues --assignee=@me --state=open
For advanced search syntax, see references/search.md.

Special Syntax

Field name inconsistencies

IMPORTANT: GitHub CLI uses inconsistent field names across commands:
Field
gh repo view
gh search repos
Stars
stargazerCount
stargazersCount
Forks
forkCount
forksCount
Examples:
bash
# ✅ Correct for gh repo view
gh repo view owner/repo --json stargazerCount,forkCount

# ✅ Correct for gh search repos
gh search repos "query" --json stargazersCount,forksCount

Excluding search results

When using negative qualifiers (like
-label:bug
), use
--
to prevent the hyphen from being interpreted as a flag:
bash
gh search issues -- "query -label:bug"
For more syntax gotchas, see references/syntax.md.

Advanced Workflows

For detailed documentation on specific workflows:
Core Workflows:
  • remote-analysis.md - Advanced file fetching patterns
  • comparison.md - Complete codebase comparison guide
  • discovery.md - All trending and discovery queries
  • search.md - Advanced search syntax
  • syntax.md - Special syntax and command quirks
GitHub Operations:
  • repositories.md - Repository operations
  • pull_requests.md - PR workflows
  • issues.md - Issue management
  • actions.md - GitHub Actions
  • releases.md - Release management
Setup & Configuration:
  • getting_started.md - Installation and auth
  • other.md - Environment variables, aliases, config
  • extensions.md - CLI extensions

Resources