Skip to content
Closed

Yy #1576

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
136 commits
Select commit Hold shift + click to select a range
91ce861
Update changelog for releases 0.0.357 and 0.0.358
devm33 Nov 15, 2025
2b9779b
Update changelog.md for version 0.0.359
github-actions[bot] Nov 17, 2025
ab59c65
Update changelog.md for version 0.0.360
github-actions[bot] Nov 18, 2025
46f34fc
Update changelog.md for version 0.0.361
github-actions[bot] Nov 18, 2025
5ac1642
Update changelog.md for version 0.0.362
github-actions[bot] Nov 20, 2025
ed08ac1
Update changelog.md for version 0.0.363
github-actions[bot] Nov 24, 2025
4486417
Fix formatting and punctuation in README.md
andyfeller Nov 24, 2025
771f1d7
Update changelog.md for version 0.0.364
github-actions[bot] Nov 25, 2025
29aafbe
Update changelog.md for version 0.0.366
github-actions[bot] Dec 3, 2025
d9e12af
Add workflow to automatically submit to Winget
Trenly Dec 4, 2025
12e8630
Update changelog.md for version 0.0.367
github-actions[bot] Dec 5, 2025
6fba102
Merge pull request #722 from Trenly/WingetWorkflow
devm33 Dec 5, 2025
2e74346
Add WinGet command to README (#724)
Trenly Dec 5, 2025
9902479
add Homebrew install to README
krehel Dec 9, 2025
acfad01
Merge pull request #740 from krehel/add-homebrew-install
devm33 Dec 9, 2025
cd59500
Update changelog.md for version 0.0.368
github-actions[bot] Dec 10, 2025
1170873
Update changelog.md for version 0.0.369
github-actions[bot] Dec 11, 2025
1a4d63b
Update winget.yml to use app access token
devm33 Dec 12, 2025
44a9767
Merge pull request #764 from github/devm33/winget-app
devm33 Dec 12, 2025
1190c65
Add installation script
devm33 Dec 12, 2025
bbcca4a
Update installation instructions
devm33 Dec 12, 2025
d9c5018
Clean up leftover install dir
devm33 Dec 12, 2025
cf6859a
Grammar
devm33 Dec 12, 2025
4e028d9
Remove duplicate trailing slash
devm33 Dec 12, 2025
56c9ed8
Use tar -C instead of cd
devm33 Dec 12, 2025
f5f4c27
Always run mkdirp on install dir
devm33 Dec 12, 2025
82b6ca7
Fix download path check
devm33 Dec 12, 2025
5bf6153
Update install.sh
devm33 Dec 12, 2025
7c75e17
Update install.sh
devm33 Dec 12, 2025
b344a06
Document PREFIX
devm33 Dec 12, 2025
a77f445
Reorder for clarity maybe
devm33 Dec 12, 2025
6990535
Error to stderr
devm33 Dec 12, 2025
673aef0
Update install.sh
devm33 Dec 12, 2025
01b4b11
Update install.sh
devm33 Dec 12, 2025
fa43ed3
Clarify
devm33 Dec 12, 2025
6f30578
Add notice
devm33 Dec 12, 2025
8edeb17
Update install.sh
devm33 Dec 12, 2025
433ff32
Update install.sh
devm33 Dec 12, 2025
c7f74d9
Remove download dir
devm33 Dec 12, 2025
1b8ba1d
Document running as root with sudo
devm33 Dec 12, 2025
c068e98
Reorganize
devm33 Dec 12, 2025
fe9686a
Attempt to use winget
devm33 Dec 12, 2025
791b545
Add comment
devm33 Dec 12, 2025
29bedd3
Merge pull request #772 from github/devm33/install
devm33 Dec 12, 2025
c8b4af0
Allow specifying a version for the install script
devm33 Dec 12, 2025
dc98c1b
Merge pull request #773 from github/devm33/install-pinned
devm33 Dec 12, 2025
3cda173
Add example for installing a specific version in README
devm33 Dec 12, 2025
c346aa2
Merge pull request #775 from github/devm33/doc-install-version
devm33 Dec 12, 2025
0462850
Add prerelease options to installation docs
devm33 Dec 13, 2025
312222a
Merge pull request #776 from github/devm33/install-prereleases
devm33 Dec 13, 2025
ae3eb91
Add checksum validation to install script
devm33 Dec 16, 2025
1d69e65
Use checksum file directly instead of grepping
devm33 Dec 16, 2025
b808518
Refactor installation script to use temporary directory for downloads…
devm33 Dec 16, 2025
e5349eb
Merge pull request #794 from github/devm33/checksum
devm33 Dec 17, 2025
812c707
Revert "Update winget.yml to use app access token"
devm33 Dec 17, 2025
6118464
Merge pull request #805 from github/revert-764-devm33/winget-app
devm33 Dec 17, 2025
fbe38b0
Use string comparison to check the result of variable expansion
Trenly Dec 18, 2025
8638f81
Merge pull request #806 from Trenly/Truthy
devm33 Dec 18, 2025
2ba3d6c
Update changelog.md for version 0.0.370
github-actions[bot] Dec 18, 2025
ec0cc3d
Update changelog.md for version 0.0.371
github-actions[bot] Dec 18, 2025
f5256c6
Update changelog.md for version 0.0.372
github-actions[bot] Dec 19, 2025
8a0dd1a
Update changelog.md for version 0.0.373
github-actions[bot] Dec 30, 2025
de4f425
Update prerequisites in README.md
devm33 Jan 2, 2026
f2b2e64
Merge pull request #873 from github/devm33/update-prereqs
devm33 Jan 2, 2026
1fdb02f
Update changelog.md for version 0.0.374
github-actions[bot] Jan 2, 2026
026e2b7
Update changelog.md for version 0.0.375
github-actions[bot] Jan 7, 2026
2421059
Update changelog.md for version 0.0.376
github-actions[bot] Jan 8, 2026
7797f81
Update changelog.md for version 0.0.377
github-actions[bot] Jan 8, 2026
e17cea2
Update changelog.md for version 0.0.380
github-actions[bot] Jan 13, 2026
6850b52
Update changelog.md for version 0.0.381
github-actions[bot] Jan 13, 2026
82d8045
Update changelog.md for version 0.0.382
github-actions[bot] Jan 14, 2026
13811b7
Update copyright year in LICENSE.md to 2026
RyanHecht Jan 14, 2026
f6a1b0d
Merge pull request #969 from github/RyanHecht-patch-1
devm33 Jan 14, 2026
b62368e
Update changelog.md for version 0.0.384
github-actions[bot] Jan 16, 2026
8615617
Update changelog.md for version 0.0.385
github-actions[bot] Jan 19, 2026
83e40d9
Update changelog.md for version 0.0.386
github-actions[bot] Jan 19, 2026
933aa2f
Update changelog.md for version 0.0.387
github-actions[bot] Jan 20, 2026
1c4b5b0
Update changelog.md for version 0.0.388
github-actions[bot] Jan 20, 2026
993cd5b
Update to MIT license
patniko Jan 21, 2026
3fa6453
Merge pull request #1039 from github/mit-license
patniko Jan 21, 2026
a949dc9
Check if copilot is available instead of parsing PATH
devm33 Jan 21, 2026
9880c60
Prompt to add to shell config file
devm33 Jan 21, 2026
24a3d00
Fix PATH handling in install script
devm33 Jan 21, 2026
481b756
Merge pull request #1049 from github/devm33/install-path
devm33 Jan 21, 2026
f746607
Update LICENSE.md
patniko Jan 21, 2026
8e1fb04
Merge pull request #1055 from github/patniko-patch-1
patniko Jan 21, 2026
bc44fc1
Allow installing prerelease CLI with `install.sh`
ellismg Jan 21, 2026
220df9d
Merge pull request #1058 from github/ellismg/support-prerelease-for-i…
ellismg Jan 22, 2026
80859fc
Update changelog.md for version 0.0.389
github-actions[bot] Jan 22, 2026
cf2d163
Correct changelog
JasonEtco Jan 22, 2026
2d5b487
Merge pull request #1060 from github/fix-changelog
devm33 Jan 22, 2026
7e5e619
Change splash screen image for Copilot CLI
devm33 Jan 22, 2026
800ee0d
Change splash screen image for Copilot CLI
devm33 Jan 22, 2026
8409aaf
Merge pull request #1066 from github/devm33-patch-1
devm33 Jan 22, 2026
d3fe864
Update changelog.md for version 0.0.390
github-actions[bot] Jan 22, 2026
9497418
Update LICENSE.md
RyanHecht Jan 22, 2026
bac618d
Merge pull request #1078 from github/RyanHecht-patch-1
RyanHecht Jan 22, 2026
7b4edbe
Update changelog.md for version 0.0.392
github-actions[bot] Jan 22, 2026
51adfe9
Update changelog.md for version 0.0.393
github-actions[bot] Jan 23, 2026
c8cf7c5
Update changelog.md for version 0.0.394
github-actions[bot] Jan 24, 2026
94b3b38
Update changelog.md for version 0.0.395
github-actions[bot] Jan 26, 2026
01c23fd
Update changelog.md for version 0.0.396
github-actions[bot] Jan 27, 2026
cb0f07c
Update changelog.md for version 0.0.397
github-actions[bot] Jan 28, 2026
fae0bf9
Update changelog.md for version 0.0.398
github-actions[bot] Jan 28, 2026
b1da3d0
Update changelog.md for version 0.0.399
github-actions[bot] Jan 29, 2026
1bc2c29
Update changelog.md for version 0.0.400
github-actions[bot] Jan 30, 2026
a5797c9
docs: add LSP server configuration guide to README
SDSLeon Feb 1, 2026
c13a41d
Update LSP section in README to remove experimental flag info
SDSLeon Feb 2, 2026
572d0f0
docs: add experimental mode section to README
jmoseley Feb 2, 2026
c01eb7a
Merge pull request #1234 from SDSLeon/lsp-config-readme
jmoseley Feb 2, 2026
cc589c4
Update README.md
jmoseley Feb 2, 2026
14f81e8
Merge pull request #1253 from github/jm/experimental
jmoseley Feb 2, 2026
7aff586
Update changelog.md for version 0.0.401
github-actions[bot] Feb 3, 2026
369f5d8
Update changelog.md for version 0.0.402
github-actions[bot] Feb 3, 2026
1706358
Update changelog.md for version 0.0.403
github-actions[bot] Feb 5, 2026
5b0f119
Update changelog.md for version 0.0.404
github-actions[bot] Feb 5, 2026
a7b0205
Update changelog.md for version 0.0.405
github-actions[bot] Feb 5, 2026
8218a02
Update changelog.md for version 0.0.406
github-actions[bot] Feb 7, 2026
2e925bf
Update changelog.md for version 0.0.407
github-actions[bot] Feb 11, 2026
4f22781
Update changelog.md for version 0.0.408
github-actions[bot] Feb 12, 2026
0e73701
Update changelog.md for version 0.0.409
github-actions[bot] Feb 12, 2026
e0ec58f
Update changelog.md for version 0.0.410
github-actions[bot] Feb 14, 2026
8d7e467
Add PowerShell dependency to winget manifests
SteveSandersonMS Feb 17, 2026
d162399
Address CR feedback: add error handling and fix newline
SteveSandersonMS Feb 17, 2026
1c1181d
Add PowerShell dependency to winget manifests
SteveSandersonMS Feb 17, 2026
f774d4a
Update changelog.md for version 0.0.411
github-actions[bot] Feb 17, 2026
01bbd9c
Revert "Add PowerShell dependency to winget manifests"
devm33 Feb 19, 2026
befad01
Merge pull request #1548 from github/revert-1497-add-powershell-depen…
devm33 Feb 19, 2026
ee89712
Add PowerShell dependency to winget manifests
SteveSandersonMS Feb 19, 2026
2b85d56
Merge pull request #1549 from github/stevesa/powershell-dependency-again
devm33 Feb 19, 2026
3d5d990
Update changelog.md for version 0.0.412
github-actions[bot] Feb 19, 2026
404957e
Revert "Add PowerShell dependency to winget manifests"
devm33 Feb 19, 2026
c87310d
Merge pull request #1551 from github/revert-1549-stevesa/powershell-d…
SteveSandersonMS Feb 20, 2026
f03da3f
Add PowerShell dependency to winget manifests
SteveSandersonMS Feb 19, 2026
4884994
Fix the winget submission script
SteveSandersonMS Feb 20, 2026
906ad6f
Merge pull request #1557 from github/stevesa/powershell-dependency-v3
SteveSandersonMS Feb 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 66 additions & 0 deletions .github/workflows/winget.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: Submit release to the WinGet community repository

on:
release:
types: [published]

jobs:
publish-winget:
name: Submit to WinGet repository

# GitHub token permissions needed for winget-create to submit a PR
permissions:
contents: read
pull-requests: write

# winget-create is only supported on Windows
runs-on: windows-latest

# winget-create will read the following environment variable to access the GitHub token needed for submitting a PR
# See https://aka.ms/winget-create-token
env:
WINGET_CREATE_GITHUB_TOKEN: ${{ secrets.WINGET_CREATE_GITHUB_TOKEN }}

steps:
- name: Submit package using wingetcreate
run: |
# Set the package ID based on the release info
$packageId = if ('${{ !github.event.release.prerelease }}' -eq 'true') { 'GitHub.Copilot' } else { 'GitHub.Copilot.Prerelease' }

# Get installer info from release event
$assets = '${{ toJSON(github.event.release.assets) }}' | ConvertFrom-Json
$packageVersion = (${{ toJSON(github.event.release.tag_name) }})

# Find the download URLs for the x64 and arm64 installers separately
# This allows overrides to be used so that wingetcreate does not have to guess the architecture from the filename
$installerUrlx64 = $assets | Where-Object -Property name -like '*win32-x64.zip' | Select-Object -ExpandProperty browser_download_url
$installerUrlarm64 = $assets | Where-Object -Property name -like '*win32-arm64.zip' | Select-Object -ExpandProperty browser_download_url

# Update package using wingetcreate
curl.exe -JLO https://aka.ms/wingetcreate/latest
.\wingetcreate.exe update $packageId `
--version $packageVersion `
--urls "$installerUrlx64|x64" "$installerUrlarm64|arm64" `
--out manifests

# Add PowerShell dependency to installer manifest
$installerManifest = Get-ChildItem -Path manifests -Filter "*.installer.yaml" -Recurse | Select-Object -First 1 -ExpandProperty FullName
if (-not $installerManifest) {
Write-Error "No installer manifest (*.installer.yaml) was found in the 'manifests' directory."
exit 1
}
$content = Get-Content -Path $installerManifest -Raw
$dependency = @"
Dependencies:
PackageDependencies:
- PackageIdentifier: Microsoft.PowerShell
MinimumVersion: "7.0.0"
"@
# Remove existing top-level Dependencies block (if any), then insert ours
$content = $content -replace '(?m)^Dependencies:\r?\n([ ]+.+\r?\n)*', ''
$content = $content -replace '(?m)^Installers:', "$dependency`nInstallers:"
Set-Content -Path $installerManifest -Value $content

# Submit the modified manifest
$manifestPath = Split-Path $installerManifest
.\wingetcreate.exe submit $manifestPath
36 changes: 35 additions & 1 deletion LICENSE.md
Original file line number Diff line number Diff line change
@@ -1 +1,35 @@
Copyright (c) GitHub 2025. All rights reserved. Use is subject to GitHub's [Pre-release License Terms](https://docs.github.com/en/site-policy/github-terms/github-pre-release-license-terms)
GitHub Copilot CLI License

1. License Grant
Subject to the terms of this License, GitHub grants you a non‑exclusive, non‑transferable, royalty‑free license to install and run copies of the GitHub Copilot CLI (the “Software”). Subject to Section 2 below, GitHub also grants you the right to reproduce and redistribute unmodified copies of the Software as part of an application or service.

2. Redistribution Rights and Conditions
You may reproduce and redistribute the Software only in accordance with all of the following conditions:
The Software is distributed only in unmodified form;
The Software is redistributed solely as part of an application or service that provides material functionality beyond the Software itself;
The Software is not distributed on a standalone basis or as a primary product;
You include a copy of this License and retain all applicable copyright, trademark, and attribution notices; and
Your application or service is licensed independently of the Software.
Nothing in this License restricts your choice of license for your application or service, including distribution under an open source license. This License applies solely to the Software and does not modify or supersede the license terms governing your application or its source code.

3. Scope Limitations
This License does not grant you the right to:
Modify, adapt, translate, or create derivative works of the Software;
Redistribute the Software except as expressly permitted in Section 2;
Remove, alter, or obscure any proprietary notices included in the Software; or
Use GitHub trademarks, logos, or branding except as necessary to identify the Software.

4. Reservation of Rights
GitHub and its licensors retain all right, title, and interest in and to the Software. All rights not expressly granted by this License are reserved.

5. Disclaimer of Warranty
THE SOFTWARE IS PROVIDED “AS IS,” WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING WITHOUT LIMITATION WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON‑INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF USE OF THE SOFTWARE REMAINS WITH YOU.

6. Limitation of Liability
TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL GITHUB OR ITS LICENSORS BE LIABLE FOR ANY DAMAGES ARISING OUT OF OR RELATING TO THIS LICENSE OR THE USE OR DISTRIBUTION OF THE SOFTWARE, WHETHER IN CONTRACT, TORT, OR OTHERWISE.

7. Termination
This License terminates automatically if you fail to comply with its terms. Upon termination, you must cease all use and distribution of the Software.

8. Notice Regarding GitHub Services (Informational Only)
Use of the Software may require access to GitHub services and is subject to the applicable GitHub Terms of Service and GitHub Copilot terms. This License governs only rights related to the Software and does not grant any rights to access or use GitHub services.
124 changes: 116 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ GitHub Copilot CLI brings AI-powered coding assistance directly to your command

See [our official documentation](https://docs.github.com/copilot/concepts/agents/about-copilot-cli) for more information.

![Image of the splash screen for the Copilot CLI](https://github.com/user-attachments/assets/51ac25d2-c074-467a-9c88-38a8d76690e3)
![Image of the splash screen for the Copilot CLI](https://github.com/user-attachments/assets/f40aa23d-09dd-499e-9457-1d57d3368887)


## 🚀 Introduction and Overview

Expand All @@ -30,27 +31,75 @@ We're still early in our journey, but with your feedback, we're rapidly iteratin

### Prerequisites

- **Node.js** v22 or higher
- **npm** v10 or higher
- (On Windows) **PowerShell** v6 or higher
- An **active Copilot subscription**. See [Copilot plans](https://github.com/features/copilot/plans?ref_cta=Copilot+plans+signup&ref_loc=install-copilot-cli&ref_page=docs).

If you have access to GitHub Copilot via your organization of enterprise, you cannot use GitHub Copilot CLI if your organization owner or enterprise administrator has disabled it in the organization or enterprise settings. See [Managing policies and features for GitHub Copilot in your organization](http://docs.github.com/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-github-copilot-features-in-your-organization/managing-policies-for-copilot-in-your-organization) for more information.
If you have access to GitHub Copilot via your organization or enterprise, you cannot use GitHub Copilot CLI if your organization owner or enterprise administrator has disabled it in the organization or enterprise settings. See [Managing policies and features for GitHub Copilot in your organization](http://docs.github.com/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-github-copilot-features-in-your-organization/managing-policies-for-copilot-in-your-organization) for more information.

### Installation

Install globally with npm:
Install with [WinGet](https://github.com/microsoft/winget-cli) (Windows):

```bash
winget install GitHub.Copilot
```

```bash
winget install GitHub.Copilot.Prerelease
```

Install with [Homebrew](https://formulae.brew.sh/cask/copilot-cli) (macOS and Linux):

```bash
brew install copilot-cli
```

```bash
brew install copilot-cli@prerelease
```

Install with [npm](https://www.npmjs.com/package/@github/copilot) (macOS, Linux, and Windows):

```bash
npm install -g @github/copilot
```

```bash
npm install -g @github/copilot@prerelease
```

Install with the install script (macOS and Linux):

```bash
curl -fsSL https://gh.io/copilot-install | bash
```

Or

```bash
wget -qO- https://gh.io/copilot-install | bash
```

Use `| sudo bash` to run as root and install to `/usr/local/bin`.

Set `PREFIX` to install to `$PREFIX/bin/` directory. Defaults to `/usr/local`
when run as root or `$HOME/.local` when run as a non-root user.

Set `VERSION` to install a specific version. Defaults to the latest version.

For example, to install version `v0.0.369` to a custom directory:

```bash
curl -fsSL https://gh.io/copilot-install | VERSION="v0.0.369" PREFIX="$HOME/custom" bash
```

### Launching the CLI

```bash
copilot
```

On first launch, you'll be greeted with our adorable animated banner! If you'd like to see this banner again, launch `copilot` with the `--banner` flag.
On first launch, you'll be greeted with our adorable animated banner! If you'd like to see this banner again, launch `copilot` with the `--banner` flag.

If you're not currently logged in to GitHub, you'll be prompted to use the `/login` slash command. Enter this command and follow the on-screen instructions to authenticate.

Expand All @@ -65,14 +114,73 @@ You can also authenticate using a fine-grained PAT with the "Copilot Requests" p

### Using the CLI

Launch `copilot` in a folder that contains code you want to work with.
Launch `copilot` in a folder that contains code you want to work with.

By default, `copilot` utilizes Claude Sonnet 4.5. Run the `/model` slash command to choose from other available models, including Claude Sonnet 4 and GPT-5.

### Experimental Mode

By default, `copilot` utilizes Claude Sonnet 4.5. Run the `/model` slash command to choose from other available models, including Claude Sonnet 4 and GPT-5
Experimental mode enables access to new features that are still in development. You can activate experimental mode by:

- Launching with the `--experimental` flag: `copilot --experimental`
- Using the `/experimental` slash command from within the CLI

Once activated, the setting is persisted in your config, so the `--experimental` flag is no longer needed on subsequent launches.

#### Experimental Features

- **Autopilot mode:** Autopilot is a new mode (press `Shift+Tab` to cycle through modes), which encourages the agent to continue working until a task is completed.

Each time you submit a prompt to GitHub Copilot CLI, your monthly quota of premium requests is reduced by one. For information about premium requests, see [About premium requests](https://docs.github.com/copilot/managing-copilot/monitoring-usage-and-entitlements/about-premium-requests).

For more information about how to use the GitHub Copilot CLI, see [our official documentation](https://docs.github.com/copilot/concepts/agents/about-copilot-cli).

## 🔧 Configuring LSP Servers

GitHub Copilot CLI supports Language Server Protocol (LSP) for enhanced code intelligence. This feature provides intelligent code features like go-to-definition, hover information, and diagnostics.

### Installing Language Servers

Copilot CLI does not bundle LSP servers. You need to install them separately. For example, to set up TypeScript support:

```bash
npm install -g typescript-language-server
```

For other languages, install the corresponding LSP server and configure it following the same pattern shown below.

### Configuring LSP Servers

LSP servers are configured through a dedicated LSP configuration file. You can configure LSP servers at the user level or repository level:

**User-level configuration** (applies to all projects):
Edit `~/.copilot/lsp-config.json`

**Repository-level configuration** (applies to specific project):
Create `.github/lsp.json` in your repository root

Example configuration:

```json
{
"lspServers": {
"typescript": {
"command": "typescript-language-server",
"args": ["--stdio"],
"fileExtensions": {
".ts": "typescript",
".tsx": "typescript"
}
}
}
}
```

### Viewing LSP Server Status

Check configured LSP servers using the `/lsp` command in an interactive session, or view your configuration files directly.

For more information, see the [changelog](./changelog.md).

## 📢 Feedback and Participation

Expand Down
Loading