Language Models panel mixes LLM providers and chat session agents, appearing as confusing duplicates
- Dominant language
- TypeScript
- Stars
- 193k
- Forks
- 42.4k
- PR merge metrics
- PR metrics pending
Description
**VS Code Version:** 1.130.0-insider
**OS:** macOS (Apple Silicon, M4)
**Copilot Extension:** built-in (bundled with Insiders)
---
## Description
After a recent VS Code Insiders update, the **Language Models panel** (`> Language Models: Manage Language Models`) shows what appears to be duplicate entries for both **Copilot** and **Claude**:
- `Copilot` (bold, visible eye icon) — active LLM provider
- `claude` (bold, visible eye icon) — third-party `cpulvermacher.claude-model-provider` extension
- *Claude* (greyed out, crossed-eye icon) — `anthropic.claude-code` chat session agent
- *Copilot* (greyed out, crossed-eye icon) — `copilotcli` / Copilot CLI chat session agent
- `Google` (bold, visible eye icon) — Google LLM provider

## Root Cause (investigated)
The panel now **mixes two conceptually different things** in the same list:
1. **Language Model Providers** (extensions that register LLMs via `languageModelChatProviders`)
2. **Chat Session Agents** (entries registered via `chatSessions` in the built-in Copilot extension, e.g. `claude-code`, `copilotcli`)
The greyed-out *Claude* and *Copilot* rows are actually chat session types (`type: "claude-code"` and `type: "copilotcli"`) from the built-in Copilot extension's `package.json`, not language model providers. They are showing up in a panel that users naturally expect to only contain model providers, causing confusion about duplicates.
## Steps to Reproduce
1. Install VS Code Insiders 1.130.0
2. Have the `anthropic.claude-code` extension installed (any recent version)
3. Have any third-party LLM provider extension installed (e.g. `cpulvermacher.claude-model-provider`)
4. Open the Language Models panel
5. Observe that both "Copilot" and "Claude" appear twice — once as an active provider and once as a greyed chat session agent
## Expected Behavior
The Language Models panel should only show **language model providers**, not chat session agents. Or if both need to be shown, they should be clearly separated with section headers (e.g. "Model Providers" vs "Chat Agents") to avoid confusion.
## Actual Behavior
Both types are mixed in a flat list, making it look like there are broken duplicates.
## Additional Context
- The `chatSessions` contribution from the built-in Copilot extension (`copilot/package.json`) includes `claude-code` (displayName: "Claude") and `copilotcli` (displayName: "Copilot CLI") among others
- These are rendered in the same panel as `languageModelChatProviders`, with greyed styling and crossed-eye icons, but no label distinguishing them from actual model providers
- This started appearing after the VS Code Insiders update that introduced the new Language Models panel UI
Contributor guide
Assessment
This issue has not been assessed yet.