GitHub CLI hits 1.0

GitHub has officially released version 1.0 of its command-line interface, available now for Windows, macOS, and Linux. The tool, which entered beta earlier this year, is designed to bring the entire GitHub workflow into the terminal, reducing the need to switch between browser and command line. According to GitHub, beta users created more than 250,000 pull requests, performed over 350,000 merges, and opened over 20,000 issues using the CLI.

From cloning to release without leaving the shell

GitHub CLI 1.0 is built around covering the full development cycle. Users can clone a repository with gh repo clone owner/repo, then inspect what needs attention using gh issue status or gh issue list --assignee billygriffin.

Once a change is ready, gh pr create opens a pull request, while teammates can review it via gh pr checkout 1337, gh pr diff, and gh pr review. Before merging, gh pr checks verifies that tests are passing, and gh pr merge completes the process, with the CLI offering to delete the local branch and the remote one on GitHub.com.

Releases are also handled from the terminal with gh release create [tag name].

Extending the CLI with aliases and the API

Version 1.0 introduces gh alias set, which lets users define custom aliases for any command. Combined with gh api—which provides direct access to the GitHub API—commands can be chained and scripted to fit individual workflows. For example, sharing aliases is as simple as piping gh alias list into gh gist create.

Enterprise Server support arrives

GitHub CLI now works with repositories hosted on GitHub Enterprise Server 2.20 and later, a feature that was the most frequently requested during the beta period.

Community-driven changes

The project has drawn contributions from over 100 developers in its open source repository, though GitHub notes this milestone would not have been possible without the feedback received during the beta period.

Based on that feedback, several capabilities were added during beta, including creating and viewing repositories, configuring SSH and a preferred editor, closing and reopening issues and pull requests, adding labels and assignees, and viewing diffs, reviewing, and merging pull requests. Future releases are planned to include support for editing issues and pull requests as well as adding comments.