A quick reference to Github CLI, an open-source command line tool that enables GitHub on your terminal.
Windows
| Tool | Install | Upgrade | 
|---|---|---|
| WinGet | winget install --id Github.cli | 
winget upgrade --id GitHub.cli | 
| Scoop | scoop install gh | 
scoop update gh | 
| Choco | choco install gh | 
choco upgrade gh | 
Mac OS
| Tool | Install | Upgrade | 
|---|---|---|
| Brew | brew install gh | 
brew upgrade gh | 
| MacPorts | sudo port install gh | 
sudo port selfupdate && sudo port upgrade gh | 
Linux
See the install instructions for other Linux distributions.
Installation Script:
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 \
&& sudo apt update \
&& sudo apt install gh -y
Help and Documentation
Display command options:
| Command | Description | 
|---|---|
gh help [command] | 
Help provides help for any command in the application. Simply type gh help [path to command] for full details. | 
Authentication
| Command | Description | 
|---|---|
gh auth login | 
Default authentication with web-based browser | 
gh auth logout | 
Removes the authentication configuration for a host | 
gh auth refresh | 
Expand or fix the permission scopes for stored credentials | 
gh auth setup-git | 
Configures git to use GitHub CLI as a credential helper | 
gh auth status | 
Verifies and displays information about your authentication state | 
gh auth token | 
Print the auth token gh is configured to use | 
With Github token:
$ gh auth --with-token < token.txt
General
| Command | Description | 
|---|---|
gh repo create | 
Create a new GitHub repository | 
gh repo list [target] | 
List repositories owned by a user or organization | 
Targets
| Command | Description | 
|---|---|
gh repo archive [repo] | 
Archive a GitHub repository | 
gh repo clone [dir] | 
Clone a GitHub repository locally | 
gh repo delete [repo] | 
Delete a GitHub repository | 
gh repo deploy-key | 
Manage deploy keys in a repository | 
gh repo edit [repo] | 
Edit repository settings | 
gh repo fork [repo] | 
Create a fork of a repository | 
gh repo rename [name] | 
Rename a GitHub repository | 
gh repo set-default [repo] | 
This command sets the default remote repository | 
gh repo sync [dest-repo] | 
Sync destination repository from source repository | 
gh repo view [repo] | 
Display the description and the README of a GitHub repository. | 
Search Issues
| Command | Description | 
|---|---|
gh search issues [query] | 
Search for issues on GitHub | 
Examples
# search issues matching set of keywords "readme" and "typo"
$ gh search issues readme typo
# search issues matching phrase "broken feature"
$ gh search issues "broken feature"
# search issues and pull requests in cli organization
$ gh search issues --include-prs --owner=cli
# search open issues assigned to yourself
$ gh search issues --assignee=@me --state=open
# search issues with numerous comments
$ gh search issues --comments=">100"
# search issues without label "bug"
$ gh search issues -- -label:bug
Pull Request Actions
| Command | Description | 
|---|---|
gh pr create | 
Create a pull request on GitHub | 
gh pr list | 
List pull requests in a GitHub repository | 
gh pr status | 
Show status of relevant pull requests | 
Example
$ gh pr status
Sample Output:
Current branch
  #12 Remove the test feature [user:patch-2]
   - All checks failing - Review required
Created by you
  You have no open pull requests
Requesting a code review from you
  #13 Fix tests [branch]
  - 3/4 checks failing - Review required
  #15 New feature [branch]
   - Checks passing - Approved
General Actions
| Command | Description | 
|---|---|
gh workflow disable | 
Disable a workflow, preventing it from running or showing up when listing workflows | 
gh workflow enable | 
Enable a workflow, allowing it to be run and show up when listing workflows | 
gh workflow list | 
List workflow files, hiding disabled workflows by default | 
gh workflow run | 
Create a workflow_dispatch event for a given workflow | 
gh workflow view | 
View the summary of a workflow | 
Running Actions
| Command | Description | 
|---|---|
gh run cancel | 
Cancel a workflow run | 
gh run delete | 
Delete a workflow run | 
gh run download | 
Download artifacts generated by a GitHub Actions workflow run | 
gh run list | 
List recent workflow runs | 
gh run rerun | 
Rerun an entire run, only failed jobs, or a specific job from a run | 
gh run view | 
View a summary of a workflow run | 
gh run watch | 
Watch a run until it completes, showing its progress | 
General Alias Settings
| Command | Description | 
|---|---|
gh alias delete | 
Delete set aliases | 
gh alias import | 
Import aliases from the contents of a YAML file | 
gh alias list | 
Prints out all of the aliases gh is configured to use | 
gh alias set | 
Define a word that will expand to a full gh command when invoked | 
General Actions
| Command | Description | 
|---|---|
gh release create | 
Create a new GitHub Release for a repository | 
gh release list | 
List releases in a repository | 
Target Commands
| Command | Description | 
|---|---|
gh release delete | 
Delete a release | 
gh release delete-asset | 
Delete an asset from a release | 
gh release download | 
Download assets from a GitHub release | 
gh release edit | 
Edit a release | 
gh release upload | 
Upload asset files to a GitHub Release | 
gh release view | 
View information about a GitHub Release | 
Targeted Settings
| Command | Description | 
|---|---|
gh config clear-cache | 
Clear the cli cache | 
gh config get | 
Print the value of a given configuration key | 
gh config list | 
Print a list of configuration keys and values | 
gh config set | 
Update configuration with a value for the given key |