N.O.V.A v2 / documentation

Cross-Platform Notes

What stays the same across Windows, macOS, and Linux, and what has to differ.

What's shared

Most of the stack is already cross-platform out of the box: Python, openWakeWord, Silero VAD, Piper, Ollama, SQLite, and FastAPI all run unmodified on any of the three.

What differs

AreaWindowsmacOSLinux
System audio captureWASAPI loopback (PyAudioWPatch)Virtual driver (BlackHole) or ScreenCaptureKitPulseAudio / PipeWire monitor source
STT accelerationCUDA or CPUMetal (whisper.cpp)CUDA or CPU
Run at loginTask Schedulerlaunchdsystemd user service

The audio adapter

One AudioSource interface with a MicSource and a LoopbackSource implementation per OS. The rest of the app never sees the difference. Because faster-whisper has no Metal acceleration, a whisper.cpp backend is used where Apple silicon needs to stay fast.

Packaging

PyInstaller or Briefcase build a native artifact per OS from the same code: a Windows .exe, a macOS .app, and a Linux AppImage. Ollama ships its own native installer on all three.