Back to rankings

node-gh/gh

TypeScriptnodegh.io

(DEPRECATED) GitHub CLI made with NodeJS. Use the official https://cli.github.com/ instead.

githubcliprogrammingnodejstypescriptdeprecated
Star Growth
Stars
1.7k
Forks
211
Weekly Growth
โ€”
Issues
51
5001k1.5k
May 2013Sep 2017Feb 2022Jul 2026
Artifactsnpmnpm install gh
README

DEPRECATED


Node GH

Boost your productivity & automate tasks when working with GitHub, all from the comfort of your CLI.

Table of contents

Contributors

Getting Started
Available Commands
Pull Requests `pr`
Issues `is`
Repos `re`
Gists `gi`
User `us`
Notifications `nt`
Milestones `ms`
Alias `al`

General

Install

npm install -g gh

Usage

  • Most commands require you to use a developer key
  • We automate the process for you the first time you run a command
  • Instructions on manually adding a developer key for extra security

Simple example: list prs for current repo

gh pr

Contributors

Huge thanks goes to these wonderful people (emoji key):


Eduardo Lundgren

๐Ÿ’ป ๐Ÿ› ๐Ÿ“– ๐Ÿ’ฌ ๐Ÿš‡ ๐Ÿ”Œ โš ๏ธ ๐Ÿ‘€ ๐Ÿค”

Zeno Rocha

๐Ÿ’ป ๐Ÿ› ๐Ÿ“– ๐Ÿ’ฌ ๐Ÿš‡ ๐Ÿ”Œ โš ๏ธ ๐Ÿ‘€ ๐Ÿค” ๐Ÿ–‹

Henrique Vicente

๐Ÿ’ป ๐Ÿ› ๐Ÿ’ฌ ๐Ÿš‡ ๐Ÿ”Œ โš ๏ธ ๐Ÿ‘€ ๐Ÿ›ก๏ธ ๐Ÿค”

Ryan Garant

๐Ÿ› ๐Ÿ’ฌ ๐Ÿš‡ ๐Ÿ”Œ โš ๏ธ ๐Ÿ‘€ ๐Ÿ›ก๏ธ ๐Ÿค”

Bruno Coelho

๐Ÿ’ป ๐Ÿ›

Dustin Ryerson

๐Ÿ’ป

Drew Brokke

๐Ÿ’ป ๐Ÿค”

Jose Ignacio

๐Ÿ’ป

Rodrigo Vidal

๐Ÿ’ป

Hamza Baig

๐Ÿ’ป

Gregory Amerson

๐Ÿ’ป ๐Ÿ›

Tom Rochette

๐Ÿ’ป ๐Ÿ› ๐Ÿš‡

Mike Roberts

๐Ÿ’ป

Snyk bot

๐Ÿ’ป

BlockchainDeveloper

๐Ÿ’ป

Joรฃo Paulo Bochi

๐Ÿ’ป

Matthew Elphick

๐Ÿ’ป

Nate Cavanaugh

๐Ÿ’ป

Peter Dave Hello

๐Ÿ’ป

Matt DesLauriers

๐Ÿ’ป

oughter

๐Ÿ’ป

Adrian Macneil

๐Ÿ’ป

Aleksey Ostapenko

๐Ÿ’ป

Aliaksei

๐Ÿ’ป

Andrey

๐Ÿ’ป

Andrรฉ de Oliveira

๐Ÿ’ป

Brandon Patram

๐Ÿ’ป

Chema Balsas

๐Ÿ’ป

Christian Schlensker

๐Ÿ’ป

Ciro Nunes

๐Ÿ’ป

Denis Efremov

๐Ÿ’ป

Henri Cavalcante

๐Ÿ’ป

Jaka Hudoklin

๐Ÿ’ป

Josรฉ F. Romaniello

๐Ÿ’ป

Joshua Wu

๐Ÿ’ป

Kevon Eaglin

๐Ÿ’ป

M. Tarฤฑk Yurt

๐Ÿ’ป

Marcus Buffett

๐Ÿ’ป

Randั•on

๐Ÿ’ป

Alex Hall

๐Ÿ’ป

Rossi Oddet

๐Ÿ’ป

Ryan Schmukler

๐Ÿ’ป

Stephen Williams

๐Ÿ’ป

Trevor Bortins

๐Ÿ’ป

Whitney Young

๐Ÿ’ป

Xavier RENE-CORAIL

๐Ÿ’ป

YAMAMOTO Yuji

๐Ÿ’ป

Sam Mikes

๐Ÿ’ป

Tiju Thomas

๐Ÿ’ป

Zev Averbach

๐Ÿ’ป ๐Ÿ›

Aaron Jones

๐Ÿ›

Ryan Schumacher

๐Ÿ›

Rob Dodson

๐Ÿ›

Derek Sifford

๐Ÿ›

rachidbch

๐Ÿ›

Liraz Siri

๐Ÿ›

Zsolt Balogh

๐Ÿ› ๐Ÿ“–

Iliyan Peychev

๐Ÿ›

Dante Wang

๐Ÿ›

Raymond Augรฉ

๐Ÿ›

Mohamed Bassem

๐Ÿ›

Rich Sezov

๐Ÿ›

Jason Kuhrt

๐Ÿ›

gon138

๐Ÿ›

Maxim Novikov

๐Ÿ›

Anders D. Johnson

๐Ÿ›

Gabriel Izaias

๐Ÿ›

Myles McNamara

๐Ÿ›

Gilad Peleg

๐Ÿ›

Yoshua Wuyts

๐Ÿ›

Marc Lundgren

๐Ÿ›

Julio Camarero

๐Ÿ›

Marcellus Tavares

๐Ÿ›

Sergio Gonzalez

๐Ÿ›

Djalma Araรบjo

๐Ÿ›

Bruno Basto

๐Ÿ›

Jason Pincin

๐Ÿ›

Joel Kuzmarski

๐Ÿ›

Nadeem Bitar

๐Ÿ“–

Cleydyr Bezerra de Albuquerque

๐Ÿ›

Ramon Pires da Silva

๐Ÿ”Œ

Patrick Weingรคrtner

๐Ÿ’ป

Gabriel Ramos

๐Ÿ’ป

Manuel de la Peรฑa

๐Ÿ’ป

Jose M Vidal

๐Ÿ›

Saulo Vallory

๐Ÿ’ป

Hernan Fernandez

๐Ÿ’ป

Aaron Berry

๐Ÿ’ป

Inรกcio Nery

๐Ÿ› ๐Ÿ’ป

Marcus Bizal

๐Ÿ›

Julien Castelain

๐Ÿ› ๐Ÿ’ป

Andrew Bradley

๐Ÿ›

This project follows the all-contributors specification. Contributions of any kind welcome!

Contributing

For detailed instructions, check Contributing. Don't miss the source code reports.

History

For detailed changelog, check Releases.

License

BSD-3-Clause

Demonstration

Terminal Demo

Supported Node Versions:

We support the node versions that the Node.js organization supports which as of now is Node v6 & up.

LTS Schedule

Authentication

Under the hood, we are using @octokit/rest to work with the GitHub API The method of authentication that we use with octokit, is a personal access token You have two options here: 1. Run gh which will start the authentication process & generate the token for you automatically - Though they are hidden, the downside of this is having to type your user & pass - Supports 2fa 2. Manually generate your personal token & add it to your ~/.gh.json

Available commands

gh help

List all comands options.

gh help --all

List specific command options.

gh help <command>

Global flags

Option Usage Type
--verbose Optional Boolean
--insane Optional Boolean
--no-color Optional Boolean
--no-hooks Optional Boolean

The verbose flag is useful for debugging issues. The insane flag is a more complete verbose flag, which leaks more privacy sensitive data by default.

Pull requests

gh pull-request

Alias: gh pr

PR: Info

Option Usage Type
-u, --user Required String
-I, --info Required Boolean
-n, --number Required String
-r, --repo Optional String
-u, --user Optional String

Get information about a pull request.

gh pr --info 1

PR: List

Option Usage Type
-l, --list Required Boolean
-a, --all Optional Boolean
-O, --org Optional String
-m, --me Optional Boolean
-d, --detailed Optional Boolean
--direction Optional [asc, desc]
--date Optional String
-b, --branch Optional String
--remote Optional String
-r, --repo Optional String
--sort Optional [created, updated, popularity, long-running, complexity]
-S, --state Optional [open, closed]
-u, --user Optional String
--link Optional Boolean
  • user is owner of the repository, it is the authenticated user by default.
  • remote is the name of the remote configuration in a git directory, i.e. origin, upstream.
  • Therefore, it only makes sense when this command is run in a git directory.
  • To turn off pretty printing of output in a table add "pretty_print": false to your ~/.gh-json config
  • To adjust pagination rules

Examples

Shortcut for listing open pull requests for the current repository

gh pr

List open pull requests for all branches from all your repositories.

gh pr --list --all

List open pull requests for all branches in all repositories belonging to the "github" organization.

gh pr --list --all --org github

List open pull requests sent by logged user on current repository.

gh pr --list --me

List open pull requests in node-gh/gh repository.

gh pr --list --user node-gh --repo gh

List open pull requests with link and content.

gh pr --list --detailed

List open pull requests for a branch.

gh pr --list --branch master

List open pull requests and sort them by popularity (comment count).

gh pr --list --sort popularity

List open pull requests and sort them by asc long-running (old but still active).

gh pr --list --sort long-running --direction asc

List open pull requests and sort them by complexity (complexity is calculated based on number of additions, deletions, changed files, comments and review comments).

gh pr --list --sort complexity

List open pull requests with their link

gh pr --list --link

List open pull requests with a formatted date (Any string that the moment library's formatter accepts should work: https://momentjs.com/docs/#/displaying/format/).

gh pr --list --date "dddd, MMMM Do YYYY, h:mm:ss a"

PR: Merge or Rebase

Option Usage Type
-f, --fetch Required Boolean
-M, --merge Required Boolean
-R, --rebase Required Boolean
-n, --number Optional Number
-b, --branch Optional String
--draft Optional Boolean
--remote Optional String
-r, --repo Optional String
-u, --user Optional String

Omitting --number will try to guess the pull number from branch name e.g. pr-1 results in --number 1. Omitting --branch will merge or rebase into config.default_branch.

Examples

Shortcut for fetching pull request and checkout into a new branch pr-1.

gh pr 1

Merge or rebase pull request into a local branch.

gh pr 1 --fetch --merge
gh pr 1 --fetch --rebase

Merge or rebase pull request into branch dev.

gh pr 1 --fetch --rebase --branch dev
gh pr 1 --fetch --merge --branch dev

PR: Comment

Option Usage Type
-c, --comment Required String
-n, --number Required Number
--remote Optional String
-r, --repo Optional String
-u, --user Optional String

Examples

Comment on a pull request.

gh pr 1 --comment "Merged, thank you!"

Submit a pull request using your default editor by passing an empty --comment

gh pr 1 --comment

PR Forward

Option Usage Type
--fwd Required String
-n, --number Required Number

Omitting a value for --fwd fallbacks to the default_pr_forwarder key found in your config file.

Examples

Forward a pull request to another reviewer.

gh pr 1 --fwd username

PR: Open or Close

Option Usage Type
-o, --open Required Boolean
-C, --close Required Boolean
-n, --number Required Number
--remote Optional String
-r, --repo Optional String
-u, --user Optional String

Examples

Open a pull request.

gh pr 1 --open

Close a pull request.

gh pr 1 --close

Close multiple pull requests.

gh pr --close --number 1 --number 2

Open multiple pull requests.

gh pr --open --number 1 --number 2

Open or close a pull request that you've sent to someone.

gh pr 1 --close --user eduardolundgren

PR: Submit

Option Usage Type
-s, --submit Required String
-b, --branch Optional String
-D, --description Optional String
-i, --issue Optional Number
-r, --repo Optional String
-t, --title Optional String

Omitting a value for --submit fallbacks to the default_pr_reviewer key found in your config file. Omitting --title will submit a pull request using the last commit message as title.

Examples

Submit a pull request using the current branch to the repository owner or organization.

gh pr --submit eduardolundgren --title 'Fix #32' --description 'Awesome fix'

Submit a pull request using your default editor by passing an empty --title and or --description

gh pr --submit eduardolundgren --title --description

Submit a pull request using the current branch to dev branch.

gh pr --submit eduardolundgren --branch dev

Submit a pull request from a issue.

gh pr --submit eduardolundgren --issue 150

Submit a pull request in draft state.

gh pr --submit eduardolundgren --draft

PR: Open in Browser

Option Usage Type
-B, --browser Required Boolean
-n, --number Required Number
-u, --user Optional String
-r, --repo Optional String

Examples

Open GitHub pull request page in the browser.

gh pr 100 --browser

Notifications

gh notification

Alias: gh nt

Notifications: Latest

Option Usage Type
-l, --latest Required Boolean
--remote Optional String
-r, --repo Optional String
-u, --user Optional String
--date Optional String

Examples

Shortcut for displaying the latest activities on the current repository.

gh nt

Display the latest activities on a certain repository.

gh nt --latest --user eduardolundgren --repo node-gh

Diplay notifications with a formatted date (Any string that the moment library's formatter accepts should work: https://momentjs.com/docs/#/displaying/format/).

gh nt --date "dddd, MMMM Do YYYY, h:mm:ss a"

Notifications: Watch

Option Usage Type
-w, --watch Required Boolean
--remote Optional String
-r, --repo Optional String
-u, --user Optional String

Examples

Watch for any activity on the current repository.

gh nt --watch

Watch for any activity on a certain repository.

gh nt --watch --user eduardolundgren --repo node-gh

Issues

gh issue

Alias: gh is

Issue: Create

Option Usage Type
-N, --new Required Boolean
-t, --title Required String
-A, --assignee Optional String
-L, --labels Optional String
-m, --message Optional String
--remote Optional String
-r, --repo Optional String
-u, --user Optional String

Examples

Shortcut for creating a new issue on the current repository.

gh is 'Node GH rocks!' 'Body with **Markdown** support'

Create a new issue using your default editor by passing an empty --message (also works with an empty title)

gh is --new --title 'Node GH rocks!' --message

Create a new issue on a certain repository.

gh is --new --title 'Node GH rocks!' --message 'Body with **Markdown** support' --user eduardolundgren --repo node-gh

Create a new issue with labels.

gh is --new --title 'Node GH rocks!' --labels bug,question,test

Create a new issue and assign it to someone.

gh is --new --title 'Node GH rocks!' --assignee zenorocha

Issue: Comment

Option Usage Type
-c, --comment Required String
-n, --number Required Number
--remote Optional String
-r, --repo Optional String
-u, --user Optional String

Examples

Comment on an issue of the current repository.

gh is 1 --comment 'Node GH rocks!'

Comment on an issue using your default editor by passing an empty --comment (also works with an empty title)

gh is 1 --comment

Comment on an issue of a certain repository.

gh is 1 --comment 'Node GH rocks!' --user eduardolundgren --repo node-gh

Issue: Open or Close

Option Usage Type
-o, --open Required Boolean
-C, --close Required Boolean
-n, --number Required Number
--remote Optional String
-r, --repo Optional String
-u, --user Optional String

Examples

Open an issue.

gh is 1 --open

Close an issue.

gh is 1 --close

Close multiple issues.

gh is --close --number 1 --number 2

Open multiple issues.

gh is --open --number 1 --number 2

Open or close an issue that you've sent to someone.

gh is 1 --close --user eduardolundgren

Issue: List

Option Usage Type
-l, --list Required Boolean
-a, --all Optional Boolean
-A, --assignee Optional String
--date Optional String
-d, --detailed Optional Boolean
-L, --labels Optional String
-M, --milestone Optional [Number, String]
--remote Optional String
-r, --repo Optional String
-S, --state Optional [open, closed]
-u, --user Optional String

Examples

Shortcut for listing all issues on the current repository.

gh is

List all issues from all repositories.

gh is --list --all

List issues assigned to someone.

gh is --list --assignee zenorocha

List issues with link and content.

gh is --list --detailed

List only closed issues on the current repository.

gh is --list --state closed

List issues with a formatted date (Any string that the moment library's formatter accepts should work: https://momentjs.com/docs/#/displaying/format/).

gh is --list --date "dddd, MMMM Do YYYY, h:mm:ss a"

List issues filtered by milestone title.

gh is --list --milestone "milestone title"

List issues that contains labels todo and bug.

gh is --list --labels todo,bug

List all issues on a certain repository.

gh is --list --user eduardolundgren --repo node-gh

Issue: Open in Browser

Option Usage Type
-B, --browser Required Boolean
-n, --number Required Number
-u, --user Optional String
-r, --repo Optional String

Examples

Shortcut for opening GitHub issue page in the browser.

gh is 100

Open GitHub issue page in the browser.

gh is 100 --browser

Issue: Lock

Option Usage Type
--lock Required Boolean
--lock-reason Optional [off-topic, too heated, resolved, spam]
-n, --number Required Number
--remote Optional String
-r, --repo Optional String
-u, --user Optional String

Examples

Lock issue on the current repository.

gh is 1 --lock

Lock issue on the current repository with a reason.

gh is 1 --lock --lock-reason resolved
Option Usage Type
-s, --search Required Boolean
-a, --all Optional Boolean
-d, --detailed Optional Boolean
-r, --repo Optional String
-u, --user Optional String

Examples

Search issues in current repository

gh is --search 'term'

Search issues in all repositories for a user

gh is --all --user node-gh --search 'term'

Search issues in a repository for a user

gh is  --user node-gh --repo gh --search 'term'

Search issues in a repository for a user with link and content

gh is  --user node-gh --repo gh --search 'term'

Search issues with github filters

gh is  --user node-gh --repo gh --search 'updated:<=2013-05-24'

Issue: Assign

Option Usage Type
--assign Required Boolean
-A, --assignee Required String
-n, --number Required Number
-r, --repo Optional String
-u, --user Optional String

Examples

Assign an issue on the current repository to a user.

gh is --assign --assignee zenorocha --number 1

Assign an issue on a specific repository to a user.

gh is --assign --assignee zenorocha --number 1 --user eduardolundgren --repo gh

Repo

gh repo

Alias: gh re

Repo: Open in Browser

Option Usage Type
-B, --browser Required Boolean
-u, --user Optional String
-r, --repo Optional String

Examples

Shortcut for opening the GitHub repository page in the browser.

gh re

Open GitHub repository page in the browser.

gh re --browser --user eduardolundgren --repo node-gh

Repo: List

Option Usage Type
-l, --list Required Boolean
-d, --detailed Optional Boolean
-u, --user Optional String
-t, --type Optional [all, owner, public, private, member]
--date Optional String

Examples

List all repositories.

gh re --list

List all private repositories.

gh re --list --type private

List all repositories from someone.

gh re --list --user zenorocha

List open repositories with a formatted date (Any string that the moment library's formatter accepts should work: https://momentjs.com/docs/#/displaying/format/).

gh re --list --detailed --date "dddd, MMMM Do YYYY, h:mm:ss a"

Repo: Create

Option Usage Type
-N, --new Required String
-O, --organization Optional String
-c, --clone Optional Boolean
-t, --type Optional [private]
--init Optional Boolean
--gitignore Optional String
--homepage Optional String
--description Optional String

Examples

Create a new GitHub repository and clone on the current directory.

gh re --new foo --clone

Create a new GitHub repository based on the name of the current directory & init with a README

gh re --new --clone --init

Create a new GitHub repository for an organization.

gh re --new foo --organization node-gh

Create a new GitHub repository using .gitignore template for Ruby.

gh re --new gemified --gitignore Ruby

Create a new private repository on GitHub, initializing it with a initial commit of the README.

gh re --new foo --init --type private

Repo: Fork

Option Usage Type
-f, --fork Required String
-u, --user Required String
-O, --organization Optional String

Examples

Fork a GitHub repository.

gh re --fork repo --user user

Fork a GitHub repository into the node-gh organization.

gh re --fork repo --user user --organization node-gh

Repo: Delete

Option Usage Type
-D, --delete Required String
-u, --user Required String

Example

Delete a repository of the logged user.

gh re --delete foo

Repo: Clone

Option Usage Type
-c, --clone Required String
-r, --repo Required String
-O, --organization Optional String
-P, --protocol Optional String
-u, --user Optional String

If you have custom ssh config, you can add "api": { "ssh_host": "custom-name", ... } to your .gh.json file.

Examples

Clone a repository.

gh re --clone --repo gh

Clone a repository from a specific user using HTTPS protocol.

gh re --clone --user eduardolundgren --repo gh --protocol https

Repo: Create Label

Option Usage Type
-C, --color Required String
-L, --label Required Boolean
-N, --new Required String
-r, --repo Required String
-O, --organization Optional String
-u, --user Optional String

Examples

Create a label for a repository (color is a hex code with or without literal hex symbol).

gh re --label --new bug --color '#7057ff' --repo gh

Create a label for a user's repository.

gh re --label --new bug --color '#7057ff' --user eduardolundgren --repo gh

Repo: Delete Label

Option Usage Type
-L, --label Required Boolean
-D, --delete Required String
-r, --repo Required String
-O, --organization Optional String
-u, --user Optional String

Examples

Delete a label from a repository.

gh re --label --delete bug --repo gh

Delete a label from a user's repository.

gh re --label --delete bug --user eduardolundgren --repo gh

Repo: List Labels

Option Usage Type
-L, --label Required Boolean
-l, --list Required Boolean
-r, --repo Required String
-O, --organization Optional String
-u, --user Optional String

Examples

List labels for a repository.

gh re --label --list --repo gh

List labels for a user's repository.

gh re --label --list --user eduardolundgren --repo gh

Repo: Update Label

Option Usage Type
-C, --color Required String
-L, --label Required Boolean
-r, --repo Required String
-U, --update Required String
-O, --organization Optional String
-u, --user Optional String

Examples

Update a label for a repository (color is a hex code with or without literal hex symbol).

gh re --label --update bug --color color --repo gh

Update a label for a user's repository.

gh re --label --update bug --color color --user eduardolundgren --repo gh

Find repositories via various criteria. Repository search looks through the projects you have access to on GitHub. You can filter the results using GitHub's search qualifiers. Examples:

Option Usage Type
-s, --search Required Boolean
-d, --detailed Optional Boolean
-u, --user Optional String
-r, --repo Optional String
-O, --organization Optional String
-t, --type Optional [all, owner, public, private, member]

Examples

Search private repositories you have access to with the term "secret".

gh re --search secret --type private

OR

gh re --search secret is:private

Matches repositories from GitHub org showing detailed results.

gh re --detailed -o github --search octocat

OR

gh re --detailed --search octocat org:github

Gists

gh gists

Alias: gh gi

Gist: Open in Browser

Option Usage Type
-B, --browser Required Boolean
-u, --user Optional String
-i, --id Optional String

Examples

Shortcut for opening your Gists in the browser.

gh gi

Open a Gist in the browser.

gh gi --browser --id 5991877

Gist: List

Option Usage Type
-l, --list Required Boolean
-u, --user Optional String
--date Optional String

Examples

List all gists.

gh gi --list

List all gists from someone.

gh gi --list --user brunocoelho

List gists with a formatted date (Any string that the moment library's formatter accepts should work: https://momentjs.com/docs/#/displaying/format/).

gh gi --list --date "dddd, MMMM Do YYYY, h:mm:ss a"

Gist: Create

Option Usage Type
-N, --new Required String
-c, --content Optional String
-d, --description Optional String
-p, --private Optional Boolean

Examples

Create a Gist hello containing "Hello World".

gh gi --new hello --content "Hello World!"

Create a private Gist hello containing "Hello World".

gh gi --new hello --content "Hello World!" --private

Gist: Fork

Option Usage Type
-f, --fork Required String

Examples

Fork a Gist.

gh gi --fork 5444883

Gist: Delete

Option Usage Type
-D, --delete Required String

Example

Delete a Gist.

gh gi --delete 4252323

Delete multiple Gists.

gh gi --delete 4252321 --delete 4252322

User

gh user

Alias: gh us

User: Login or Logout

Option Usage Type
-l, --login Required Boolean
-L, --logout Required Boolean

Examples

Automates saving user name & generating developer token credentials to your ~/.gh.json config

  • This is the the user that will be used if you do not manually pass in --user username
  • After you are logged in, you should no longer be prompted to go through the login process again
  • Alternatively you can create your own developer key and copy and paste it
    • First add a file in your home directory called ~/.gh.json
    • You can use the default.gh.json file in our repo as a template
    • Create a developer key: with these scopes: ['user', 'public_repo', 'repo', 'repo:status', 'delete_repo', 'gist']
    • Then copy & paste your token in the file at: "github_token"
    • Write your user name at "github_user"
gh user --login

Automates removing user name & developer token credentials to your ~/.gh.json config

gh user --logout

User: Whoami

Option Usage Type
-w, --whoami Required Boolean

Examples

Prints the user name from ~/.gh.json to your console.

gh user --whoami

Milestones

gh milestone

Alias: gh ms

Milestone: List

Option Usage Type
-l, --list Required Boolean
-u, --user Required String
-a, --all Required Boolean
-r, --repo Optional String
-o, --organization Optional String

Examples

Shortcut for listing milestones for a specific repo.

gh ms

Listing milestones for a specific repo & user.

gh ms --list --user node-gh --repo gh

Listing all milestones for a specific organization.

gh ms --list --all --organization node-gh

Alias

This cmd provides something similar to shell aliases. If there are aliases in your .gh.json file, we will attempt to resolve the user, PR forwarder or PR submitter to your alias.

gh alias

Alias: gh al

Alias: List

Option Usage Type
-l, --list Required Boolean

Examples

Shortcut for listing aliases.

gh alias

List aliases.

gh alias --list

Alias: Add

Option Usage Type
-a, --add Required String
-u, --user Required String

Examples

Create alias for username.

gh alias --add zeno --user zenorocha

And use like:

gh pr --submit zeno -b master -t Title

Alias: Remove

Option Usage Type
-r, --remove Required String

Examples

Remove alias.

gh alias --remove zeno

Config

There are some pretty useful configurations that you can set on .gh.json. This file can be found under home directory (on MacOSx: /Users/yourName/.gh.json on Windows: C:\\Users\yourName\.gh.json).

You can also set per-project configurations by adding a .gh.json file in your project's root folder and overriding existing keys.

GitHub API configurations.

Change it if you're a GitHub Enterprise user.

"api": {
    "host": "github.mydomain.com",
    "protocol": "https"
}

Set Pagination Rules

  • For list based commands (like listing prs, issues, or repos) we default to 30
  • That means if you ran gh pr you would see a max of 30 pull requests
  • If you would like to see more, we will prompt you in your terminal to see the next batch
  • You can set your page size up from 1 to 100
"page_size": 77
  • If you want to remove the limit & set it to the maximum, use an empty string
"page_size": ""

Set default branch and remote.

"default_branch": "master",
"default_remote": "origin"

Set default users

For submitting or forwarding pull requests.

"default_pr_forwarder": "",
"default_pr_reviewer": ""

Update GitHub credentials manually

"github_token": "your_dev_token",
"github_user": "username"

Run automated tasks before or after a certain command.

"hooks": {
        "pull-request": {
            "merge": {
                "before": [{"cmd": "ls -la", "log": true}],
                "after": [
                    "gh pr {{options.number}} --comment 'Thank you, pull request merged :D'"
                ]
            }
        }
}

Run automated tasks passing arguments to the commands.

Required for prompt commands.

"hooks": {
        "pull-request": {
            "merge": {
                "before": [{"cmd": "foo", "args": ["bar", "qux"]}]
            }
        }
}

Set default branch name prefix for PR fetching.

"pull_branch_name_prefix": "pr-"

Set default editor to use when creating a new message

  • For certain tasks like opening a pull request when you omit the title or description, we will open a new file for you to create the message in.
  • We first check enviroment variables for the default editor: $EDITOR or $VISUAL and fallback to the default git editor git config --global core.editor
  • To disable this functionality of opening your editor add "use_editor": false to ~/.gh.json

Insert signature below issue comment.

"signature": "<br><br>:octocat: *Sent from [GH](http://nodegh.io).*"

Turn off ssh when pulling a repo and use https instead.

"ssh": false,

If you need to use a custom git command, set the environment variable GH_GIT_COMMAND.

Plugins

GH Gif - A plugin for commenting on pull requests/issues using GIF reactions. GH Travis - A plugin for integrating Travis, a continous integration server. GH Jira - A plugin for integrating Jira, an issue management system.

Feel free to create your own plugins by forking GH Boilerplate.

Related repositories
521xueweihan/HelloGitHub

:octocat: ๅˆ†ไบซ GitHub ไธŠๆœ‰่ถฃใ€ๅ…ฅ้—จ็บง็š„ๅผ€ๆบ้กน็›ฎใ€‚Share interesting, entry-level open source projects on GitHub.

PythonPyPIgithubhellogithub
hellogithub.com
166.5k12.4k
Asabeneh/30-Days-Of-Python

The 30 Days of Python programming challenge is a step-by-step guide to learn the Python programming language in 30 days. This challenge may take more than 100 days. Follow your own pace. These videos may help too: https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw

PythonPyPI30-days-of-pythonpython
68.8k12.8k
tiimgreen/github-cheat-sheet

A list of cool features of Git and GitHub.

MIT Licenseawesomeawesome-list
git.io/sheet
58k5.4k
go-gitea/gitea

Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD

GoGo ModulesMIT Licensegiteagolang
gitea.com
57k6.9k
GitHubDaily/GitHubDaily

ๅšๆŒๅˆ†ไบซ GitHub ไธŠ้ซ˜่ดจ้‡ใ€ๆœ‰่ถฃๅฎž็”จ็š„ๅผ€ๆบๆŠ€ๆœฏๆ•™็จ‹ใ€ๅผ€ๅ‘่€…ๅทฅๅ…ทใ€็ผ–็จ‹็ฝ‘็ซ™ใ€ๆŠ€ๆœฏ่ต„่ฎฏใ€‚A list cool, interesting projects of GitHub.

githubopen-source
githubdaily.com
47.1k4.7k
SimplifyJobs/Summer2026-Internships

Summer 2026 software engineering, data science, AI, quant, product management, and hardware internship postings. Updated daily by Simplify and Pitt CSC.

PythonPyPIinterview-preparationinternships
swelist.com
45.5k3.2k
refined-github/refined-github

:octocat: Browser extension that simplifies the GitHub interface and adds useful features

TypeScriptnpmMIT Licensechrome-extensiongithub
31.8k1.8k
github/github-mcp-server

GitHub's official MCP Server

GoGo ModulesMIT Licensegithubmcp
31.6k4.6k
abhisheknaiidu/awesome-github-profile-readme

๐Ÿ˜Ž A curated list of awesome GitHub Profile which updates in real time

Creative Commons Zero v1.0 Universalawesome-listawesome
bit.ly/awesome-gh
30.6k4.4k
521xueweihan/GitHub520

:kissing_heart: ่ฎฉไฝ โ€œ็ˆฑโ€ไธŠ GitHub๏ผŒ่งฃๅ†ณ่ฎฟ้—ฎๆ—ถๅ›พ่ฃ‚ใ€ๅŠ ่ฝฝๆ…ข็š„้—ฎ้ข˜ใ€‚๏ผˆๆ— ้œ€ๅฎ‰่ฃ…๏ผ‰

PythonPyPIdnsgithub
29.2k2.7k
maboloshi/github-chinese

GitHub ๆฑ‰ๅŒ–ๆ’ไปถ๏ผŒGitHub ไธญๆ–‡ๅŒ–็•Œ้ขใ€‚ (GitHub Translation To Chinese)

JavaScriptnpmGNU General Public License v3.0githubuserscript
maboloshi.github.io/github-chinese/
29.1k1.7k
sdras/awesome-actions

A curated list of awesome actions to use on GitHub

Creative Commons Zero v1.0 Universalawesomegithub
28.1k1.7k