The Microsoft C++ Language Server is now available as a plugin on the Copilot Plugins marketplace. It includes a new built-in setup skill that helps automate project setup, making it easier to generate and maintain the compile_commands.json file the language server needs to understand your code.

Why this matters

The C++ language server relies on a compile_commands.json file to provide precise semantic intelligence (i.e., symbol navigation, diagnostics, and code changes that reflect how your compiler actually sees the code). Previously, creating this file required manual steps that varied by build system. The new setup skills handle this automatically for CMake and MSBuild projects, and they provide a repeatable pattern for custom build systems.

What’s new

Available via the Copilot Plugins marketplace

The C++ language server can now be installed directly as a Copilot CLI plugin:

/plugin install cpp-language-server@copilot-plugins

This replaces the previous npm-based installation and simplifies getting started and staying updated with the latest releases on Windows, Linux, and macOS.

Generate compile commands skill

The new generate compile commands skill lets you generate or refresh your compile_commands.json directly from Copilot CLI. Simply say “regenerate compile commands” or “load project” and the skill will configure your compilation database based on your project type and platform.

Generating compile commands from Copilot CLI

The language server automatically watches for changes to compile_commands.json, so updates take effect without restarting.

CMake projects

If you don’t already have a compile_commands.json generated from your CMake builds, the recommended path is to use the skill to generate one for you. Alternatively, you can pass -DCMAKE_EXPORT_COMPILE_COMMANDS=TRUE when configuring CMake to directly produce the file from your build.

CMake has native support for compile command generation, and the skill helps configure the project so the language server has the compilation database it needs.

MSBuild projects

For MSBuild-based projects, you have two options:

  1. Guided setup: Use the skill to onboard the project by saying “regenerate compile commands” or “load project.” The skill produces the configuration needed for the language server.
  2. Manual generation: Use the sample extractor application to generate compile_commands.json from your MSBuild project. While it works out-of-the-box for many projects, it may require adaptation for complex configurations.

Custom build systems

Custom builds often use hermetic, vendored, or wrapper-based toolchains that standard discovery cannot always detect. For these projects:

  • Create a project-specific skill that captures your build setup once and makes it repeatable.
  • Teams can still manually provide their own compile_commands.json file.
  • The detailed guidance in the repository covers what settings to pin and how to structure a skill so Copilot can reliably regenerate compile commands.

Getting started

Install the plugin and follow the quick start guide to accept the EULA:

/plugin install cpp-language-server@copilot-plugins

Then say “regenerate compile commands” or “load project” to configure your project. Reinvoke the skill whenever your build configuration changes to keep the language server in sync.

An active GitHub Copilot subscription is required.

Feedback

Help us improve the Microsoft C++ language server for Copilot CLI by filling out our short survey. To report a problem or suggest an improvement, open an issue in our GitHub repository.