KS
Killer-Skills

vscode-extension-dev — how to develop vscode extensions how to develop vscode extensions, vscode extension development tutorial, vscode-extension-dev alternative, vscode-extension-dev vs vscode extension manager, vscode-extension-dev setup guide, vscode-extension-dev install and configure, what is vscode-extension-dev, vscode-extension-dev documentation, vscode extension development best practices

v1.0.0
GitHub

About this Skill

Perfect for Developer Agents needing advanced Visual Studio Code extension creation capabilities. vscode-extension-dev is a skill for expert Visual Studio Code extension development, covering project structure, manifest configuration, and extension lifecycle management.

Features

Configures project structure and manifest files (package.json) for VS Code extensions
Specifies minimum compatible VS Code version using engines.vscode
Defines activationEvents for triggering extension activation
Supports advanced Node.js package management with npm, yarn, pnpm, and bun
Guides users through the extension lifecycle, from creation to publication

# Core Topics

involvex involvex
[0]
[0]
Updated: 3/7/2026

Quality Score

Top 5%
42
Excellent
Based on code quality & docs
Installation
SYS Universal Install (Auto-Detect)
Cursor IDE Windsurf IDE VS Code IDE
> npx killer-skills add involvex/vscode-npm-package-manager/vscode-extension-dev

Agent Capability Analysis

The vscode-extension-dev MCP Server by involvex is an open-source Categories.community integration for Claude and other AI agents, enabling seamless task automation and capability expansion. Optimized for how to develop vscode extensions, vscode extension development tutorial, vscode-extension-dev alternative.

Ideal Agent Persona

Perfect for Developer Agents needing advanced Visual Studio Code extension creation capabilities.

Core Value

Empowers agents to create, enhance, and publish VS Code extensions, leveraging advanced Node.js package management and manifest configuration through `package.json` files, specifying `engines.vscode` and `activationEvents`.

Capabilities Granted for vscode-extension-dev MCP Server

Creating custom extensions for specific development workflows
Enhancing existing extensions with new features and functionalities
Publishing extensions to the VS Code marketplace for public use

! Prerequisites & Limits

  • Requires Node.js knowledge and VS Code extension development experience
  • Limited to VS Code extensions only
Project
SKILL.md
4.1 KB
.cursorrules
1.2 KB
package.json
240 B
Ready
UTF-8

# Tags

[No tags]
SKILL.md
Readonly

VS Code Extension Developer Skill

You are an expert in Visual Studio Code extension development. Use this skill to guide the user through the lifecycle of creating, enhancing, and publishing extensions.

1. Project Structure & Manifest (package.json)

The package.json is the manifest file and is crucial for VS Code extensions.

  • engines.vscode: Specifies the minimum compatible version of VS Code.
  • activationEvents: Array of events that trigger your extension's activation (e.g., onCommand:id, onLanguage:id, workspaceContains:**\/package.json, or *). Note: VS Code 1.74+ handles many activation events automatically based on contribution points.
  • contributes: The core configuration for UI elements and capabilities.
    • commands: Register commands visible in the Command Palette.
    • menus: Add commands to menus (e.g., editor/context, view/title).
    • viewsContainers: Add custom sidebars/activity bars.
    • views: Add tree views to containers.
    • configuration: Define user settings.
    • keybindings: Bind commands to keyboard shortcuts.
  • main: The entry point file (e.g., ./out/extension.js).

2. Development Workflow

  • Setup: Ensure vscode module is installed (npm install vscode). Note: The vscode module is deprecated; use @types/vscode for development and rely on the engine version.
  • Running: Press F5 in VS Code to launch the Extension Development Host. This opens a new window with your extension loaded.
  • Reloading: Use Ctrl+R (or Cmd+R on Mac) in the Extension Development Host to reload changes.
  • Debugging: Set breakpoints in your source code. Use the Debug Console to inspect variables.

3. The vscode API

  • vscode.commands: registerCommand to bind logic to command IDs.
  • vscode.window:
    • showInformationMessage, showErrorMessage for notifications.
    • createStatusBarItem for status bar entries.
    • createTreeView for custom views.
    • activeTextEditor for the current editor.
  • vscode.workspace:
    • getConfiguration for settings.
    • workspaceFolders for open folders.
    • fs for file system operations (use this over Node's fs when possible for remote support).
  • vscode.languages: Register completion providers, hover providers, diagnostics, etc.

4. Best Practices

  • Lazy Activation: Only activate your extension when necessary. Avoid using * activation unless absolutely required.
  • Disposables: Always push created resources (commands, listeners) to context.subscriptions to ensure they are cleaned up when the extension is deactivated.
    typescript
    1context.subscriptions.push(disposable);
  • Webviews: Use strict Content Security Policy (CSP). Use asWebviewUri to load local resources.
  • Performance: Do not block the main thread. Use async/await for I/O and heavy operations.

5. Testing

  • Use @vscode/test-electron or @vscode/test-cli for integration tests.
  • Tests run inside a special instance of VS Code.

6. Packaging and Publishing

  • Tool: vsce (Visual Studio Code Extensions CLI).
  • Install: npm install -g @vscode/vsce.
  • Package: vsce package creates a .vsix file.
  • Publish: vsce publish uploads to the Marketplace (requires a Personal Access Token).
  • Files: Ensure .vscodeignore is configured to exclude development files (src, tsconfig.json, etc.) from the package.

7. Common Tasks

Registering a Command

typescript
1import * as vscode from "vscode"; 2 3export function activate(context: vscode.ExtensionContext) { 4 let disposable = vscode.commands.registerCommand( 5 "myExtension.helloWorld", 6 () => { 7 vscode.window.showInformationMessage("Hello World!"); 8 }, 9 ); 10 11 context.subscriptions.push(disposable); 12}

Tree View Provider

Implement vscode.TreeDataProvider<T>.

  • getTreeItem(element: T): vscode.TreeItem
  • getChildren(element?: T): ProviderResult<T[]>

Configuration

Access settings defined in package.json:

typescript
1const config = vscode.workspace.getConfiguration("myExtension"); 2const value = config.get("mySetting");

Related Skills

Looking for an alternative to vscode-extension-dev or building a Categories.community AI Agent? Explore these related open-source MCP Servers.

View All

widget-generator

Logo of f
f

widget-generator is an open-source AI agent skill for creating widget plugins that are injected into prompt feeds on prompts.chat. It supports two rendering modes: standard prompt widgets using default PromptCard styling and custom render widgets built as full React components.

149.6k
0
Design

chat-sdk

Logo of lobehub
lobehub

chat-sdk is a unified TypeScript SDK for building chat bots across multiple platforms, providing a single interface for deploying bot logic.

73.0k
0
Communication

zustand

Logo of lobehub
lobehub

The ultimate space for work and life — to find, build, and collaborate with agent teammates that grow with you. We are taking agent harness to the next level — enabling multi-agent collaboration, effortless agent team design, and introducing agents as the unit of work interaction.

72.8k
0
Communication

data-fetching

Logo of lobehub
lobehub

The ultimate space for work and life — to find, build, and collaborate with agent teammates that grow with you. We are taking agent harness to the next level — enabling multi-agent collaboration, effortless agent team design, and introducing agents as the unit of work interaction.

72.8k
0
Communication