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
| Area | Windows | macOS | Linux |
|---|---|---|---|
| System audio capture | WASAPI loopback (PyAudioWPatch) | Virtual driver (BlackHole) or ScreenCaptureKit | PulseAudio / PipeWire monitor source |
| STT acceleration | CUDA or CPU | Metal (whisper.cpp) | CUDA or CPU |
| Run at login | Task Scheduler | launchd | systemd 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.