ToolBox Development — VS Code Extension

Learn how to set up your development environment and contribute to the Power Platform ToolBox VS Code Extension.

Overview

The VS Code Extension is built with:

  • TypeScript - Extension host and webview UI
  • React - Webview UI components
  • Webpack - Build tooling
  • VS Code Extension API - Tree views, webview panels, commands, status bar

Repository: github.com/PowerPlatformToolBox/vscode-extension. Published at the VS Code Marketplace.

Prerequisites

  • Node.js 20 or higher - Download
  • npm 10 or higher
  • VS Code 1.85.0 or higher

Getting Started

1. Fork and Clone

git clone https://github.com/PowerPlatformToolBox/vscode-extension.git
cd vscode-extension

2. Install Dependencies

npm install

3. Configure Environment

Copy the environment template and fill in your values:

cp .env.example .env
VariableDescription
PPTB_SUPABASE_URLURL for the PPTB Supabase backend
PPTB_SUPABASE_ANON_KEYAnonymous key for the PPTB Supabase backend

4. Launch the Extension Development Host

code .

Press F5 to launch an Extension Development Host with the extension loaded.

Project Structure

src/                      # Extension host source (TypeScript)
  extension.ts            # Entry point
  managers/               # Business logic managers
  panels/                 # Webview panel wrappers
  providers/               # Tree data providers
  registrations/          # Command registrations
  statusbar/              # Status bar items
  utils/                  # Shared utilities
  polyfill/               # toolboxAPI polyfill injected into tool webviews
webviews/                 # Webview UI source (React/TypeScript)
  connection/             # Connection management webview
  toolHost/               # Tool host webview
  toolTool/               # Tool configuration webview
resources/                # Static assets (icons)
dist/                     # Compiled output (generated)

Building

# Development build (incremental)
npm run compile

# Watch mode (rebuilds on save)
npm run watch

# Production build
npm run package

# Run ESLint
npm run lint

# Format with Prettier
npm run format

Pull Request Guidelines

  1. Create a feature branch from main, using conventional commit prefixes (feat:, fix:, chore:, docs:).
  2. Ensure npm run lint and npm run package pass before opening a PR.
  3. Open a PR against main with a clear title and description.

Releasing

Releases are automated via GitHub Actions:

  1. Update the version field in package.json.
  2. Commit the version bump and push to main.
  3. Create and push a matching tag: git tag v0.2.0 && git push origin v0.2.0.

The release workflow builds, packages, and publishes the extension to the VS Code Marketplace automatically.

Was this page helpful?