A GitHub CLI extension for managing discussions, providing functionality similar to gh issue and gh pr for GitHub Discussions.
English | 日本語
- List discussions with filtering and search capabilities
- View discussion details with optional comments
- Multiple output formats: table, JSON, custom templates
- GitHub CLI integration: uses your existing GitHub authentication
- GitHub CLI must be installed and authenticated
- Go 1.21 or later (for building from source)
git clone https://github.com/harakeishi/gh-discussion.git
cd gh-discussion
go build -o gh-discussion
gh extension install .gh extension install harakeishi/gh-discussion# List discussions in the current repository
gh discussion list
# List discussions in a specific repository
gh discussion list -R owner/repo
# Filter by author
gh discussion list -a username
# Search discussions
gh discussion list -S "API documentation"
# Filter by category
gh discussion list --category "General"
# Filter by answered status
gh discussion list --answered true
gh discussion list --answered false
# Limit results
gh discussion list -L 50
# Output specific fields as JSON
gh discussion list --json "number,title,author,category,isAnswered"
# Open in web browser
gh discussion list -w# View discussion by number
gh discussion view 123
# View discussion in specific repository
gh discussion view 123 -R owner/repo
# View discussion by URL
gh discussion view https://github.com/owner/repo/discussions/123
# Include comments
gh discussion view 123 -c
# Output specific fields
gh discussion view 123 --json "title,body,author,comments"
# Open in web browser
gh discussion view 123 -wactiveLockReason,answer,answerChosenAt,answerChosenByauthor,authorAssociation,body,bodyHTML,bodyTextcategory,comments,createdAt,createdViaEmail,databaseIdeditor,id,includesCreatedEdit,isAnswered,lastEditedAtlocked,number,publishedAt,reactionGroups,repositoryresourcePath,title,updatedAt,url,upvoteCountviewerCanDelete,viewerCanReact,viewerCanSubscribeviewerCanUpdate,viewerDidAuthor,viewerSubscription
avatarUrl,login,url,id,name,email
id,name,description,emoji,emojiHTML,isAnswerable,createdAt,updatedAt
author,authorAssociation,body,bodyHTML,bodyText,createdAtid,isAnswer,isMinimized,minimizedReason,publishedAtreactionGroups,replies,replyTo,updatedAt,urlviewerCanMarkAsAnswer,viewerCanUnmarkAsAnswer
id,name,nameWithOwner,owner,url,description
gh discussion list --category "Q&A" --answered false --json "number,title,author,createdAt"gh discussion list -a username -L 10 --json "number,title,createdAt,isAnswered"gh-discussion/
├── main.go # Entry point
├── cmd/ # Command implementations
│ ├── list.go # List command
│ ├── view.go # View command
│ └── create.go # Create command
├── pkg/
│ ├── client/
│ │ └── github.go # GraphQL client
│ ├── models/
│ │ └── discussion.go # Data models
│ └── formatter/
│ └── output.go # Output formatting
├── go.mod
├── go.sum
└── README.md
go build -o gh-discussiongo test ./...- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by GitHub CLI's
gh issueandgh prcommands - Built using the GitHub CLI Go library
- Uses Cobra for CLI framework


