Visual Studio Code extension to recognize and highlight the WebAssembly Interface Type (WIT) IDL.
39
stars
130
commits
TypeScript
primary language
Aug 10, 2026
updated

A comprehensive Visual Studio Code extension for WebAssembly Interface Type (WIT) development. This extension provides syntax highlighting, validation, formatting, language bindings generation, and WebAssembly component tooling for the WIT Interface Definition Language (IDL). Also compatible as a TextMate bundle.
Key Features:
.wasm componentsThe description of the WIT format can be found at: https://github.com/WebAssembly/component-model/blob/main/design/mvp/WIT.md
This extension provides comprehensive support for WebAssembly Interface Type (WIT) files and WebAssembly components:
Format WIT files with a single command:
.wit filesShift+Alt+F to format the active documentGenerate language bindings directly from WIT files or WebAssembly components:
wit-bindgen.wit files, generates host-oriented TypeScript declarations.wasm components, transpiles to runnable JavaScript host modules.wit or .wasm files to generate outputs
.wasm) are decorated with a π§© emoji in the Explorer.wasm component filesRight-click on files in the editor or Explorer for quick access to:
For .wit files:
For .wasm component files:
Access these commands via the Command Palette (Ctrl+Shift+P or Cmd+Shift+P):
WIT: Check WIT Syntax (F7 when in a WIT file)
WIT: Check WIT Syntax in Workspace (Shift+F7)
Shift+Alt+F when in a WIT file)
WIT: Generate Rust Bindings
wit-bindgenWIT: Generate C Bindings
WIT: Generate C++ Bindings
WIT: Generate C# Bindings
WIT: Generate Go Bindings
WIT: Generate MoonBit Bindings
WIT: Generate JavaScript Bindings (Guest)
.wit or extracted component WITWIT: Generate JavaScript Bindings (Host)
.wit, and component transpilation for .wasmWIT: Generate Markdown Documentation
Note: legacy command IDs for
wit-idl.generateBindings*are still supported as deprecated aliases for backward compatibility.
WIT: Extract WIT
.wasm filesWIT: Extract Core Wasm
.wasm files| Command | Shortcut | When |
|---|---|---|
| Check WIT Syntax | F7 | Editing a .wit file |
| Check WIT Syntax in Workspace | Shift+F7 | Anytime |
| Format Document | Shift+Alt+F | Editing a .wit file |
This extension contributes the following settings:
The extension automatically configures itself as the default formatter for WIT files. This is equivalent to:
{
"[wit]": {
"editor.defaultFormatter": "bytecodealliance.wit-idl"
}
}
You can override this in your user or workspace settings if needed.
Customize the color used to decorate WebAssembly component files in the Explorer:
witIdl.componentColor#5043b3#7c5eff#b15effTo customize, add to your settings:
{
"workbench.colorCustomizations": {
"witIdl.componentColor": "#your-color-here"
}
}
This extension is available on:
Visual Studio Marketplace: For VS Code users
Open VSX Registry: For VSCodium and other compatible editors
ovsx get bytecodealliance.wit-idlThis extension includes a WebAssembly component that requires the following tools for building:
cargo): Required for building the WebAssembly moduleYou can install these dependencies by running:
# Install Rust (if not already installed)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Run the setup script to install build tools
npm run setup-wasm
To install from source, follow these steps:
git clone https://github.com/bytecodealliance/vscode-wit.git && cd vscode-witnpm run setup-wasmnpm ci && npm run install-extensionThe extension includes comprehensive tests:
# Run all tests (lint, format, build, grammar, unit tests)
npm test
# Run unit tests only
npm run test-unit
# Run unit tests with coverage report
npm run test-unit-coverage
# Run tests in watch mode
npm run test-unit-watch
For Go WASM integration tests, see docs/GO_TESTING.md.
This extension is automatically published to both Visual Studio Marketplace and Open VSX Registry through GitHub Actions when a release is created.
Required secrets:
PAT_VSCE: Personal Access Token for Visual Studio MarketplaceOVSX_PAT: Personal Access Token for Open VSX Registry55 commits
27 commits
17 commits
14 commits
TypeScript
83.1%
Rust
11.6%
JavaScript
3.0%
Shell
2.3%
Visual Studio Code extension to recognize and highlight the WebAssembly Interface Type (WIT) IDL.
39
stars
130
commits
TypeScript
primary language
Aug 10, 2026
updated

A comprehensive Visual Studio Code extension for WebAssembly Interface Type (WIT) development. This extension provides syntax highlighting, validation, formatting, language bindings generation, and WebAssembly component tooling for the WIT Interface Definition Language (IDL). Also compatible as a TextMate bundle.
Key Features:
.wasm componentsThe description of the WIT format can be found at: https://github.com/WebAssembly/component-model/blob/main/design/mvp/WIT.md
This extension provides comprehensive support for WebAssembly Interface Type (WIT) files and WebAssembly components:
Format WIT files with a single command:
.wit filesShift+Alt+F to format the active documentGenerate language bindings directly from WIT files or WebAssembly components:
wit-bindgen.wit files, generates host-oriented TypeScript declarations.wasm components, transpiles to runnable JavaScript host modules.wit or .wasm files to generate outputs
.wasm) are decorated with a π§© emoji in the Explorer.wasm component filesRight-click on files in the editor or Explorer for quick access to:
For .wit files:
For .wasm component files:
Access these commands via the Command Palette (Ctrl+Shift+P or Cmd+Shift+P):
WIT: Check WIT Syntax (F7 when in a WIT file)
WIT: Check WIT Syntax in Workspace (Shift+F7)
Shift+Alt+F when in a WIT file)
WIT: Generate Rust Bindings
wit-bindgenWIT: Generate C Bindings
WIT: Generate C++ Bindings
WIT: Generate C# Bindings
WIT: Generate Go Bindings
WIT: Generate MoonBit Bindings
WIT: Generate JavaScript Bindings (Guest)
.wit or extracted component WITWIT: Generate JavaScript Bindings (Host)
.wit, and component transpilation for .wasmWIT: Generate Markdown Documentation
Note: legacy command IDs for
wit-idl.generateBindings*are still supported as deprecated aliases for backward compatibility.
WIT: Extract WIT
.wasm filesWIT: Extract Core Wasm
.wasm files| Command | Shortcut | When |
|---|---|---|
| Check WIT Syntax | F7 | Editing a .wit file |
| Check WIT Syntax in Workspace | Shift+F7 | Anytime |
| Format Document | Shift+Alt+F | Editing a .wit file |
This extension contributes the following settings:
The extension automatically configures itself as the default formatter for WIT files. This is equivalent to:
{
"[wit]": {
"editor.defaultFormatter": "bytecodealliance.wit-idl"
}
}
You can override this in your user or workspace settings if needed.
Customize the color used to decorate WebAssembly component files in the Explorer:
witIdl.componentColor#5043b3#7c5eff#b15effTo customize, add to your settings:
{
"workbench.colorCustomizations": {
"witIdl.componentColor": "#your-color-here"
}
}
This extension is available on:
Visual Studio Marketplace: For VS Code users
Open VSX Registry: For VSCodium and other compatible editors
ovsx get bytecodealliance.wit-idlThis extension includes a WebAssembly component that requires the following tools for building:
cargo): Required for building the WebAssembly moduleYou can install these dependencies by running:
# Install Rust (if not already installed)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Run the setup script to install build tools
npm run setup-wasm
To install from source, follow these steps:
git clone https://github.com/bytecodealliance/vscode-wit.git && cd vscode-witnpm run setup-wasmnpm ci && npm run install-extensionThe extension includes comprehensive tests:
# Run all tests (lint, format, build, grammar, unit tests)
npm test
# Run unit tests only
npm run test-unit
# Run unit tests with coverage report
npm run test-unit-coverage
# Run tests in watch mode
npm run test-unit-watch
For Go WASM integration tests, see docs/GO_TESTING.md.
This extension is automatically published to both Visual Studio Marketplace and Open VSX Registry through GitHub Actions when a release is created.
Required secrets:
PAT_VSCE: Personal Access Token for Visual Studio MarketplaceOVSX_PAT: Personal Access Token for Open VSX Registry55 commits
27 commits
17 commits
14 commits
TypeScript
83.1%
Rust
11.6%
JavaScript
3.0%
Shell
2.3%