This is the public distribution and issue-tracking repository for the GitHub Copilot CLI. It does not contain the CLI source code. The compiled binaries are published as GitHub Releases and consumed by the various install paths below.
The repository's main artifacts are:
install.sh— the curl-pipe-bash installer for Linux/macOS.github/workflows/— release automation and issue triageREADME.md/changelog.md— user-facing documentation
This is the primary code file in the repo. Key conventions:
set -eis active throughout; every command failure aborts.- Downloads a
tar.gzrelease asset namedcopilot-${PLATFORM}-${ARCH}.tar.gzfrom GitHub Releases. - Validates the tarball against
SHA256SUMS.txtwhen eithersha256sumorshasumis available. - Install prefix:
/usr/local(root) or$HOME/.local(non-root), overridable via$PREFIX. - Supports
VERSIONenv var: empty/latest→ latest release;prerelease→ newest git tag; anything else is treated as a version string (prefixed withvif missing). - Uses
/dev/ttyfor interactive prompts so the script works correctly when piped fromcurl.
Triggered on every published release. Runs on windows-latest (winget-create requires Windows). Steps:
- Downloads
wingetcreate.exefromhttps://aka.ms/wingetcreate/latest. - Calls
wingetcreate updatewith--out manifeststo generate manifests locally (does not use--submit). - Post-processes the
*.installer.yamlto inject aMicrosoft.PowerShell >= 7.0.0package dependency — this is a manual fixup because winget-create doesn't support it natively. - Calls
wingetcreate submiton the manifest directory.
Package IDs: GitHub.Copilot (stable) / GitHub.Copilot.Prerelease (pre-release), selected based on github.event.release.prerelease.
Several workflows manage issue lifecycle automatically: triage-issues.yml, stale-issues.yml, close-invalid.yml, no-response.yml, close-single-word-issues.yml, feature-request-comment.yml, remove-triage-label.yml, unable-to-reproduce-comment.yml, on-issue-close.yml.
All new issues receive the triage label (set in bug_report.yml and feature_request.yml templates).
Users configure LSP servers via:
- User-level:
~/.copilot/lsp-config.json - Repo-level:
.github/lsp.json
Format:
{
"lspServers": {
"typescript": {
"command": "typescript-language-server",
"args": ["--stdio"],
"fileExtensions": { ".ts": "typescript", ".tsx": "typescript" }
}
}
}The devcontainer (mcr.microsoft.com/devcontainers/base:ubuntu) includes:
shellcheckandbash-ide-vscode— use these when editinginstall.shvscode-markdownlint— enforced for.mdfilesvscode-yaml— for workflow and template YAML