Fetch GitHub issues, PRs, repo contents, and code using the gh CLI. Use when the user shares GitHub URLs (issues, PRs, repos, source files) or asks about GitHub content. The gh CLI provides complete content that web fetching often misses due to JavaScript rendering.
This skill inherits all available tools. When active, it can use any tool Claude has access to.
When to activate:
Why use gh CLI instead of web fetching:
GitHub's web interface relies heavily on JavaScript to load comments, reviews, and discussions. Web fetching often retrieves only partial content. The gh CLI accesses the API directly and returns complete data.
View an issue with all comments:
gh issue view <number> --repo owner/repo --comments
View a PR with comments and review status:
gh pr view <number> --repo owner/repo --comments
View the diff for a PR:
gh pr diff <number> --repo owner/repo
View PR review comments (inline code comments):
gh api repos/owner/repo/pulls/<number>/comments
List files changed in a PR:
gh pr view <number> --repo owner/repo --json files --jq '.files[].path'
List contents of a directory (defaults to root):
gh api repos/owner/repo/contents/path/to/dir
View a specific file's contents:
gh api repos/owner/repo/contents/path/to/file --jq '.content' | base64 -d
Get the full repository tree (all files):
gh api repos/owner/repo/git/trees/main?recursive=1 --jq '.tree[] | select(.type=="blob") | .path'
Replace main with the appropriate branch name if needed.
Search for code within a specific repository:
gh search code "search query" --repo owner/repo
Search with language filter:
gh search code "search query" --repo owner/repo --language python
Search with path filter:
gh search code "search query" --repo owner/repo --path "src/"
View search results with more context:
gh search code "search query" --repo owner/repo --json path,repository,textMatches
Extract owner/repo from common URL patterns:
| URL Pattern | Example |
|---|---|
github.com/owner/repo | github.com/zed-industries/zed |
github.com/owner/repo/issues/123 | Issue #123 in that repo |
github.com/owner/repo/pull/456 | PR #456 in that repo |
github.com/owner/repo/blob/branch/path | Source file at path |
github.com/owner/repo/tree/branch/path | Directory at path |
head -n 100 or use --jq to filter--json flag with gh pr view or gh issue view for structured datagh auth status shows you're authenticated