gh-cli
GitHub CLI (gh) command reference. Use when working with GitHub repositories, PRs, issues, actions, or any GitHub operations from the command line.
When & Why to Use This Skill
This Claude skill provides a comprehensive command reference for the GitHub CLI (gh), empowering developers to manage repositories, pull requests, issues, and GitHub Actions directly from the terminal. It enhances productivity by streamlining common workflows and providing advanced tips for JSON scripting and API access, making it an essential tool for modern software engineering and DevOps automation.
Use Cases
- 1. Pull Request Lifecycle Management: Streamline the process of creating, reviewing, and merging pull requests using simple command-line operations to maintain a fast-paced development cycle.
- 2. Issue Tracking and Triage: Efficiently manage project tasks by listing, creating, and commenting on issues without switching to a web browser, ensuring better focus and organization.
- 3. CI/CD Monitoring and Debugging: Quickly inspect GitHub Actions run statuses, download failure logs, and re-trigger workflows to maintain pipeline health and accelerate troubleshooting.
- 4. Automated Scripting and Integration: Leverage JSON output and direct API calls to automate repetitive repository maintenance tasks and build custom developer tools tailored to specific team needs.
| name | gh-cli |
|---|---|
| description | GitHub CLI (gh) command reference. Use when working with GitHub repositories, PRs, issues, actions, or any GitHub operations from the command line. |
GitHub CLI Quick Reference
The gh CLI is GitHub's official command-line tool. This is a quick reference for
common workflows—for comprehensive docs, see https://cli.github.com/manual
Getting Help
gh --help # List all commands
gh <command> --help # Help for specific command
gh auth status # Check authentication
Discovery Patterns
gh <command> --web # Open in browser
gh <command> --json FIELDS # JSON output for scripting
gh <command> <subcommand> -h # Quick help for any command
gh <command> list --limit N # Limit results to avoid large output (default: 20-30)
Use tab completion to explore available commands and flags.
Important: Always use --limit when querying lists to avoid overwhelming output,
especially with pr list, issue list, run list, etc.
Common Workflows
PR Workflow
# Create PR
gh pr create --fill # Use commit messages for title/body
gh pr create --web # Open browser to create PR
# View and checkout
gh pr list # List PRs
gh pr view [NUMBER] # View PR details
gh pr checkout NUMBER # Checkout PR locally
# Review
gh pr review NUMBER --approve
gh pr review NUMBER --comment -b "feedback"
# Merge
gh pr merge --squash --delete-branch
Review Workflow
# Find PRs needing your review
gh pr list --search "review-requested:@me"
# Review process
gh pr checkout NUMBER
# ... test locally ...
gh pr review NUMBER --approve
CI/CD Debugging
# Check recent runs
gh run list --limit 5
gh run list --status failure
# View logs
gh run view RUN_ID --log-failed
# Rerun after fix
gh run rerun RUN_ID --failed
Issue Triage
gh issue list
gh issue list --assignee @me
gh issue create --title "Title" --body "Description"
gh issue view NUMBER
gh issue comment NUMBER -b "Comment"
gh issue close NUMBER
Core Commands Quick Reference
Pull Requests
gh pr list [--state open|closed|merged] [--author @me]
gh pr create [--draft] [--title "..."] [--body "..."]
gh pr view [NUMBER] [--web]
gh pr checkout NUMBER
gh pr diff [NUMBER]
gh pr merge [NUMBER] [--squash|--merge|--rebase]
Issues
gh issue list [--assignee @me] [--label "bug"]
gh issue create [--title "..."] [--body "..."]
gh issue view NUMBER [--web]
gh issue close NUMBER
Workflows & Runs
gh run list [--workflow "CI"] [--status failure]
gh run view RUN_ID [--log] [--log-failed]
gh run watch RUN_ID
gh workflow run WORKFLOW_FILE [--ref branch]
Repositories
gh repo clone OWNER/REPO
gh repo view [--web]
gh repo fork OWNER/REPO
gh repo create NAME [--public|--private]
Power User Tips
JSON Output
# Get structured data
gh pr list --json number,title,author
# Filter with jq
gh pr list --json number,title | jq '.[] | select(.number > 100)'
API Access
# Direct API calls
gh api repos/OWNER/REPO
gh api repos/OWNER/REPO/pulls -f title="PR Title" -f head=branch -f base=main
# GraphQL
gh api graphql -f query='{ viewer { login } }'
Aliases
gh alias set pv 'pr view'
gh alias set co 'pr checkout'
gh alias list
Environment Variables
GH_TOKEN: Authentication tokenGH_REPO: Default repository (OWNER/REPO format)GH_EDITOR: Preferred editor for interactive commandsGH_PAGER: Pager for output (e.g.,less)
Finding Your Work
gh pr list --author @me
gh issue list --assignee @me
gh search prs "author:username is:open"
gh search issues "assignee:username is:open"