GitHub Copilot CLI now creates a persistent whole‑codebase index for C++ projects, enabling the Microsoft C++ Language Server to reuse symbol information across the entire repository. Engineers who navigate large C++ codebases benefit from noticeably faster look‑ups for definitions, references, and symbol searches, reducing the time spent waiting on code‑intelligence responses.
What changed
The new feature, called whole codebase indexing (WCI), is turned on by default. When a C++ project is opened, the language server builds a durable index that captures symbols, includes, and type relationships from all files, even those not currently open. The index is loaded at session start and updated dynamically as the code evolves. Progress can be inspected with the /lsp logs command. If needed, WCI can be temporarily disabled via the indexing documentation, after which the Copilot session must be restarted.
Operational implications
Creating the initial index incurs extra processing time and a temporary increase in memory consumption, an effect that is more pronounced for repositories with millions of lines of code or complex dependency graphs. Once the index is built, subsequent code‑intelligence queries reuse the cached data, eliminating the per‑request discovery overhead. The ongoing cost is limited to incremental updates, so the primary operational impact is the one‑time resource spike during first‑time setup.
Implementation and architecture considerations
WCI relies on the project’s compilation database to resolve types and relationships, meaning the language server must have accurate build information available. The persistent index is stored locally to the Copilot CLI environment, and its lifecycle is tied to the CLI session. Disabling WCI requires a session restart, indicating that the index is loaded at process start rather than on demand. Practitioners should verify that their build configuration (e.g., compile_commands.json) is correct, as the index quality directly reflects the compilation data.
Related CloudNinjas coverage: AI engineering.
What This Means For Practitioners
- Allocate sufficient memory for the initial indexing pass on large C++ repositories.
- Monitor indexing progress with
/lsp logsto confirm successful completion. - Consider disabling WCI only in constrained environments where the one‑time resource cost outweighs the latency benefit.
- Ensure build metadata is up‑to‑date so the index reflects the current code state.
- Plan for a brief warm‑up period after first opening a project or after major structural changes.


