microsoft / microsoft/vscode

Language Models panel mixes LLM providers and chat session agents, appearing as confusing duplicates

Open
#326,538 1 comment 4 reactions 1 assignee Claimed by @vritant24 View on GitHub
bug model-byok
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

![Language Models panel showing duplicates](https://github.com/user-attachments/assets/placeholder)

## 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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.