Back to Skills

vscode-extension-builder

verified

Comprehensive guide for creating VS Code extensions from scratch, including project scaffolding, API usage, activation events, and packaging. Use when user wants to create/build/generate/develop a VS Code extension or plugin, asks about VS Code extension development, needs help with VS Code Extension API, discusses extension architecture, wants to add commands/webviews/language support, or mentions scaffolding a VS Code project.

View on GitHub

Marketplace

marketplace-claude

kjgarza/marketplace-claude

Plugin

senior-software-developer

development

Repository

kjgarza/marketplace-claude
2stars

plugins/senior-software-developer/skills/vscode-extension-builder/SKILL.md

Last Verified

January 20, 2026

Install Skill

Select agents to install to:

Scope:
npx add-skill https://github.com/kjgarza/marketplace-claude/blob/main/plugins/senior-software-developer/skills/vscode-extension-builder/SKILL.md -a claude-code --skill vscode-extension-builder

Installation paths:

Claude
.claude/skills/vscode-extension-builder/
Powered by add-skill CLI

Instructions

# VS Code Extension Builder

Build professional VS Code extensions with proper architecture, best practices, and complete tooling support.

## Quick Start

For immediate extension creation:

1. **Initialize**: Run `npx --package yo --package generator-code -- yo code`
2. **Choose type**: New Extension (TypeScript)
3. **Fill details**: Name, identifier, description
4. **Develop**: Open in VS Code, press F5 to debug
5. **Test**: Run commands in Extension Development Host
6. **Package**: Run `vsce package` when ready

For detailed guidance, follow the workflow below.

## Extension Types

Choose the type that matches your needs:

- **Command Extension**: Add commands to Command Palette (simplest, most common)
- **Language Support**: Syntax highlighting, IntelliSense, formatting
- **Webview Extension**: Custom UI panels with HTML/CSS/JS
- **Tree View**: Custom sidebar views with hierarchical data
- **Debugger**: Add debugging support for languages
- **Theme**: Color themes, file icon themes
- **Snippet Provider**: Code snippets for languages

## Core Workflow

### 1. Gather Requirements

Ask user about:
- **Purpose**: What should the extension do?
- **Type**: Which extension type? (command, language, webview, etc.)
- **Features**: Specific functionality needed
- **UI**: Commands, views, panels, status bar items?
- **Activation**: When should it activate?

### 2. Choose Extension Type & Architecture

Based on requirements, select appropriate pattern:

**Simple Command Extension** (most common):
- Single responsibility
- Command Palette integration
- Quick to build

**Language Extension**:
- Syntax highlighting (TextMate grammar)
- Language server for IntelliSense
- Complex but powerful

**Webview Extension**:
- Custom UI needed
- Rich interactions
- More complex state management

See [extension-anatomy.md](references/extension-anatomy.md) for detailed structure.

### 3. Initialize Project

**Option A: Use Yeoman Generator (Recommended)**
```bash
npx --package yo --package

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
9608 chars