@claude-code-commands/code-clis-install-gh-cli
You are helping the user install and authenticate the GitHub CLI tool.
prpm install @claude-code-commands/code-clis-install-gh-cli2 total downloads
📄 Full Prompt Content
# Install and Authenticate GitHub CLI (gh)
You are helping the user install and authenticate the GitHub CLI tool.
## Your tasks:
1. **Check if gh is already installed:**
```bash
which gh
gh --version
```
If already installed and authenticated:
```bash
gh auth status
```
2. **Install GitHub CLI (if not installed):**
**Method 1: Using official repository (recommended):**
```bash
# Add the GPG key
sudo mkdir -p -m 755 /etc/apt/keyrings
wget -qO- https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null
sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg
# Add the repository
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
# Install
sudo apt update
sudo apt install gh
```
**Method 2: Using snap:**
```bash
sudo snap install gh
```
**Method 3: Using Homebrew (if installed):**
```bash
brew install gh
```
3. **Verify installation:**
```bash
gh --version
which gh
```
4. **Authenticate with GitHub:**
**Interactive authentication (recommended):**
```bash
gh auth login
```
This will prompt for:
- GitHub.com or GitHub Enterprise Server
- Preferred protocol (HTTPS or SSH)
- Authentication method (web browser or token)
**Via web browser (easiest):**
- Select "Login with a web browser"
- Follow the one-time code and URL
- Authorize in browser
**Via token:**
- Generate a token at https://github.com/settings/tokens
- Select "Login with authentication token"
- Paste the token
5. **Verify authentication:**
```bash
gh auth status
```
Should show:
- Logged in to github.com
- Account name
- Token scopes
6. **Configure gh settings:**
**Set default editor:**
```bash
gh config set editor vim
# or
gh config set editor nano
# or
gh config set editor code # VS Code
```
**Set default protocol:**
```bash
gh config set git_protocol ssh
# or
gh config set git_protocol https
```
**View all config:**
```bash
gh config list
```
7. **Set up SSH key (if using SSH protocol):**
```bash
# Generate SSH key if needed
ssh-keygen -t ed25519 -C "your_email@example.com"
# Add to ssh-agent
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
# Add to GitHub
gh ssh-key add ~/.ssh/id_ed25519.pub --title "My Ubuntu Desktop"
# Or copy public key to GitHub manually
cat ~/.ssh/id_ed25519.pub
```
8. **Test GitHub connectivity:**
```bash
# Test SSH connection
ssh -T git@github.com
# Test gh CLI
gh repo list
gh auth status
```
9. **Configure git to use gh for credentials:**
```bash
gh auth setup-git
```
This configures git to use gh as a credential helper.
10. **Show basic gh commands:**
**Repository operations:**
- `gh repo create` - Create a repository
- `gh repo clone <repo>` - Clone a repository
- `gh repo view` - View repository details
- `gh repo list` - List your repositories
- `gh repo fork` - Fork a repository
**Pull requests:**
- `gh pr create` - Create a pull request
- `gh pr list` - List pull requests
- `gh pr view <number>` - View a PR
- `gh pr checkout <number>` - Checkout a PR
- `gh pr merge <number>` - Merge a PR
- `gh pr review <number>` - Review a PR
**Issues:**
- `gh issue create` - Create an issue
- `gh issue list` - List issues
- `gh issue view <number>` - View an issue
- `gh issue close <number>` - Close an issue
**Workflows:**
- `gh workflow list` - List workflows
- `gh workflow view <workflow>` - View workflow
- `gh workflow run <workflow>` - Trigger a workflow
- `gh run list` - List workflow runs
- `gh run view <run>` - View a run
**Gists:**
- `gh gist create <file>` - Create a gist
- `gh gist list` - List gists
- `gh gist view <gist>` - View a gist
11. **Set up shell completion:**
**For bash:**
```bash
gh completion -s bash > ~/.gh-completion.bash
echo 'source ~/.gh-completion.bash' >> ~/.bashrc
source ~/.bashrc
```
**For zsh:**
```bash
gh completion -s zsh > ~/.gh-completion.zsh
echo 'source ~/.gh-completion.zsh' >> ~/.zshrc
source ~/.zshrc
```
12. **Configure multiple accounts (if needed):**
```bash
# Add another account
GH_HOST=github.com gh auth login
# Switch between accounts
gh auth switch
```
13. **Set up aliases (optional):**
```bash
gh alias set pv 'pr view'
gh alias set co 'pr checkout'
gh alias set bugs 'issue list --label=bug'
```
List aliases:
```bash
gh alias list
```
14. **Authenticate with GitHub Enterprise (if applicable):**
```bash
gh auth login --hostname github.example.com
```
15. **Troubleshooting common issues:**
**Permission denied:**
- Check auth status: `gh auth status`
- Re-authenticate: `gh auth login`
- Check token scopes
**SSH issues:**
- Verify SSH key: `ssh -T git@github.com`
- Add SSH key to GitHub: `gh ssh-key add`
- Check ssh-agent: `ssh-add -l`
**Rate limiting:**
- Check rate limit: `gh api rate_limit`
- Use authentication to increase limits
16. **Update gh:**
```bash
sudo apt update
sudo apt upgrade gh
# or
brew upgrade gh
# or
sudo snap refresh gh
```
17. **Advanced configuration:**
**Custom API endpoint:**
```bash
gh config set api_endpoint https://api.github.com
```
**Disable prompts:**
```bash
gh config set prompt disabled
```
**Configure pager:**
```bash
gh config set pager less
```
18. **Security best practices:**
- Use SSH keys instead of HTTPS when possible
- Use tokens with minimal required scopes
- Rotate tokens regularly
- Don't share tokens
- Use different tokens for different machines
- Enable 2FA on GitHub account
- Review authorized applications regularly
19. **Provide workflow examples:**
**Create a repo and push:**
```bash
mkdir my-project
cd my-project
git init
echo "# My Project" > README.md
git add README.md
git commit -m "Initial commit"
gh repo create my-project --public --source=. --push
```
**Fork and clone:**
```bash
gh repo fork owner/repo --clone
```
**Create PR from current branch:**
```bash
gh pr create --title "My changes" --body "Description of changes"
```
20. **Report findings:**
Summarize:
- Installation status
- Authentication status
- Configured settings
- Available accounts
- Next steps
## Important notes:
- gh is the official GitHub CLI
- Requires GitHub account
- Can use HTTPS or SSH protocol
- SSH is generally more secure and convenient
- gh can replace many git operations with simpler syntax
- Shell completion is very helpful
- Keep gh updated for latest features
- Multiple accounts are supported
- Works with both GitHub.com and GitHub Enterprise
- Tokens should have minimal required scopes
💡 Suggested Test Inputs
Loading suggested inputs...
🎯 Community Test Results
Loading results...
📦 Package Info
- Format
- claude
- Type
- slash-command
- Category
- general