Guides usage of the GitHub CLI (gh) for interacting with GitHub repositories, PRs, issues, and API. Use when working with GitHub resources instead of WebFetch or curl.
gh)curl, wget, or WebFetch forWebFetch or curl for those)*.github.io) — those are regular websitesgit commit, git push) — use git directlyAlways use gh instead of curl, wget, or WebFetch for GitHub URLs. The gh CLI uses the user's authenticated token automatically, so it:
To read or browse files from a GitHub repo, clone it locally and use normal file tools (Read, Glob, Grep). This is much faster and more natural than fetching files one-by-one via the API.
# Clone to a session-scoped temp directory (cleaned up automatically on session end)
clonedir="$TMPDIR/gh-clones-${CLAUDE_SESSION_ID}"
mkdir -p "$clonedir"
gh repo clone owner/repo "$clonedir/repo" -- --depth 1
After cloning, use the Explore agent (via the Task tool with subagent_type=Explore) to investigate the cloned repo. The Explore agent can use Read, Glob, and Grep across the clone efficiently — much better than calling them one at a time:
Task(subagent_type="Explore", prompt="In $clonedir/repo/, find how authentication is implemented")
For targeted lookups on a clone you already understand, use Read/Glob/Grep directly.
gh repo clone uses the user's authenticated token — works with private repos--depth 1 keeps the clone fast (only latest commit)gh api only when you need a quick single-file lookup without cloning# View a repo
gh repo view owner/repo
# List and view PRs
gh pr list --repo owner/repo
gh pr view 123 --repo owner/repo
# List and view issues
gh issue list --repo owner/repo
gh issue view 456 --repo owner/repo
# Call any REST API endpoint
gh api repos/owner/repo/contents/README.md
# Call with pagination and jq filtering
gh api repos/owner/repo/pulls --paginate --jq '.[].title'
| Instead of | Use |
|---|---|
WebFetch on github.com/owner/repo | gh repo view owner/repo |
WebFetch on a blob/tree URL | Clone with gh repo clone and use Read/Glob/Grep |
WebFetch on raw.githubusercontent.com/... | Clone with gh repo clone and use Read |
WebFetch on api.github.com/... | gh api <endpoint> |
curl https://api.github.com/... | gh api <endpoint> |
curl with -H "Authorization: token ..." | gh api <endpoint> (auth is automatic) |
wget to download a release asset | gh release download --repo owner/repo |