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 |