The extension hosts a Blazor WebAssembly UI in a webview panel. A local HTTP server serves the Blazor static files. Tool calls from the AI are dispatched to a TypeScript handler (toolHandlers.ts) that implements file operations, git, bash, and more — all running in the VS Code extension host.
Network requests (LLM API calls) are proxied through the extension host via postMessage to bypass webview sandbox restrictions, with full streaming support.
Requirements
VS Code 1.138.0 or later
An OpenAI-compatible API endpoint (configured in the chat settings)
Usage
Run the command "Open InvAit chat" from the Command Palette (Ctrl+Shift+P / Cmd+Shift+P).
Configure your API endpoint and model in the settings dialog.
Start chatting — the AI can read files, edit code, run commands, and more.
Development
cd invaitcode
npm install
npm run compile # build TypeScript
npm run watch # watch mode for development
Press F5 to launch an Extension Development Host with InvAit loaded.
The Blazor UI (wwwroot/) is generated by building the UIBlazor project from the solution root. The InvAit.csproj build target CopyUIBlazorInVSCode copies the published output into invaitcode/wwwroot/.