VSCode Extension Development

SkillDatabases & data

Develop, build, and test VSCode extensions in this repo. Use when editing extension source code, compiling TypeScript, packaging .vsix files, or installing extensions for testing.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the VSCode Extension Development skill

What this skill tells your AI

The instructions your AI receives, as published by owid/etl in .claude/skills/vscode-extension-dev/SKILL.md and read by ahel’s review.

Extension locations

Extensions live in vscode_extensions/<name>/. Each has:

  • src/extension.ts — main source code
  • dist/extension.js — compiled output (esbuild)
  • install/<name>-<version>.vsix — packaged extension
  • package.json — manifest with activation events, commands, config

Build & install workflow

CRITICAL: VSCode runs the installed .vsix from ~/.vscode/extensions/, NOT the dist/ in the repo. After every code change you MUST:

  1. Compile: cd vscode_extensions/<name> && npm run compile
  2. Package: npx @vscode/vsce package --out install/<name>-<version>.vsix
  3. Install: code --install-extension install/<name>-<version>.vsix --force
  4. Tell user to reload: Cmd+Shift+P → "Developer: Reload Window"

Just running npm run compile is NOT enough — the user will still see old behavior.

Verifying installed code

To check what code is actually running:

# Check installed extension has your changes
grep "some_unique_string" ~/.vscode/extensions/<publisher>.<name>-<version>/dist/extension.js

Common pitfalls

  • esbuild watch mode: npm run compile may start a watcher that blocks. This is fine for compilation but you still need to package + install.
  • Version conflicts: If the installed .vsix version matches, VSCode may cache. Use --force flag on install.
  • Extension host: Changes only take effect after "Developer: Reload Window".

Signals

GitHub stars
156
Forks
30
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
vscode-extension-dev
Source
github.com/owid/etl