Skip to main content
Tested on Windows 10 (21H2+) and Windows 11. All commands are for PowerShell. Open a new terminal after each installer to pick up PATH changes.
1

Install Visual Studio Build Tools

Download and run the Visual Studio Build Tools installer.In the installer, check the “Desktop development with C++” workload. Make sure these optional components are selected:
  • MSVC Build Tools for x64/x86 (Latest)
  • Windows 10/11 SDK
  • C++ CMake tools for Windows
Verify:
& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -products * -requires Microsoft.VisualStudio.Workload.VCTools -property displayName
# Expected: Visual Studio Build Tools 2022
2

Install Node.js 22

Option A - nvm-windows (recommended):Download and run the latest nvm-setup.exe, then open a new terminal:
nvm install 22
nvm use 22
Option B - Download the LTS 22.x MSI installer from nodejs.org.Verify (in a new terminal):
node -v
# Expected: v22.x.x
3

Install Python

Python is required by node-gyp to compile native Node.js modules.
winget install Python.Python.3.12 --source winget
Or download from python.org - make sure “Add to PATH” is checked.Verify (in a new terminal):
python --version
# Expected: Python 3.x.x
4

Install the Rust toolchain

Download and run rustup-init.exe. Accept the defaults (installs stable-msvc).Verify (in a new terminal):
rustc --version
# Expected: rustc 1.xx.x (...)
rustup default stable-msvc
5

Install GStreamer (MSVC)

Download the MSVC x86_64 installer from gstreamer.freedesktop.org/download - click Windows → MSVC x86_64 (VS 2022, Release CRT).Run with default settings. After installation, verify (open a new terminal):
echo $env:GSTREAMER_1_0_ROOT_MSVC_X86_64
# Expected: C:\gstreamer\1.0\msvc_x86_64\ (or similar)
The installer didn’t set it. Find where GStreamer was installed and set it manually:
[Environment]::SetEnvironmentVariable("GSTREAMER_1_0_ROOT_MSVC_X86_64", "C:\Program Files\gstreamer\1.0\msvc_x86_64\", "User")
Then restart your terminal.
6

Install CMake

winget install Kitware.CMake --source winget
Or download from cmake.org/download - make sure “Add to PATH” is checked.Verify (in a new terminal):
cmake --version
# Expected: cmake version 3.x.x
7

Clone the repo and install dependencies

git clone https://github.com/Laxcorp-Research/project-raven.git
cd project-raven
npm install
Verify:
Test-Path node_modules\.package-lock.json
# Expected: True
# Fix 1: Set the version hint for node-gyp
npm config set msvs_version 2022
Remove-Item -Recurse -Force node_modules
npm install

# Fix 2: Environment variable (works on all npm versions)
$env:GYP_MSVS_VERSION = "2022"
Remove-Item -Recurse -Force node_modules
npm install
8

Build the GStreamer echo-cancellation addon

First, check the Electron version:
node -e "console.log(require('./node_modules/electron/package.json').version)"
Then build targeting that version:
cd src\native\aec
npm install
npx cmake-js compile --runtime electron --runtime-version <ELECTRON_VERSION>
cd ..\..\..
Replace <ELECTRON_VERSION> with the version from the previous command.
The --runtime electron --runtime-version flags are required. Without them, the addon is built for Node.js instead of Electron and will crash when loaded.
Verify:
Test-Path src\native\aec\build\Release\raven-aec.node
# Expected: True
9

Build the Windows audio capture module

cd src\native\windows
npm install
npx napi build --platform --release
cd ..\..\..
Verify:
Test-Path src\native\windows\raven-windows-audio.win32-x64-msvc.node
# Expected: True
10

Run the app

npm run dev
The Electron app opens. On first launch you’ll see a 6-step onboarding flow - enter your API keys.
If audio capture doesn’t work, check Settings → Sound and make sure the correct playback and recording devices are set as default.

Troubleshooting

SymptomFix
Could not find any Python installationInstall Python 3.x and add to PATH (Step 3)
Could not find any Visual Studio installationSet $env:GYP_MSVS_VERSION = "2022", delete node_modules, re-run npm install
cmake-js: “CMake is not installed”Install CMake (Step 6)
cmake-js: “GStreamer not found”Set GSTREAMER_1_0_ROOT_MSVC_X86_64 and restart terminal (Step 5)
AEC addon crashes Electron on startupRebuild with --runtime electron --runtime-version (Step 8)
napi build linker errorsrustup default stable-msvc and ensure VS Build Tools C++ workload is installed