VS Code support for the Vivid creative coding framework.
- Auto-Download Runtime: Automatically downloads the Vivid runtime on first use
- Compile Error Diagnostics: GCC/Clang errors shown in Problems panel with jump-to-location
- Operator Tree View: Browse chain operators in the sidebar
- Node Inspector: Edit parameters with live preview
- Performance Panel: FPS, frame time, and per-operator timing
- Inline Decorations: Live values shown next to code
- WGSL Language Support: Syntax highlighting for shader files
From VS Code Marketplace (Recommended):
- Open VS Code
- Go to Extensions (Ctrl+Shift+X / Cmd+Shift+X)
- Search for "Vivid"
- Click Install
From VSIX file:
- Download the
.vsixfile from Releases - In VS Code: Extensions → ⋯ → Install from VSIX...
- Select the downloaded file
The extension will automatically download the Vivid runtime when you first run it.
# Clone the repository
git clone https://github.com/seethroughlab/vivid-vscode.git
cd vivid-vscode
# Install dependencies
npm install
# Compile TypeScript
npm run compile
# Launch in development mode
# Press F5 in VS Code, or:
code --extensionDevelopmentPath=$(pwd)Using a local Vivid build:
If you're developing Vivid itself, set the runtime path in settings:
{
"vivid.runtimePath": "/path/to/vivid/build/bin/vivid"
}This bypasses the auto-download and uses your local build.
When you run "Vivid: Start Runtime" without a custom runtimePath:
- Extension checks
~/.vivid/bin/vivid - If missing, prompts to download from GitHub Releases
- Downloads the correct archive for your platform:
vivid-darwin-arm64.tar.gz(macOS Apple Silicon)vivid-darwin-x64.tar.gz(macOS Intel)vivid-win32-x64.zip(Windows)vivid-linux-x64.tar.gz(Linux)
- Extracts to
~/.vivid/ - Tracks version in
~/.vivid/version.json
- On startup (if
vivid.checkUpdatesOnStartis enabled) - Manually via "Vivid: Check for Updates" command
- Compares installed version against latest GitHub release
| Command | Description |
|---|---|
Vivid: Start Runtime |
Launch Vivid (downloads if needed) |
Vivid: Stop Runtime |
Stop runtime and disconnect |
Vivid: Force Reload |
Trigger hot-reload |
Vivid: Check for Updates |
Check for new Vivid releases |
Vivid: Reinstall Runtime |
Force re-download of runtime |
| Command | Description |
|---|---|
Vivid: Create New Project |
Create a new Vivid project with templates and addon selection |
Vivid: Bundle as App |
Package project as standalone macOS app |
Vivid: Create Operator Template |
Generate a custom operator template file |
| Command | Shortcut | Description |
|---|---|---|
Vivid: Add Operator |
Cmd+Shift+A |
Insert operator from catalog at cursor |
Vivid: Solo Operator |
Preview single operator output | |
Vivid: Exit Solo Mode |
Return to normal view |
| Command | Description |
|---|---|
Vivid: Toggle Inline Decorations |
Show/hide inline value previews |
Vivid: Go to Operator |
Jump to operator definition in chain.cpp |
| Command | Description |
|---|---|
Vivid: Configure MCP Server |
Set up Claude Code MCP integration |
Vivid: Manage Addons |
Install/remove Vivid addons |
| Setting | Default | Description |
|---|---|---|
vivid.runtimePath |
"" |
Custom path to vivid executable (empty = use auto-downloaded) |
vivid.websocketPort |
9876 |
WebSocket port for runtime communication |
vivid.showInlineDecorations |
true |
Show inline value previews in editor |
vivid.previewSize |
48 |
Thumbnail size in pixels |
vivid.autoConnect |
true |
Auto-connect when opening a Vivid project |
vivid.checkUpdatesOnStart |
true |
Check for runtime updates on activation |
The extension adds a Vivid panel to the Activity Bar with:
- Operators: Tree view of all operators in your chain
- Inspector: Parameter editor for selected operator
- Performance: Real-time FPS and timing metrics
Use Vivid: Create Operator Template to generate a starting point for your own operators:
- Run the command from the Command Palette (
Cmd+Shift+P) - Enter a name (e.g.,
ColorShift,WaveDistort) - Select the operator type:
| Type | Use Case |
|---|---|
| Shader Effect | Process input textures with WGSL shaders (most common) |
| Shader Generator | Generate textures from scratch (noise, gradients, shapes) |
| Value/Modulator | Output scalar values for animation/modulation |
| Audio Synth | Generate or process audio (requires vivid-audio) |
| Audio Analyzer | Extract values from audio (RMS, spectrum, beats) |
The template is created in operators/yourOperator.h. To use it:
// In chain.cpp
#include "operators/colorShift.h"
void setup(Context& ctx) {
auto& chain = ctx.chain();
chain.add<ColorShift>("shift");
}"Cannot connect to runtime"
- Ensure the runtime is started (Vivid: Start Runtime)
- Check that port 9876 is not in use
- Look for errors in Output → Vivid
"No releases found"
- The Vivid runtime may not have releases yet
- Set
vivid.runtimePathto a local build
Runtime crashes on start
- Check Output → Vivid for error messages
- Try reinstalling: "Vivid: Reinstall Runtime"
- Report issues at vivid/issues
# Watch mode (auto-recompile on changes)
npm run watch
# Lint
npm run lint
# Package as VSIX
npm run packageMIT