| type | skill |
| lifecycle | stable |
| inheritance | inheritable |
| name | chat-participant-patterns |
| description | VS Code Chat API patterns. |
| tier | standard |
| user-invokable | false |
| applyTo | **/*participant*,**/*chat*,**/*copilot*,**/lm/** |
| currency | 2026-04-22T00:00:00.000Z |
Chat Participant Patterns Skill
VS Code Chat API patterns.
⚠️ Staleness Warning
Chat APIs evolve with VS Code releases. Last validated: March 2026 (VS Code 1.111+)
Check: Chat API, LM API, Tools API, AI Extensibility Overview, EXTERNAL-API-REGISTRY.md
When to Use Chat Participant vs. Skills/Tools
| Approach | Use When | VS Code API |
|---|
| Chat Participant | Need full control of prompt + response, domain-specific @-mention | vscode.chat.createChatParticipant |
| LM Tool | Domain capability invoked automatically in agent sessions | vscode.lm.registerTool |
| Agent Skill (SKILL.md) | Domain knowledge embedded into any agent session (no code) | chat.useAgentSkills + SKILL.md file |
| MCP Server | Cross-platform tool providing data/actions to any MCP client | MCP SDK |
→ Prefer Skills for domain knowledge. Reserve participants for full prompt orchestration.
Create Participant
"contributes": {
"chatParticipants": [{
"id": "my-ext.participant",
"name": "myparticipant",
"fullName": "My Participant",
"description": "What can I help with?",
"isSticky": true,
: [{ : , : }]
}]
}
participant = vscode..(, handler);
participant. = vscode..(context., );