Coder Social home page Coder Social logo

gh-copilot's Introduction

GitHub Copilot in the CLI

GitHub Copilot in the CLI is an extension for GitHub CLI which provides a chat-like interface in the terminal that allows you to ask questions about the command line. You can ask Copilot in the CLI to suggest a command for your use case with gh copilot suggest, or to explain a command you're curious about with gh copilot explain.

For more information on use cases, enabling, and limitations, see "GitHub Copilot in the CLI".

For more information on what data is collected, used, and shared, see "Privacy Policies".

Quickstart

Note

To use and install GitHub Copilot in the CLI, you must have an active GitHub Copilot subscription and have GitHub CLI installed.

  1. Authenticate with GitHub CLI OAuth app
    gh auth login --web -h github.com
  2. Install / upgrade extension
    gh extension install github/gh-copilot --force
  3. Suggest a command
    gh copilot suggest "Install and configure git lfs"
  4. Explain a command
    gh copilot explain 'git lfs migrate import --everything --include="*.gz,*.png,*.jar"'

Usage

$ gh copilot --help
Your AI command line copilot.

Usage:
  copilot [command]

Examples:

$ gh copilot suggest "Install git"
$ gh copilot explain "traceroute github.com"


Available Commands:
  alias       Generate shell-specific aliases for convenience
  config      Configure options
  explain     Explain a command
  suggest     Suggest a command

Flags:
  -h, --help              help for copilot
      --hostname string   The GitHub host to use for authentication
  -v, --version           version for copilot

Use "copilot [command] --help" for more information about a command.

Multi-account notes

Multi-account users can use --hostname flag or GH_HOST environment variable to specify the GitHub hostname for commands that would otherwise assume the github.com host.

Set up optional helpers

Is gh copilot suggest ... too many keystrokes? Do you want support for executing suggestions and keeping them in history?

v1.0.0 introduces gh copilot alias, which generates shell configuration for ghcs and ghce aliases that wrap gh copilot suggest and gh copilot explain. These aliases provide faster invocation and support executing suggested commands if applicable. Executed suggestions are added to your shell history for reuse later.

$ ghcs print "Hello world"

Welcome to GitHub Copilot in the CLI!
version 1.0.0 (2024-03-21)

I'm powered by AI, so surprises and mistakes are possible. Make sure to verify any generated code or suggestions, and share feedback so that we can learn and improve. For more information, see https://gh.io/gh-copilot-transparency

Suggestion:

  echo "Hello world"

? Select an option
> Execute command

? Are you sure you want to execute the suggested command?
> Yes

Hello world

To setup these optional helpers, see below for setup instructions for supported shells:

For more information, run gh copilot alias --help.

For changing the execute command confirmation behavior, run gh copilot config to change Default value for confirming command execution.

Bash

echo 'eval "$(gh copilot alias -- bash)"' >> ~/.bashrc

PowerShell

Note

PowerShell users might need to update the file containing gh-copilot helpers after updating the extension.

$GH_COPILOT_PROFILE = Join-Path -Path $(Split-Path -Path $PROFILE -Parent) -ChildPath "gh-copilot.ps1"
gh copilot alias -- pwsh | Out-File ( New-Item -Path $GH_COPILOT_PROFILE -Force )
echo ". `"$GH_COPILOT_PROFILE`"" >> $PROFILE

Zsh

echo 'eval "$(gh copilot alias -- zsh)"' >> ~/.zshrc

Metrics sent to GitHub

GitHub Copilot in the CLI sends certain metrics to our analytics system. We want you to understand what is being sent and why it's important to our ability to continue to improve the product and provide you with a better experience over time.

Why do we need usage stats?

Our team uses metrics to prioritize our work and evaluate whether we are successful in solving real user problems after we've released something. For example, when we release a new version and see a spike in exceptions and response ratings, we want to understand if there is a regression or a platform issue causing problems.

The more people who opt in to send usage stats, the more information we have to base our decision-making on. And if you want us to take your use cases into consideration, we hope you'll opt in so we get a better idea of how you use the app and whether or not it's meeting your needs. GitHub Copilot in the CLI will send a payload in the format below to our analytics system unless you've opted out. We are very sensitive to the privacy of our users and we never look at the data of specific individuals, but rather only examine aggregate data and trends to inform our product decisions.

You can change your opt-in setting at any time in gh copilot config:

$ gh copilot config

Welcome to GitHub Copilot CLI!
version 0.3.0-beta (2023-10-31)

I'm powered by AI, so surprises and mistakes are possible. Make sure to verify any generated code or suggestions, and share feedback so that we can learn and improve.

? What would you like to configure?
> Optional Usage Analytics

? Allow GitHub to collect optional usage data to help us improve? This data does not include your queries.  [Use arrows to move, type to filter]
> Yes
  No

Example usage stats

{
	"platform": "darwin",
	"architecture": "arm64",
	"version": "1.1.0",
	"custom_event": "true",
	"event_parent_command": "explain",
	"event_name": "Explain",
	"sha": "089a53215fc4383179869f7f6132ce9d6e58754a",
	"thread_id": "e61d0d08-f6ba-465b-81cf-c30fd9127d70",
	"host": "github.com"
}

gh-copilot's People

Contributors

andyfeller avatar eliperkins avatar github-actions[bot] avatar josebalius avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.