cli-gh
paulrberg/agent-skills
Use for GitHub CLI automation: gh commands, repo info, workflow triggers, GitHub search, codespaces, PR status, issues, repo browsing, or command-line GitHub tasks.
...Expand allAbout cli-gh
The cli-gh skill provides expert guidance for GitHub CLI (gh) operations, enabling developers to manage their entire GitHub workflow directly from the terminal. This skill streamlines command-line interactions with GitHub, eliminating the need to switch between terminal and browser for common repository tasks. It focuses exclusively on safe, read-only, or reversible operations, with strict prohibitions against destructive commands like repository deletion, asset removal, or cache clearing.
Key capabilities include comprehensive pull request management (creating, reviewing, merging, and tracking PRs), issue tracking and organization, repository-wide searching across GitHub, label and project management, GitHub Actions workflow monitoring and triggering, codespace operations, release automation, and browser-based repository browsing. The skill supports advanced features like Copilot code reviews, draft PRs, squash and rebase merging strategies, and bulk operations on issues and PRs.
This skill is designed for developers and DevOps engineers who prefer terminal-based workflows, teams implementing CI/CD automation, open-source maintainers managing multiple repositories, and anyone seeking to optimize their GitHub interaction efficiency. It's particularly valuable for automating repetitive GitHub tasks, integrating GitHub operations into scripts and workflows, and maintaining consistent development practices across teams without leaving the command line.
FAQ
What destructive operations are prohibited in this skill?
This skill strictly prohibits permanently destructive commands including repository deletion, archival, release deletion, workflow run deletion, cache deletion, secret/variable deletion, SSH/GPG key deletion, codespace deletion, and any bulk deletion operations. Only safe, read-only, or reversible operations like creating resources, viewing information, updating content, and closing (but not deleting) PRs/issues are allowed.
Do I need to authenticate before using GitHub CLI commands?
Yes, you must authenticate with GitHub using 'gh auth login' before using most gh commands. You can check your authentication status with 'gh auth status' and configure git integration with 'gh auth setup-git'. The skill supports interactive login and automatic OAuth code copying to clipboard.
Can I use this skill to manage pull requests and code reviews?
Yes, the skill provides comprehensive PR management including creating PRs with custom titles/bodies/base branches, creating draft PRs, viewing PR details and diffs, checking out PRs locally, performing code reviews (approve, comment, request changes), requesting Copilot code reviews, merging with different strategies (squash, rebase, merge), and updating PR branches.
What are the main use cases for this skill?
Primary use cases include terminal-based GitHub workflow management, automating repetitive GitHub tasks in scripts, CI/CD pipeline integration, managing multiple repositories from the command line, conducting code reviews without browser switching, monitoring GitHub Actions workflows, and maintaining consistent development practices across teams.
Does this skill support GitHub Actions and workflow automation?
Yes, the skill includes capabilities for triggering and monitoring GitHub Actions workflows, checking workflow run status, viewing workflow logs, and canceling running workflows. It enables command-line automation of CI/CD processes and integration with existing development scripts.
GitHub CLI (gh)
Overview
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:
- Create and manage pull requests from the terminal
- Track and organize issues efficiently
- Search across all of GitHub (repos, issues, PRs)
- Manage labels and project organization
- Trigger and monitor GitHub Actions workflows
- Work with codespaces
- Automate repository operations and releases
- Browse repositories, PRs, and files in the browser
Safety Rules
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 deletion- Bulk deletion operations using
xargswith any destructive commands - Shell commands:
rm -rf(except for temporary file cleanup)
Allowed operations:
- Creating resources (PRs, issues, releases, labels, repos)
- Viewing and listing (status, logs, information, searches)
- Updating and editing existing resources
- Closing PRs/issues (reversible - can be reopened)
- Reverting pull requests (creates a new revert PR)
- Canceling workflow runs (stops execution without deleting data)
- Merging pull requests (after proper review)
- Read-only git operations (
git status,git log,git diff)
Installation & Setup
# Login to GitHubgh auth login# Login and copy OAuth code to clipboard automaticallygh auth login --clipboard# Check authentication statusgh auth status# Check auth status with JSON outputgh auth status --json# Configure git to use gh as credential helpergh auth setup-git
Pull Requests
Creating PRs
# Create PR interactivelygh pr create# Create PR with title and bodygh pr create --title "Add feature" --body "Description"# Create PR to specific branchgh pr create --base main --head feature-branch# Create draft PRgh pr create --draft# Create PR from current branchgh pr create --fill # Uses commit messages# Create PR with Copilot Code Reviewgh pr create --reviewer @copilot
Viewing PRs
# List PRsgh pr list# List my PRsgh pr list --author @me# View PR detailsgh pr view 123# View PR in browsergh pr view 123 --web# View PR diffgh pr diff 123# View PR diff excluding specific filesgh pr diff 123 --exclude "*.lock"# Check PR statusgh pr status
Managing PRs
# Checkout PR locallygh pr checkout 123# Review PRgh pr review 123 --approvegh pr review 123 --comment --body "Looks good!"gh pr review 123 --request-changes --body "Please fix X"# Request Copilot Code Reviewgh pr edit 123 --add-reviewer @copilot# Merge PRgh pr merge 123gh pr merge 123 --squashgh pr merge 123 --rebasegh pr merge 123 --merge# Close PRgh pr close 123# Reopen PRgh pr reopen 123# Ready draft PRgh pr ready 123# Update PR branch with base branchgh pr update-branch 123# Revert a merged PR (creates a new revert PR)gh pr revert 123
PR Checks
# View PR checksgh pr checks 123# Watch PR checksgh pr checks 123 --watch
Issues
Creating Issues
# Create issue interactivelygh issue create# Create issue with title and bodygh issue create --title "Bug report" --body "Description"# Use a Markdown issue template as interactive/editor starting body textgh issue create --template "Bug Report"# Create issue with labelsgh issue create --title "Bug" --label bug,critical# Assign issuegh issue create --title "Task" --assignee @me# Set the issue type (GitHub.com and GHES 3.17+)gh issue create --type Bug
--template cannot be combined with --body or --body-file; use it with prompts, --editor, or --web. For YAML issue forms, fetch and render the form fields yourself for non-interactive automation, or finish in the browser.
Viewing Issues
# List issuesgh issue list# List my issuesgh issue list --assignee @me# List by labelgh issue list --label bug# Filter by issue typegh issue list --type Bug# Advanced issue searchgh issue list --search "is:open label:bug sort:created-desc"# View issue detailsgh issue view 456# View in browsergh issue view 456 --web
Managing Issues
# Close issuegh issue close 456# Close as duplicate, linking to the original issuegh issue close 123 --duplicate-of 456# Reopen issuegh issue reopen 456# Edit issuegh issue edit 456 --title "New title"gh issue edit 456 --add-label buggh issue edit 456 --add-assignee @user# Comment on issuegh issue comment 456 --body "Update"# Create branch to work on issuegh issue develop 456 --checkout
Issue Types, Sub-Issues & Relationships
Issue types and sub-issues require GitHub.com or GHES 3.17+; blocking relationships require GHES 3.19+.
# Set or remove the issue typegh issue edit 456 --type Buggh issue edit 456 --remove-type# Create a sub-issue under a parentgh issue create --parent 100# Organize existing issues into a parent/child hierarchygh issue edit 100 --add-sub-issue 123,124gh issue edit 100 --remove-sub-issue 123gh issue edit 123 --parent 100gh issue edit 123 --remove-parent# Track blocked-by / blocking relationshipsgh issue create --blocked-by 200,201 --blocking 300gh issue edit 123 --add-blocked-by 200 --add-blocking 300,301gh issue edit 123 --remove-blocked-by 200 --remove-blocking 301
Discussions
When the user asks to list, view, create, edit, or comment on GitHub Discussions, see references/discussions.md. The gh discussion command set is in preview and subject to change.
Copilot Agent Tasks
Delegate work to the Copilot coding agent and track its sessions. The gh agent-task command set (aliases gh agent, gh agents) is in preview.
# Create an agent task on the current repositorygh agent-task create "Improve the performance of the data processing pipeline"# List your most recent agent tasksgh agent-task listgh agent-task list --json id,name,state# View an agent task session (by PR number, session ID, or URL)gh agent-task view 123gh agent-task view <session-id> --json state --jq '.state'
Agent Skills
Discover, install, and publish agent skills from GitHub repositories. The gh skill command set (alias gh skills) is in preview.
# Search for skills across GitHubgh skill search terraform# Preview a skill before installinggh skill preview github/awesome-copilot documentation-writer# Install a skill (default scope: project)gh skill install github/awesome-copilot documentation-writergh skill install owner/repo skill-name --scope user --pin v1.2.0# Include skills in hidden dirs (.claude/skills/, .agents/skills/, .github/skills/)gh skill install owner/repo skill-name --allow-hidden-dirs# List installed skills and update themgh skill listgh skill update --all# Validate and publish your own skillsgh skill publish --dry-run
Repository Operations
Repository Info
# View repositorygh repo view# View in browsergh repo view --web# Clone repositorygh repo clone owner/repo# Clone without adding upstream remotegh repo clone owner/repo --no-upstream# Fork repositorygh repo fork owner/repo# List repositoriesgh repo list owner
Repository Management
# Create repositorygh repo create my-repo --publicgh repo create my-repo --private# Sync forkgh repo sync owner/repo# Set default repositorygh repo set-default# Configure the squash-merge commit message defaultgh repo edit --squash-merge-commit-message COMMIT_MESSAGES
Reading Repo Contents
Read files and directories without cloning. The gh repo read-file and gh repo read-dir commands are in preview and subject to change.
# Read a file from the default branch (paged in a TTY, raw when piped)gh repo read-file README.md --repo cli/cli# Read from a specific branch, tag, or commitgh repo read-file go.mod --ref v2.94.0 --repo cli/cli# Write to disk instead of stdout (--clobber to overwrite)gh repo read-file README.md --output ./README.md --clobber# Refuse escape sequences by default; opt in for TTY/piped outputgh repo read-file script.sh --allow-escape-sequences# List a directory (root when no path given)gh repo read-dir script --repo cli/cli# Inspect entries as JSON for scriptinggh repo read-dir docs --repo cli/cli --json name,path,type,size
Search
When the user asks to search GitHub repositories, issues, or pull requests, see references/search.md.
Labels
When the user asks to list, create, edit, or clone repository labels, see references/labels.md.
Codespaces
When the user asks to list, create, connect to, or manage files within GitHub Codespaces, see references/codespaces.md.
Browse
Open repositories, files, and resources in the browser.
# Open current repo in browsergh browse# Open specific filegh browse src/main.go# Open file at specific linegh browse src/main.go:42# Open blame view for a filegh browse --blame src/main.go# Open Actions tabgh browse --actions# Open specific branchgh browse --branch feature
Releases
When the user asks to create, list, view, or download GitHub releases, see references/releases.md.
Gists
When the user asks to create, list, view, or edit GitHub gists, see references/gists.md.
Configuration
# Set default editorgh config set editor vim# Set default git protocolgh config set git_protocol ssh# View configurationgh config list# Set browsergh config set browser firefox
Quick Reference
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, --template, --type |
| List issues | gh issue list | --assignee @me, --label, --type |
| Close issue | gh issue close <number> | --duplicate-of, --reason |
| View issue | gh issue view <number> | --web, --comments |
| Link sub-issue | gh issue edit <number> | --parent, --add-sub-issue |
| Block issue | gh issue edit <number> | --add-blocked-by, --add-blocking |
| List discussions | gh discussion list | --answered, --sort, --json |
| Create agent task | gh agent-task create | --json (on list/view) |
| Install skill | gh skill install | --scope, --pin, --allow-hidden-dirs |
| 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 |
| Read repo file | gh repo read-file <path> | --ref, --output, --clobber, --json |
| Read repo dir | gh repo read-dir [path] | --ref, --json |
| 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 |
Additional Resources
Reference Guides
For detailed patterns and advanced usage, see:
- Discussions - List, view, create, edit, and comment on GitHub Discussions (preview)
- Workflows & Actions - GitHub Actions workflows, runs, cache management, and CI/CD integration patterns
- Advanced Features - Aliases, API access, extensions, secrets, SSH/GPG keys, organizations, projects, and advanced scripting
- Automation Workflows - Common automation patterns, daily reports, release automation, and team collaboration workflows
- Troubleshooting - Solutions for authentication, permissions, rate limiting, and common errors
Example Scripts
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 automation
External Documentation
- Official Manual: https://cli.github.com/manual
- GitHub Community: https://github.com/cli/cli/discussions
- API Documentation: https://docs.github.com/en/rest
- Extension Marketplace: https://github.com/topics/gh-extension
JSON Output
When the user wants to use --json flags or needs the correct gh CLI JSON field names, see references/json-output.md.
Tips
- Use
--webflag to open items in browser for detailed view - Leverage interactive prompts by omitting parameters - most commands support interactive mode
- Apply filters with
--author,--label,--stateto narrow down lists efficiently - Add
--jsonflag to enable scriptable output for automation - Always check
--helpfor valid JSON field names - they differ from GitHub API - Use
gh repo create --templateto scaffold from template repositories - Enable auto-merge with
gh pr merge --autofor PRs that pass checks
All Files
18 filesInstall cli-gh
Download and extract the skill files to your .claude/skills/ directory.
Download ZIPClone the repository and copy the skill files to your project.
git clone https://github.com/PaulRBerg/agent-skills/blob/main/skills/cli-gh/SKILL.md # Copy SKILL.md to your .claude/skills/ directory
Copy





Home
