gh-cli-setup
Use when gh CLI is not installed, not configured, or authentication fails - provides installation steps, authentication methods, and troubleshooting for all platforms
Best use case
gh-cli-setup is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Use when gh CLI is not installed, not configured, or authentication fails - provides installation steps, authentication methods, and troubleshooting for all platforms
Teams using gh-cli-setup should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/gh-cli-setup/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How gh-cli-setup Compares
| Feature / Agent | gh-cli-setup | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Use when gh CLI is not installed, not configured, or authentication fails - provides installation steps, authentication methods, and troubleshooting for all platforms
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# GitHub CLI Setup & Troubleshooting ## Overview This skill helps diagnose and fix GitHub CLI (`gh`) installation, configuration, and authentication issues. **IMPORTANT: When providing installation instructions, always:** - Explain the recommended method (e.g., "Homebrew is the recommended way to install on macOS") - Provide the actual command - Mention alternative installation methods - Add context about what the command does - Do NOT just return a bare command without explanation ## When to Use Use this skill when: - `gh` command not found - Authentication errors occur - gh CLI behaves unexpectedly - Need to check gh CLI configuration - Setting up gh CLI for first time ## Quick Diagnostic Run these commands to check status: ```bash # Check if gh is installed which gh # Check gh version gh --version # Check authentication status gh auth status # List authenticated accounts gh auth status --show-token ``` ## Installation ### macOS **Using Homebrew (recommended):** ```bash brew install gh ``` **Using MacPorts:** ```bash sudo port install gh ``` **Using Conda:** ```bash conda install gh --channel conda-forge ``` ### Linux **Debian/Ubuntu/Raspbian:** ```bash # Add GitHub CLI repository type -p curl >/dev/null || (sudo apt update && sudo apt install curl -y) curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/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 -y ``` **Fedora/CentOS/RHEL:** ```bash sudo dnf install gh ``` **Arch Linux:** ```bash sudo pacman -S github-cli ``` **Using Snap:** ```bash sudo snap install gh ``` **Using Conda:** ```bash conda install gh --channel conda-forge ``` ### Windows **Using WinGet:** ```powershell winget install --id GitHub.cli ``` **Using Scoop:** ```powershell scoop install gh ``` **Using Chocolatey:** ```powershell choco install gh ``` **Using Conda:** ```bash conda install gh --channel conda-forge ``` **Manual Download:** - Download MSI installer from: https://cli.github.com/ ## Authentication ### Interactive Authentication (Recommended) ```bash gh auth login ``` This will prompt you to: 1. Choose GitHub.com or GitHub Enterprise Server 2. Choose authentication method (Web browser or Token) 3. Complete authentication flow ### Token Authentication ```bash # Create token at: https://github.com/settings/tokens # Required scopes: repo, read:org, workflow # Authenticate with token gh auth login --with-token < token.txt # Or paste token when prompted gh auth login ``` ### Check Authentication ```bash # Verify authentication status gh auth status # View authenticated user gh api user --jq '.login' # Test API access gh api rate_limit ``` ## Common Errors & Solutions ### Error: "gh: command not found" **Cause:** gh CLI not installed or not in PATH **Solution:** ```bash # Check if gh is installed which gh # If not found, install (see Installation section above) # If installed but not in PATH, add to PATH # For bash/zsh, add to ~/.bashrc or ~/.zshrc: export PATH="/path/to/gh/bin:$PATH" ``` ### Error: "authentication required" **Cause:** Not logged in to GitHub **Solution:** ```bash # Login interactively gh auth login # Or check authentication status gh auth status ``` ### Error: "HTTP 403: Resource not accessible by integration" **Cause:** Insufficient token permissions **Solution:** ```bash # Re-authenticate with proper scopes gh auth login --scopes repo,read:org,workflow # Or create new token with required scopes: # https://github.com/settings/tokens ``` ### Error: "HTTP 401: Bad credentials" **Cause:** Token expired or invalid **Solution:** ```bash # Logout and re-authenticate gh auth logout gh auth login ``` ### Error: "API rate limit exceeded" **Cause:** Too many API requests (60/hour unauthenticated, 5000/hour authenticated) **Solution:** ```bash # Check rate limit status gh api rate_limit # Authenticate to get higher limit (if not already) gh auth login # Wait for rate limit reset or use different account ``` ### Error: "Could not resolve host: github.com" **Cause:** Network connectivity issue **Solution:** ```bash # Check internet connection ping github.com # Check proxy settings if behind corporate firewall gh config set http_proxy http://proxy.example.com:8080 # Check DNS resolution nslookup github.com ``` ## Configuration ### View Configuration ```bash # View all config settings gh config list # View specific setting gh config get git_protocol ``` ### Common Settings ```bash # Set default protocol (https or ssh) gh config set git_protocol https # Set default editor gh config set editor vim # Set default browser gh config set browser firefox # Set proxy gh config set http_proxy http://proxy.example.com:8080 # Set GitHub Enterprise host gh config set host github.enterprise.com ``` ### Config File Locations - **Linux/macOS:** `~/.config/gh/config.yml` - **Windows:** `%AppData%\GitHub CLI\config.yml` ## Multiple Accounts ```bash # Login to multiple hosts gh auth login --hostname github.com gh auth login --hostname github.enterprise.com # Switch between accounts gh auth switch # Check which account is active gh auth status ``` ## Debugging ### Enable Debug Mode ```bash # Run command with debug output GH_DEBUG=api gh search repos "test" # Or for all commands export GH_DEBUG=api ``` ### View Request/Response ```bash # See HTTP requests and responses gh api repos/owner/repo --verbose ``` ### Check Version ```bash # View gh version gh --version # Check for updates gh extension upgrade --all ``` ## Troubleshooting Checklist When gh CLI isn't working, check these in order: - [ ] Is gh installed? (`which gh`) - [ ] Is gh in PATH? (`echo $PATH` | grep gh) - [ ] Is gh authenticated? (`gh auth status`) - [ ] Does token have required scopes? - [ ] Is network connectivity working? (`ping github.com`) - [ ] Is rate limit exceeded? (`gh api rate_limit`) - [ ] Is gh version up to date? (`gh --version`) - [ ] Are config settings correct? (`gh config list`) ## Getting Help ```bash # Get help for any command gh help gh search --help gh search repos --help # View manual online # https://cli.github.com/manual/ ``` ## Permissions Required for Search Different search types require different permissions: - **Public repos/issues/PRs:** No authentication required (but rate limited) - **Private repos:** Requires `repo` scope - **Organization repos:** Requires `read:org` scope - **Workflow files:** Requires `workflow` scope ## Token Scopes Create tokens at: https://github.com/settings/tokens **Minimal scopes for search:** - `public_repo` - Search public repositories - `repo` - Search private repositories - `read:org` - Search organization repositories **Recommended scopes:** - `repo` - Full repository access - `read:org` - Organization access - `workflow` - Workflow access - `gist` - Gist access ## Uninstallation ### macOS ```bash brew uninstall gh ``` ### Linux ```bash # Debian/Ubuntu sudo apt remove gh # Fedora/CentOS/RHEL sudo dnf remove gh # Arch sudo pacman -R github-cli ``` ### Windows ```powershell # WinGet winget uninstall GitHub.cli # Scoop scoop uninstall gh # Chocolatey choco uninstall gh ``` ## Related - Official documentation: https://cli.github.com/manual/ - Installation guide: https://github.com/cli/cli#installation - Authentication guide: https://cli.github.com/manual/gh_auth_login - For using gh search: `gh-search-code`, `gh-search-commits`, `gh-search-issues`, `gh-search-prs`, `gh-search-repos`
Related Skills
git-initial-setup
Default git setup to protect main after git init/clone. Use when standardizing repo bootstrap and absorbing environment differences.
environment-setup-guide
Guide developers through setting up development environments with proper tools, dependencies, and configurations
conductor-setup
Initialize project with Conductor artifacts (product definition, tech stack, workflow, style guides)
cc-soul-setup
Build cc-soul from source (requires cmake, make, C++ compiler)
android-release-build-setup
Complete Android release build configuration - orchestrates keystore, ProGuard, and signing setup
android-proguard-setup
Configure ProGuard/R8 for Android release builds with safe defaults
oauth-2-0-setup
Implement OAuth 2.0 authentication flows including authorization code with PKCE, client credentials, and device code for secure API integration.
authentication-setup
Design and implement authentication and authorization systems. Use when setting up user login, JWT tokens, OAuth, session management, or role-based access control. Handles password security, token management, SSO integration.
android-e2e-testing-setup
Setup UI Automator 2.4 smoke test for validating app launches (works with debug and release builds)
ab-test-setup
Structured guide for setting up A/B tests with mandatory gates for hypothesis, metrics, and execution readiness.
alto-feature-setup
Use when starting a new feature - running /alto-feature-setup, updating objective.md, or running alto-new-run. Interactive workflow for feature initialization.
webmcp-setup
Strategic guidance for adding WebMCP to web applications. Use when the user wants to make their web app AI-accessible, create LLM tools for their UI, or enable browser automation through MCP. Focuses on design principles, tool architecture, and testing workflow.