How to Install GitHub Copilot
Installing GitHub Copilot takes a few minutes in any supported environment. The part that trips people up is not installation — it is discovering afterwards that the editor they chose does not support the feature they wanted.
This lesson covers installation and authentication for every currently supported environment, plus what to check when it does not work.
Key takeaways
- Copilot’s feature support varies significantly by editor. Check the matrix before choosing.
- In VS Code the required extensions install themselves on first use; other editors use their own marketplace.
- Visual Studio 2022 17.10 and later ships Copilot as a built-in component.
- Copilot CLI installs via npm, WinGet, Homebrew or a script, and needs Node.js 22 or later for the npm route.
- Most “Copilot is not working” reports are an account, access or policy problem rather than an installation one.
Choose your environment first
Copilot is not the same product in every editor. Before installing, know what you are getting.
| Feature | VS Code | Visual Studio | JetBrains | Eclipse | Xcode | Neovim |
|---|---|---|---|---|---|---|
| Code completion | Supported | Supported | Supported | Supported | Supported | Supported |
| Next edit suggestions | Supported | Supported | In public preview | In public preview | In public preview | Not supported |
| Chat | Supported | Supported | Supported | Supported | Supported | Not supported |
| Agent mode | Supported | Supported | Supported | Supported | Supported | Not supported |
| Edit mode | Supported | Not supported | Supported | Not supported | Not supported | Not supported |
| Checkpoints | Supported | Supported | Supported | Not supported | Supported | Not supported |
| Copilot code review | Supported | Supported | Supported | Not supported | Supported | Not supported |
| Custom instructions | Supported | Supported | In public preview | In public preview | In public preview | Not supported |
| Prompt files | Supported | Supported | In public preview | Not supported | In public preview | Not supported |
| Agent skills | Supported | Supported | In public preview | Not supported | Not supported | Not supported |
| Custom agents | Supported | Supported | In public preview | Supported | In public preview | Not supported |
| MCP | Supported | Supported | Supported | Supported | Supported | Not supported |
| Workspace indexing | Supported | Supported | Supported | Supported | Not supported | Not supported |
| Code referencing | Supported | Supported | Supported | Supported | Not supported | Not supported |
| Vision | In public preview | Supported | In public preview | Supported | In public preview | Not supported |
| BYOK | In public preview | Supported | In public preview | In public preview | In public preview | Not supported |
Captured from the latest release of each integration at the time of verification: VS Code 1.108.0, Visual Studio 18.6.0, JetBrains 1.5.66 (extension), Eclipse 0.14.0 (extension), Xcode 0.46.0 (extension), Neovim 1.18.0 (extension). GitHub publishes the feature matrix as a public preview and changes it often.
The headline reading:
- VS Code has the fullest support and receives features first.
- Visual Studio is close behind, and is the only environment with the .NET Upgrade Agent.
- JetBrains IDEs support the core feature set, with several capabilities in public preview.
- Eclipse and Xcode support chat, agent mode and MCP, with more features in preview.
- Neovim supports code completion only. No chat, no agent mode.
VS Code
Setup is largely automatic. When you first use Copilot in VS Code, the required extensions are installed for you — you do not need to find them in the marketplace manually.
- Open VS Code.
- Click the Copilot icon in the title bar.
- If Copilot is not yet set up, VS Code prompts you through it.
- Sign in to GitHub when asked, and authorise the request in your browser.
That is the whole process. Once complete, the Copilot status indicator in the status bar shows whether Copilot is active for the current file.
Visual Studio
Visual Studio 2022 version 17.10 and later includes the unified Copilot and Copilot Chat extension as a built-in component. There is nothing to install.
- Open Visual Studio.
- Add your GitHub account to Visual Studio if you have not already, via the account picker in the top-right.
- Copilot activates once the account with Copilot access is present.
For Visual Studio 2022 versions 17.8 and 17.9, install the GitHub Copilot extension from the Visual Studio Marketplace, then add your GitHub account.
JetBrains IDEs
The GitHub Copilot plugin works across the JetBrains family — IntelliJ IDEA, PyCharm, WebStorm, GoLand, Rider, PhpStorm, RubyMine, CLion and others.
- Open your JetBrains IDE.
- Go to the Plugins settings.
- Search the Marketplace for GitHub Copilot and click Install.
- Click Restart IDE when prompted.
- After restarting, go to Tools → GitHub Copilot → Login to GitHub.
- In the sign-in dialog, click Copy and Open to copy the device code and open the activation page.
- Paste the device code in the browser, click Continue, and authorise.
Eclipse
Install the GitHub Copilot extension for Eclipse, then authenticate through the same device-code flow used by JetBrains IDEs.
Eclipse supports chat, agent mode, MCP, custom agents, workspace indexing and code referencing. Custom instructions, prompt files and next edit suggestions are either in preview or unsupported — check the matrix above before relying on them.
Xcode
Install the GitHub Copilot extension for Xcode and authenticate.
Xcode supports code completion, chat, agent mode, checkpoints, code review and MCP. Several customisation features are in public preview.
Xcode’s completion shortcuts differ from other editors — notably, Tab accepts only the first line of a suggestion, holding Option shows the full suggestion, and Option+Tab accepts all of it. The shortcuts cheat sheet has the full list.
Neovim
Copilot supports code completion in Vim and Neovim. Chat and agent mode are not available.
Keyboard shortcuts are not bound by default in the way they are in other editors — you map them yourself using standard Neovim mapping.
Azure Data Studio
Azure Data Studio version 1.44.0 or later supports Copilot code completion via the GitHub Copilot extension, installed from within Azure Data Studio.
Copilot CLI
Copilot CLI is a terminal agent rather than an editor extension, and it installs separately.
npm — all platforms:
npm install -g @github/copilotIf your ~/.npmrc sets ignore-scripts=true, use:
npm_config_ignore_scripts=false npm install -g @github/copilotWinGet — Windows:
winget install GitHub.CopilotHomebrew — macOS and Linux:
brew install --cask copilot-cliThen authenticate:
copilot loginOn a local terminal this opens a browser and captures the result on a loopback
callback. On a remote terminal — SSH, a codespace, a dev container, or CI — it
defaults to the OAuth device code flow instead. Force either explicitly with
--web-flow or --device-code.
Installing in a codespace or dev container
If your team develops in GitHub Codespaces or a dev container, Copilot behaves slightly differently and the differences catch people out.
In a codespace, the VS Code Copilot extension is available and your GitHub
identity is already present, so authentication usually requires no separate
step. Extensions can be pre-declared in devcontainer.json so every codespace
starts with the same setup:
{
"customizations": {
"vscode": {
"extensions": ["GitHub.copilot", "GitHub.copilot-chat"]
}
}
}In a dev container running locally, the extension installs inside the container rather than on your host, so a working Copilot setup on your machine does not automatically carry across. Declaring the extensions as above is the reliable fix.
For Copilot CLI in either environment, the browser-based login flow cannot reach a loopback port, so authentication falls back to the device code flow automatically. If it does not, force it:
copilot login --device-codeVerify the installation
Do not assume it worked. Confirm it.
In an editor:
- Open a code file in a language you use.
- Check the Copilot status indicator shows active for that file.
- Type a descriptive function signature and pause. Ghost text should appear.
- Open chat and ask it to explain the current file.
If completion works but chat does not, you have a feature-support or access issue, not an installation one.
In the terminal:
copilot --versionThen start an interactive session with copilot and run /help to confirm the
session is live.
Keeping Copilot updated
Copilot changes quickly, and old extension versions lose features.
- VS Code updates extensions automatically by default.
- Visual Studio updates Copilot with the IDE for 17.10 and later.
- JetBrains shows plugin updates in the Plugins settings.
- Copilot CLI updates itself unless you pass
--no-auto-update. Update manually withcopilot update, or/updateinside a session.
Disabling Copilot
You do not have to uninstall to turn it off.
Temporarily, per file or globally: VS Code exposes a
github.copilot.toggleCopilot command. It has no default keybinding, so bind
one yourself or run it from the command palette. The status bar icon also offers
enable/disable options.
Per language: most editors allow disabling completions for specific languages, which is useful if suggestions are unhelpful in one file type but valuable elsewhere.
Per repository: on Business and Enterprise plans, content exclusion keeps specified files or paths out of Copilot’s context entirely. This is an organisation-level control, not a personal preference.
Removing Copilot
- VS Code / JetBrains / Eclipse / Xcode — uninstall the extension or plugin through the editor’s extension manager, then restart.
- Visual Studio 17.10+ — Copilot is a built-in component; disable it rather than uninstalling.
- Copilot CLI — remove it the way you installed it:
npm uninstall -g @github/copilot # npm
brew uninstall --cask copilot-cli # Homebrew
winget uninstall GitHub.Copilot # WinGetTo sign out without removing anything, run copilot logout or use your editor’s
GitHub account settings. Cancelling a paid subscription is separate again, and
happens in your GitHub billing settings.
Troubleshooting
| Problem | Likely cause | Resolution |
|---|---|---|
| Copilot unavailable or shows an access error | The signed-in account has no Copilot access | Confirm which GitHub account is signed in, and that it holds Copilot Free or a paid plan |
| Signed in, still unavailable | Organisation or enterprise policy blocks Copilot | Ask your administrator whether Copilot is enabled for your organisation |
| No inline suggestions in one file type | Completions disabled for that language | Check per-language settings in the editor |
| No suggestions anywhere | Extension disabled, outdated, or not authenticated | Verify status indicator, update the extension, re-authenticate |
| Completions work, chat does not | Chat unsupported in that editor, or plan restriction | Check the feature matrix for your editor |
| A documented feature is missing | Extension or IDE version predates it | Update to the latest stable versions |
| Agent mode absent | Editor does not support it, or version too old | Neovim has no agent mode; update elsewhere |
| Copilot CLI installed but will not run | Organisation policy, or authentication failure | Check policy, then re-run copilot login |
npm install -g fails on scripts | ignore-scripts=true in ~/.npmrc | Use npm_config_ignore_scripts=false npm install -g @github/copilot |
| CLI authentication fails on a remote host | Browser flow cannot reach the loopback port | Use copilot login --device-code |
| Suggestions stopped mid-session | Rate limiting, or the AI credit allowance is exhausted | Wait and retry, check usage, or adjust your plan |
Reading the status indicator
Every editor surfaces Copilot’s state somewhere, and learning to read it saves most of the debugging above.
The states you will encounter:
- Active — Copilot is enabled and will suggest in the current file.
- Disabled for this language — Copilot is working, but completions are switched off for this file type. A per-language setting, not a fault.
- Not signed in — authentication is missing or expired. Re-authenticate.
- No access — the account is signed in but has no Copilot entitlement, or an organisation policy is blocking it.
The distinction between the last two matters, because they have completely different fixes and both present as “Copilot is not working”. Re-installing the extension resolves neither.
When it is not an installation problem
Three symptoms are commonly misdiagnosed as broken installations:
“Copilot is ignoring our conventions.” It is working; it was not given the conventions. Write a repository custom instructions file — see Getting Started for a worked example.
“Suggestions are worse than they used to be.” Check what changed in your context, not in the product. Fewer relevant files open, or a new project without an instructions file, both degrade output.
“It stopped working today.” Check your AI credit usage before reinstalling. Included credits do not carry over between months, and running out is a common cause of sudden behaviour change.
Next steps
Installed and verified? Continue to Code Completion Explained to get more from inline suggestions, or Copilot Chat for the layer with the biggest immediate payoff.
If you have not built anything with it yet, How to Get Started walks through a complete first project ending in a passing test suite.
Sources
Every version-sensitive claim on this page was checked against first-party documentation. Only sources actually used are listed.
Your progress
Saved in this browser only. No account, no server, and nothing leaves your device. Clearing site data resets it.
Was this lesson helpful?
Your answer is stored in this browser and is not sent anywhere.