Work with GitHub issues - create, list, update, comment, and search issues using gh CLI
Uses GitHub CLI to create, list, update, comment on, and search issues. Claude will use this when you need to manage GitHub issues, such as creating bug reports, triaging tasks, or updating issue status.
/plugin marketplace add Nice-Wolf-Studio/agent-github-skills/plugin install nice-wolf-studio-github-skills@Nice-Wolf-Studio/agent-github-skillsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
This skill provides comprehensive issue management operations including creating, listing, updating, and commenting on GitHub issues.
Create a new issue in a repository with title, body, labels, and assignees.
List issues with various filters (state, labels, assignee, etc.).
Retrieve details of a specific issue.
Update issue properties like title, body, state, labels, or assignees.
Add a comment to an existing issue.
Search for issues across repositories.
Basic issue:
gh issue create --repo owner/repo-name --title "Bug: Login not working" --body "Users cannot log in with valid credentials"
Issue with labels:
gh issue create --repo owner/repo-name \
--title "Feature: Add dark mode" \
--body "Add dark mode support to the application" \
--label "enhancement" \
--label "ui"
Issue with assignee:
gh issue create --repo owner/repo-name \
--title "Fix memory leak" \
--body "Memory usage increases over time" \
--label "bug" \
--assignee username
Interactive mode:
gh issue create --repo owner/repo-name
# Follow the prompts to enter title and body
From template:
gh issue create --repo owner/repo-name --template bug_report.md
List all open issues:
gh issue list --repo owner/repo-name
List all issues (including closed):
gh issue list --repo owner/repo-name --state all
Filter by label:
gh issue list --repo owner/repo-name --label bug
Multiple labels (AND):
gh issue list --repo owner/repo-name --label bug --label critical
Filter by assignee:
gh issue list --repo owner/repo-name --assignee username
Filter by author:
gh issue list --repo owner/repo-name --author username
Limit results:
gh issue list --repo owner/repo-name --limit 50
Custom output format:
gh issue list --repo owner/repo-name --json number,title,state,labels --jq '.[] | "\(.number): \(.title)"'
View issue in terminal:
gh issue view 123 --repo owner/repo-name
View with comments:
gh issue view 123 --repo owner/repo-name --comments
View in browser:
gh issue view 123 --repo owner/repo-name --web
JSON output:
gh issue view 123 --repo owner/repo-name --json number,title,body,state,labels,assignees,createdAt
Change issue state to closed:
gh issue close 123 --repo owner/repo-name
Close with comment:
gh issue close 123 --repo owner/repo-name --comment "Fixed in PR #456"
Reopen issue:
gh issue reopen 123 --repo owner/repo-name
Edit issue title and body:
gh issue edit 123 --repo owner/repo-name \
--title "Updated title" \
--body "Updated description"
Add labels:
gh issue edit 123 --repo owner/repo-name --add-label "needs-triage"
Remove labels:
gh issue edit 123 --repo owner/repo-name --remove-label "needs-triage"
Add assignees:
gh issue edit 123 --repo owner/repo-name --add-assignee user1,user2
Remove assignees:
gh issue edit 123 --repo owner/repo-name --remove-assignee user1
Interactive edit:
gh issue edit 123 --repo owner/repo-name
Add simple comment:
gh issue comment 123 --repo owner/repo-name --body "This is my comment"
Add multi-line comment:
gh issue comment 123 --repo owner/repo-name --body "First line
Second line
Third line"
Comment from file:
gh issue comment 123 --repo owner/repo-name --body-file comment.md
Interactive comment:
gh issue comment 123 --repo owner/repo-name
# Opens editor for comment
Search across all repositories:
gh search issues "memory leak" --limit 20
Search in specific repository:
gh search issues "bug" --repo owner/repo-name
Search with filters:
gh search issues "crash" --label bug --state open --limit 10
Search by author:
gh search issues "feature" --author username
Search by date:
gh search issues "security" --created ">2025-01-01"
Search in organization:
gh search issues "todo" --owner myorg
Complex query:
gh search issues "is:open label:bug assignee:username"
# List new untriaged issues
gh issue list --repo owner/repo-name --label "needs-triage" --state open
# Review an issue
gh issue view 123 --repo owner/repo-name
# Add labels and assign
gh issue edit 123 --repo owner/repo-name \
--add-label "bug" \
--add-label "high-priority" \
--remove-label "needs-triage" \
--add-assignee developer1
# Add triage comment
gh issue comment 123 --repo owner/repo-name --body "Confirmed bug. High priority for next sprint."
# Create bug from template
gh issue create --repo owner/repo-name \
--title "Bug: API returns 500 error" \
--body "$(cat bug-details.md)" \
--label "bug" \
--label "api"
# Get issue number from output, e.g., #456
# Link to related issue
gh issue comment 456 --repo owner/repo-name --body "Related to #123"
# Update when fixed
gh issue close 456 --repo owner/repo-name --comment "Fixed in commit abc123"
Close multiple stale issues:
# List stale issues
gh issue list --repo owner/repo-name --label "stale" --state open --json number --jq '.[].number' > stale_issues.txt
# Close each one
while read issue_num; do
gh issue close $issue_num --repo owner/repo-name --comment "Closing stale issue"
done < stale_issues.txt
Add label to multiple issues:
for issue in 101 102 103 104; do
gh issue edit $issue --repo owner/repo-name --add-label "sprint-3"
done
Create from bug template:
gh issue create --repo owner/repo-name --template bug_report.md --web
Create from feature template:
gh issue create --repo owner/repo-name --template feature_request.md --web
# Check if issue exists
gh issue view 123 --repo owner/repo-name 2>&1 | grep -q "could not find" && echo "Issue not found"
# List available labels first
gh label list --repo owner/repo-name
# Then create issue with valid label
gh issue create --repo owner/repo-name --title "Test" --body "Test" --label "valid-label"
# Check repository access
gh auth status
# Verify you have write access
gh api repos/owner/repo-name --jq '.permissions'
[Open] -> [Closed] # gh issue close
[Closed] -> [Open] # gh issue reopen
[Open] -> [In Progress] # Add label/project card
[In Progress] -> [Closed] # Complete work and close
repository-management to create repos before creating issuespull-request-management to link PRs that fix issuessearch-operations for advanced cross-repository issue searchescommit-operations to reference commits that address issuesApplies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.