Extensions

The installed extensions list

Installing extensions

Open the Extensions panel from the Activity Bar to browse the marketplace — themes, language servers, debug adapters, snippets, and AI tools. Install with one click.

Enabling or disabling an extension defaults to your global (User) setup, but you can override that per-workspace — turn an extension off for just one project without touching its global state everywhere else. A Reset action drops the override and goes back to inheriting your global setting.

What extensions can contribute

An extension manifest can declare, among other things:

  • Themes — full color themes, picked from Settings → Appearance
  • Language servers (contributes.languageServers) — powers completion/hover/diagnostics for a language
  • Debug adapters (contributes.debugAdapters) — powers the Debugger for a language
  • Language definitions — syntax highlighting for a new language
  • Snippets and commands
  • Walkthroughs — a step-by-step onboarding checklist for the extension, with its own completion tracking; these show up automatically on the Welcome page alongside the built-in getting-started checklist
  • AI providers — a new model backend added to the AI provider picker
  • AI tools — new agent-callable capabilities Agent Mode can reach for
  • Context providers — extra context automatically injected into every AI query, without the user having to ask for it

Building your own

Scaffold a new extension with the SDK’s CLI:

npx @sde-code/sdk init my-extension

This creates a working extension project you can develop against the same SDK types the built-in system extensions use.

For themes and snippet packs specifically, you don’t need the CLI at all — the Extensions panel’s Publish tab has guided, step-by-step creator wizards for both: pick colors (or describe the theme you want and let AI generate a palette) with a live preview for themes, or fill in prefix/body/description entries for a snippet pack, then publish straight from the wizard.

Publishing

Once ready, publish straight from the Extensions panel’s Publish tab — it packages your extension and uploads it to the marketplace under your account, validated against your authenticated publisher identity.