Skill

Build and Publish VS Code Extensions

English guide for building VS Code extensions covering scaffolding, webviews, TreeView, testing, packaging, and Marketplace publication for VS Code 1.74+ APIs.

Works with githubvscode

46
Spark score
out of 100
Updated 2 days ago
Version 13.1.0

Add to Favorites

Why it matters

Master the complete lifecycle of VS Code extension development, from initial scaffolding and coding to robust testing, packaging, and successful publication on the VS Code Marketplace.

Outcomes

What it gets done

01

Scaffold new VS Code extensions using `yo code`.

02

Implement UI elements like TreeViews and Webviews with security best practices.

03

Package and publish extensions to the VS Code Marketplace.

04

Troubleshoot common extension development and activation issues.

Install

Add it to your toolbox

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/ag-vscode-extension-guide-en | bash

Capabilities

What this skill does

Generate code

Writes source code or scripts from a description.

Debug

Traces errors to their root cause and suggests fixes.

Deploy / CI

Runs build pipelines, tests, and deploys to environments.

Review code

Analyzes code for bugs, style issues, and improvements.

Overview

VS Code Extension Guide (English)

What it does

A comprehensive guide for building VS Code extensions from initial setup through Marketplace publication, with detailed reference material on webviews, TreeView, testing, and troubleshooting.

How it connects

Use when creating a new VS Code extension from scratch, adding commands or UI components like TreeView or Webview, publishing to the Marketplace, or troubleshooting extension activation and packaging issues.

Source README

VS Code Extension Guide (English)

Overview

An English guide for building VS Code extensions, covering the full lifecycle from scaffolding to Marketplace publication. Includes reference material on webview patterns, CSP security, TreeView, testing, packaging and troubleshooting. Updated for VS Code 1.74+ APIs.

Adapted from aktsmm/agent-skills (CC BY-NC-SA 4.0), translated to English with corrections for current VS Code APIs.

When to Use This Skill

  • Use when creating a new VS Code extension from scratch
  • Use when adding commands, keybindings or settings to an extension
  • Use when building TreeView or Webview UI in an extension
  • Use when publishing an extension to the VS Code Marketplace
  • Use when troubleshooting extension activation or packaging issues

How It Works

Quick Start

npm install -g yo generator-code
yo code

Project Structure

my-extension/
├── package.json          # Extension manifest
├── src/extension.ts      # Entry point
├── out/                  # Compiled JS
├── images/icon.png       # 128x128 PNG for Marketplace
└── .vscodeignore         # Exclude files from VSIX

Building and Packaging

npm run compile           # Build once
npm run watch             # Watch mode (F5 to launch debug)
npx @vscode/vsce package  # Creates .vsix

Reference Topics

The full skill includes detailed reference documents on:

  • Webview patterns with CSP security and message passing
  • TreeView data providers and drag-and-drop
  • Testing setup with @vscode/test-electron
  • Publishing to the VS Code Marketplace
  • AI customization for extension projects
  • Code review prompts for extension code
  • Troubleshooting common extension issues

Install the Full Skill

For the complete guide with all reference documents:

npx skills add lewiswigmore/agent-skills --skill vscode-extension-guide-en

Best Practices

  • Unify package name, setting keys, command IDs and view IDs before publishing
  • Keep package size under 5MB using .vscodeignore
  • Since VS Code 1.74, activationEvents are auto-detected for contributed commands and views
  • Always test with the Extension Development Host (F5) before packaging

Common Pitfalls

  • Problem: Extension not loading
    Solution: Check activationEvents. Since VS Code 1.74, these are auto-detected for contributed commands/views.

  • Problem: Command not found
    Solution: Match the command ID exactly between package.json and your code.

  • Problem: Webview content not displaying
    Solution: Check your Content Security Policy. Use the webview's cspSource property.

Related Skills

  • @test-driven-development - Write tests before implementing extension features
  • @debugging-strategies - Systematic troubleshooting for extension issues

Limitations

  • Use this skill only when the task clearly matches the scope described above.
  • Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
  • Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.