Guides safe GitHub CLI (gh) operations for pull requests, issues, repo info, searches, workflows, codespaces, and automation from the terminal.
npx claudepluginhub joshuarweaver/cascade-code-general-misc-1 --plugin paulrberg-agent-skillsThis skill uses the workspace's default tool permissions.
Expert guidance for GitHub CLI (gh) operations and workflows. Use this skill for command-line GitHub operations including pull request management, issue tracking, repository operations, workflow automation, and codespace management.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Expert guidance for GitHub CLI (gh) operations and workflows. Use this skill for command-line GitHub operations including pull request management, issue tracking, repository operations, workflow automation, and codespace management.
Key capabilities:
CRITICAL: This skill NEVER uses destructive gh CLI operations.
This skill focuses exclusively on safe, read-only, or reversible GitHub operations. The following commands are PROHIBITED and must NEVER be used:
Permanently destructive commands:
gh repo delete - Repository deletiongh repo archive - Repository archivalgh release delete - Release deletiongh release delete-asset - Asset deletiongh run delete - Workflow run deletiongh cache delete - Cache deletiongh secret delete - Secret deletiongh variable delete - Variable deletiongh label delete - Label deletiongh ssh-key delete - SSH key deletion (can lock out users)gh gpg-key delete - GPG key deletiongh codespace delete - Codespace deletiongh extension remove - Extension removalgh gist delete - Gist deletionxargs with any destructive commandsrm -rf (except for temporary file cleanup)Allowed operations:
git status, git log, git diff)# Login to GitHub
gh auth login
# Login and copy OAuth code to clipboard automatically
gh auth login --clipboard
# Check authentication status
gh auth status
# Check auth status with JSON output
gh auth status --json
# Configure git to use gh as credential helper
gh auth setup-git
# Create PR interactively
gh pr create
# Create PR with title and body
gh pr create --title "Add feature" --body "Description"
# Create PR to specific branch
gh pr create --base main --head feature-branch
# Create draft PR
gh pr create --draft
# Create PR from current branch
gh pr create --fill # Uses commit messages
# Create PR with Copilot Code Review
gh pr create --reviewer @copilot
# List PRs
gh pr list
# List my PRs
gh pr list --author @me
# View PR details
gh pr view 123
# View PR in browser
gh pr view 123 --web
# View PR diff
gh pr diff 123
# View PR diff excluding specific files
gh pr diff 123 --exclude "*.lock"
# Check PR status
gh pr status
# Checkout PR locally
gh pr checkout 123
# Review PR
gh pr review 123 --approve
gh pr review 123 --comment --body "Looks good!"
gh pr review 123 --request-changes --body "Please fix X"
# Request Copilot Code Review
gh pr edit 123 --add-reviewer @copilot
# Merge PR
gh pr merge 123
gh pr merge 123 --squash
gh pr merge 123 --rebase
gh pr merge 123 --merge
# Close PR
gh pr close 123
# Reopen PR
gh pr reopen 123
# Ready draft PR
gh pr ready 123
# Update PR branch with base branch
gh pr update-branch 123
# Revert a merged PR (creates a new revert PR)
gh pr revert 123
# View PR checks
gh pr checks 123
# Watch PR checks
gh pr checks 123 --watch
# Create issue interactively
gh issue create
# Create issue with title and body
gh issue create --title "Bug report" --body "Description"
# Create issue with labels
gh issue create --title "Bug" --label bug,critical
# Assign issue
gh issue create --title "Task" --assignee @me
# List issues
gh issue list
# List my issues
gh issue list --assignee @me
# List by label
gh issue list --label bug
# Advanced issue search
gh issue list --search "is:open label:bug sort:created-desc"
# View issue details
gh issue view 456
# View in browser
gh issue view 456 --web
# Close issue
gh issue close 456
# Close as duplicate, linking to the original issue
gh issue close 123 --duplicate-of 456
# Reopen issue
gh issue reopen 456
# Edit issue
gh issue edit 456 --title "New title"
gh issue edit 456 --add-label bug
gh issue edit 456 --add-assignee @user
# Comment on issue
gh issue comment 456 --body "Update"
# Create branch to work on issue
gh issue develop 456 --checkout
# View repository
gh repo view
# View in browser
gh repo view --web
# Clone repository
gh repo clone owner/repo
# Clone without adding upstream remote
gh repo clone owner/repo --no-upstream
# Fork repository
gh repo fork owner/repo
# List repositories
gh repo list owner
# Create repository
gh repo create my-repo --public
gh repo create my-repo --private
# Sync fork
gh repo sync owner/repo
# Set default repository
gh repo set-default
Search across all of GitHub for repositories, issues, and pull requests.
# Search for repositories
gh search repos "machine learning" --language=python
# Search with filters
gh search repos --stars=">1000" --topic=kubernetes
# Search issues across GitHub
gh search issues "bug" --label=critical --state=open
# Exclude results (note the -- to prevent flag interpretation)
gh search issues -- "memory leak -label:wontfix"
# Search PRs
gh search prs --author=@me --state=open
# Search with date filters
gh search prs "refactor" --created=">2024-01-01"
Manage repository labels for issue and PR organization.
# List all labels in repository
gh label list
# Create new label
gh label create "priority: high" --color FF0000 --description "High priority items"
# Edit existing label
gh label edit "bug" --color FFAA00 --description "Something isn't working"
# Clone labels from another repository
gh label clone owner/source-repo
Manage GitHub Codespaces directly from the terminal.
# List codespaces
gh codespace list
# Create new codespace
gh codespace create --repo owner/repo
# SSH into codespace
gh codespace ssh
# Open in VS Code
gh codespace code
# Open in JupyterLab
gh codespace jupyter
# Copy files to/from codespace
gh codespace cp local-file.txt remote:~/path/
gh codespace cp remote:~/path/file.txt ./local-dir/
# View logs
gh codespace logs
Open repositories, files, and resources in the browser.
# Open current repo in browser
gh browse
# Open specific file
gh browse src/main.go
# Open file at specific line
gh browse src/main.go:42
# Open blame view for a file
gh browse --blame src/main.go
# Open Actions tab
gh browse --actions
# Open specific branch
gh browse --branch feature
# Create release
gh release create v1.0.0
# Create release with notes
gh release create v1.0.0 --notes "Release notes"
# Create release with files
gh release create v1.0.0 dist/*.tar.gz
# Create draft release
gh release create v1.0.0 --draft
# Generate release notes automatically
gh release create v1.0.0 --generate-notes
# List releases
gh release list
# View release
gh release view v1.0.0
# Download release assets
gh release download v1.0.0
# Create gist
gh gist create file.txt
# Create gist from stdin
echo "content" | gh gist create -
# List gists
gh gist list
# View gist
gh gist view <gist-id>
# Edit gist
gh gist edit <gist-id>
# Set default editor
gh config set editor vim
# Set default git protocol
gh config set git_protocol ssh
# View configuration
gh config list
# Set browser
gh config set browser firefox
Common gh operations at a glance:
| Operation | Command | Common Flags |
|---|---|---|
| Create PR | gh pr create | --draft, --fill, --reviewer @copilot |
| List PRs | gh pr list | --author @me, --label, --search |
| View PR | gh pr view <number> | --web, --comments |
| Merge PR | gh pr merge <number> | --squash, --rebase, --delete-branch |
| Revert PR | gh pr revert <number> | --body |
| Create issue | gh issue create | --title, --body, --label |
| List issues | gh issue list | --assignee @me, --label, --search |
| Close issue | gh issue close <number> | --duplicate-of, --reason |
| View issue | gh issue view <number> | --web, --comments |
| Browse repo | gh browse | --blame, --actions, --branch |
| Clone repo | gh repo clone <repo> | --no-upstream |
| Fork repo | gh repo fork | --clone, --remote |
| View repo | gh repo view | --web |
| Create release | gh release create <tag> | --title, --notes, --draft |
| Verify release | gh release verify <tag> | --repo |
| Run workflow | gh workflow run <name> | --ref, --field |
| Watch run | gh run watch <id> | --exit-status |
| Search repos | gh search repos <query> | --language, --stars |
| Create label | gh label create <name> | --color, --description |
| Create codespace | gh codespace create | --repo, --branch |
For detailed patterns and advanced usage, see:
Practical automation scripts (see examples/ directory):
auto-pr-create.sh - Automated PR creation workflowissue-triage.sh - Bulk issue labeling and assignmentworkflow-monitor.sh - Watch and notify on workflow completionrelease-automation.sh - Complete release workflow automationUse --json flag for structured output. Always verify field names with --help as they differ from GitHub API names.
# Check available JSON fields for any command
gh repo view --help | grep -A 50 "JSON FIELDS"
gh pr list --help | grep -A 50 "JSON FIELDS"
| Wrong (API-style) | Correct (gh CLI) |
|---|---|
stargazersCount | stargazerCount |
forksCount | forkCount |
watchersCount | watchers |
openIssuesCount | issues |
# Common fields for gh repo view --json
gh repo view owner/repo --json name,description,stargazerCount,forkCount,updatedAt,url,readme
--web flag to open items in browser for detailed view--author, --label, --state to narrow down lists efficiently--json flag to enable scriptable output for automation--help for valid JSON field names - they differ from GitHub APIgh repo create --template to scaffold from template repositoriesgh pr merge --auto for PRs that pass checks