Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.useraven.ai/llms.txt

Use this file to discover all available pages before exploring further.

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 and click Install. Make sure these optional components are selected (they should be by default):
  • 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
If you have full Visual Studio (not just Build Tools) with the C++ workload, that works too.
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
The project requires node >= 22.12.0 (see package.json engines). Using nvm install lts may install a newer major version that hasn’t been tested.
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).
For GStreamer 1.28+, there is a single combined installer (runtime + development). For older versions, download both the Runtime and Development MSI files.
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.If GStreamer installed to C:\Program Files\gstreamer\ instead of C:\gstreamer\, that’s fine - just make sure the path matches your installation.
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
npm install takes a few minutes. It automatically rebuilds better-sqlite3 for Electron via the postinstall script.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)"
# Note the version (e.g. 40.4.1)
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. If you upgrade Electron later, you must rebuild this addon with the new version.
The build-deps.sh script is macOS-only. On Windows, the GStreamer MSVC installer already includes all required plugins (including WebRTC DSP).
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
  • Linker errors: Make sure Rust is using the MSVC target: rustup default stable-msvc
  • “Windows SDK not found”: Open Visual Studio Installer > Modify > Individual components and install the latest “Windows 10 SDK” or “Windows 11 SDK”
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 (Deepgram for transcription, Claude or OpenAI for AI assistance).
If audio capture doesn’t work, check Settings > Sound and make sure the correct playback and recording devices are set as default. WASAPI captures from the default devices.

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
NODE_MODULE_VERSION mismatch at runtimenpx @electron/rebuild -f -w better-sqlite3 from the project root
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
App starts, no audioSettings > Sound: set correct default playback/recording devices