GitHub Next Logo

Copilot for CLI

Ever having trouble remembering shell commands and flags for this or that? Ever wish you could just say what you want the shell to do? Don't worry: we're building GitHub Copilot assistance right into your terminal.

What's it for?
Translating natural language to terminal commands
Stage
Product
Who made it?
Share
This is a concluded exploration by GitHub Next.
GitHub may or or may not release products related to this research in the future.

The Copilot for CLI technical preview ended on March 21, 2024.

GitHub Copilot in the CLI is now generally available.

The terminal is a powerful place: In a single line of arcane shell magic, you can transform files and parse data at will. But it can take many years of regular use to become a shell wizard. Even with solid proficiency, most of us regularly need to optimistically type --help or scroll through man pages. Oftentimes, you simply turn to a web search, hopefully finding something like a relevant StackOverflow answer that can get you to the next step.

What if you had a shell wizard by your side, with comprehensive knowledge of flags and the entire AWK language? When you needed something more complicated than cd myrepo, you could turn to this guru and just ask - in regular, human language, what you wanted to get done!

Three modes of interaction

Copilot for CLI provides three shell commands: ??, git? and gh?:

  • ?? is meant as the general-purpose goto for arbitrary shell commands. It will compose commands and loops, and throw around obscure find flags to satisfy your query.
Video walkthrough of the "??" CLI command.
  • git? is used for searching specifically for git invocations. Compared to ?? it will be more powerful at generating Git commands, and your queries can be more succinct when you don't need to explain that you're in the context of Git.
Video walkthrough of the "git?" CLI command.
  • gh? combines the power of the GitHub CLI command and query interface with the convenience of having AI generate the complicated flags and jq expressions for you.
Video walkthrough of the "gh?" CLI command.