GitHub announced on September 22, 2026, that GitHub Copilot CLI can use whole-codebase indexing to improve C++ code intelligence. Instead of discovering symbols only from the files currently in view, the feature builds a persistent project-wide index that includes files that are not open.
The index is reused and updated as the project changes. That can reduce repeated codebase discovery for operations such as finding definitions and references, searching workspace symbols, and navigating through implementations. GitHub does not provide a benchmark or guaranteed latency improvement, however, so the practical effect will depend on the repository and its configuration.
What changed in Copilot CLI
The new behavior creates a persistent symbol index for a C++ project and makes it available to Copilot CLI’s language-server operations. The index is enabled by default, and it is dynamically updated after the initial indexing phase.
For developers working in large or deeply connected C++ repositories, this changes the starting point for code intelligence. The tool can build its understanding from the broader project rather than repeatedly reconstructing relationships from a smaller set of currently open or recently examined files.
The supported operations documented for Copilot CLI include go-to-definition, find references, hover information, rename, document symbols, workspace symbol search, go-to-implementation, incoming calls, and outgoing calls. Whole-codebase indexing is intended to support this type of project-wide navigation and relationship discovery; it is not documented as a measured performance guarantee.
GitHub’s announcement says that indexing progress can be inspected with the /lsp logs command.
Compilation data is a core requirement
Whole-codebase indexing does not remove the need for accurate build information. The Microsoft C++ Language Server documentation says the server uses compilation information, including compile_commands.json, to understand project files, compiler commands, symbols, and their relationships.
For CMake projects, the documented workflow requires configuring the project to export compile_commands.json. For MSBuild projects, the Microsoft documentation points to an external MSBuild extraction workflow. The language-server configuration must then point to the resulting compilation database.
This makes the compilation database an important preparation step for teams evaluating the feature. An absent, incomplete, or inaccurate database may limit the quality of C++ language-server intelligence, although the supplied documentation does not quantify that effect.
Projects using manual language-server configuration may encounter files such as .github/lsp.json and .mscppls/cpp-lsp.json. Copilot CLI also loads project LSP configuration, plugin configuration, and user configuration, with project configuration taking the highest priority among those sources. Configuration changes may require restarting the language-server or chat session, while the documented compilation database workflow supports hot reloading.
Initial indexing has a cost
The persistent index is intended to reduce repeated discovery work, but the first indexing pass can add setup time. GitHub also warns that initial indexing can temporarily increase memory usage, particularly in large or complex repositories.
Teams should therefore avoid treating the first response after enabling the feature as representative of steady-state behavior. The initial indexing phase may be more noticeable on developer workstations or environments with limited memory. Use /lsp logs to check progress rather than assuming that an incomplete initial response means the configuration has failed.
No authoritative repository-size limit, maximum indexed-codebase size, or quantitative memory and indexing-time benchmark was supplied. Developers should account for those limits being undocumented rather than planning around a specific capacity threshold.
Availability and platform considerations
GitHub announced whole-codebase indexing as available in Copilot CLI and enabled by default. GitHub documents Copilot CLI as available with all Copilot plans, although organization- or enterprise-provided access can depend on administrator policy. An organization may need to enable the relevant Copilot CLI policy before its developers can use the capability.
The Microsoft C++ Language Server documentation lists Windows, macOS, and Linux support. The supplied documentation does not specify supported CPU architectures. Copilot CLI itself is documented for Linux, macOS, Windows PowerShell, and Windows Subsystem for Linux.
The C++ language server is currently described as preview software. Its setup process, configuration details, and behavior may therefore change. The materials supplied for this announcement do not establish a version-specific rollout boundary, regional availability, or a repository-size limit for whole-codebase indexing.
Privacy and administrative considerations
The available documentation does not establish whether the whole-codebase symbol index is stored locally, how long it is retained, whether it is synchronized, or how it is protected. Those details should not be inferred from the fact that the index is persistent or dynamically updated.
The Microsoft C++ Language Server README states that the software may collect information about users and their use of the software and send it to Microsoft, and it points to telemetry controls and Microsoft’s privacy statement. This is general language-server documentation; it does not specifically describe the storage or handling of the whole-codebase index.
Administrators should also account for Copilot CLI’s broader access model. Its documentation warns that automatic tool approval can give Copilot access to files and shell commands available to the user. Where restricting filesystem, network, or system access is important, GitHub documents local sandboxing as an option. The supplied material does not establish a specific content-exclusion guarantee for the C++ index.
What you should do
- Check the build metadata. Confirm that the project has a valid
compile_commands.jsonfile. Configure CMake to export it, or use the documented MSBuild extraction workflow for MSBuild projects. - Review the language-server configuration. Ensure the C++ language server points to the correct compilation database. If you use project-level configuration, review
.github/lsp.jsonand any related language-server configuration files. - Allow for first-run overhead. Expect additional initial indexing time and potentially higher temporary memory use, especially for large or complex repositories.
- Monitor progress. Run
/lsp logsin Copilot CLI to inspect indexing activity and troubleshoot the initial setup. - Check organization policy. If access comes through an organization or enterprise, verify that the applicable Copilot CLI policy is enabled.
- Review administrative controls. Consider Copilot CLI sandboxing when limiting access to local files, network resources, or system capabilities is a requirement.
GitHub’s announcement refers to documentation for temporarily disabling whole-codebase indexing, but the exact setting name and syntax were not established in the supplied material. Teams should consult the current indexing documentation before attempting to disable it and restart the Copilot session after changing the setting.
Sources
- GitHub Changelog: Faster C++ code intelligence with whole codebase indexing
- Microsoft C++ Language Server indexing documentation
- Microsoft C++ Language Server README
- Microsoft C++ Language Server setup documentation
- Microsoft C++ Language Server compilation database workflow
- GitHub Copilot CLI LSP server documentation
- GitHub Copilot CLI overview and availability
- GitHub Copilot CLI installation documentation


