Blog
GitHub Copilot @workspace Indexing: What It Does and Where It Stops
9 min read
GitHub Copilot's workspace feature — accessed via @workspace in VS Code — is Copilot's answer to codebase-aware AI assistance. It searches your local workspace, retrieves relevant files, and feeds them into the chat context. It is more capable than autocomplete-only Copilot and handles many codebase navigation questions adequately. But it shares the same fundamental limits as every per-developer, per-repo indexing approach: the index is your snapshot, scoped to your machine, ending at your repository boundary.
How Copilot workspace indexing works
When you use @workspace in VS Code, Copilot searches your local workspace for files relevant to your query. It combines keyword search with semantic retrieval, and feeds the results into the chat context window. The results depend on what is in your locally cloned repository and which files are included in the VS Code workspace:
GitHub Copilot Workspace indexing:
✓ Reads open files in VS Code / JetBrains
✓ Uses @workspace to search the local clone
✓ Understands project structure from open workspace
✓ Respects .gitignore for inclusion/exclusion
✗ Single repo per workspace session
✗ No cross-repo relationship indexing
✗ No behavioral flow reconstruction
✗ Context limited to active editor files + retrieval windowThis is a real improvement over file-by-file Copilot — when you have a question about your codebase and you are already in VS Code, @workspace handles a large class of navigation and explanation questions adequately. The ceiling becomes visible when questions require information outside the open workspace or across service boundaries.
Copilot vs. Cursor: the indexing comparison
The choice between Copilot and Cursor for codebase-aware AI assistance often comes down to IDE preference and retrieval depth, but both share the same architectural constraints when it comes to indexing:
Copilot vs. Cursor indexing approach:
Copilot:
→ Retrieval: keyword + semantic hybrid (via @workspace)
→ Scope: open VS Code workspace
→ Updates: on file open/save
→ Cross-repo: not supported
Cursor:
→ Retrieval: semantic vector search
→ Scope: indexed repository
→ Updates: incremental on save
→ Cross-repo: not supported
Both:
→ Per-developer, per-machine
→ No shared team index
→ Single-repo boundaryCursor's vector-based semantic search is generally stronger than Copilot's hybrid approach for conceptual code navigation — finding related logic that does not share keywords. But for the structural limits that matter at team scale — per-developer state, single-repo scope, no shared canonical index — both tools have the same problem, as described in AI coding at scale with 50 engineers.
Questions @workspace handles poorly
The most consequential limitations of Copilot workspace indexing appear in cross-service questions, impact analysis, and any query that requires reasoning across more than one repository:
Questions @workspace answers poorly or not at all:
"What other services publish to this queue?"
→ @workspace only sees the current repo
"Where else in the codebase does this pattern appear?"
→ limited by context window, not full semantic index
"What changed recently that might have broken this?"
→ no temporal awareness, no git diff context by default
"What does this service own vs. what does it call?"
→ no ownership model, just import graphsThe cross-repo limitation is the most practically significant. On a microservice architecture, most non-trivial questions touch more than one service. "What happens downstream when this event fires?" — the answer requires looking at the service that consumes the event, which is in a different repo. This is the same structural gap covered in the context of Cursor's single-repo semantic search limit.
The enterprise limitation: no shared index
For enterprise teams, the deeper limitation is the per-developer model. Each developer using Copilot with @workspace has their own local workspace, their own pull state, and their own active files. There is no canonical shared index that the whole team can query. Two developers asking the same question about the same codebase may get different answers, depending on what each has locally checked out.
This also means that non-developer roles — product managers, support leads, engineering managers — cannot use Copilot for codebase questions at all. They do not have a local clone, they do not have VS Code set up, and the workspace model requires exactly the developer toolchain they lack. The AI advantage is developer-only by design.
What a shared semantic index changes for teams
The alternative to per-developer workspace indexing is a server-side semantic index that is shared across the team. Every developer queries the same ground truth. Product managers can ask codebase questions without a local clone. Engineering managers can check system state without opening an IDE:
What a shared semantic index enables:
All developers: query same current codebase state
All repos: cross-service relationships indexed
All teams: product, support, eng use same answers
All sessions: no cold start, no per-session re-derivationKognita operates as this shared layer — a managed semantic index of your repositories, continuously updated, served to every member of your team through a single interface regardless of their technical setup. No per-developer index to sync, no workspace to configure, no repository boundary that stops answers midway through a cross-service question.
Final take
GitHub Copilot's workspace indexing is a solid feature for developers who live in VS Code and need codebase- aware suggestions within their current repository. It handles a genuine class of navigation and explanation questions well. The limits emerge at team scale: the index is per-developer, per-workspace, and single-repo — which means the accuracy, freshness, and accessibility of codebase context varies by developer, not by codebase.
The ceiling for any per-developer IDE-based indexing approach is a team that operates from a single shared understanding of the codebase. That requires a shared index, not each developer building their own — and it requires access for the entire team, not just the developers with the right IDE.