// the find
Priler/jarvis
Offline voice assistant that respects your privacy. Forged in Rust. WIP.
Jarvis is a Tauri desktop voice assistant that runs speech recognition, wake-word detection and intent matching on the local machine, with no cloud calls. It is aimed at Russian speakers on Windows who want an offline assistant they can extend with their own commands, and at Rust developers who want a working example of combining Vosk, ONNX models and audio capture in one app. The README says it is outdated, so treat its feature list as a starting point rather than a status report.
The core lives in a jarvis-core crate with separate modules for recording, audio output, listeners, STT, intent and Lua scripting, and the Tauri GUI and CLI sit on top of it. That split is what makes the backends swappable: three recorder implementations (cpal, portaudio, pvrecorder), two audio output backends (kira, rodio), and three wake-word listeners (Porcupine, Rustpotter, Vosk). Commands are data rather than hardcoded logic: each one is a directory with a command.toml or command.yaml, plus optional Lua or AutoHotkey scripts. Intent handling is more ambitious than keyword matching. embeddingclassifier.rs runs a multilingual MiniLM ONNX model through ort, and a GLiNER module handles slot extraction, both on-device. That is a serious offline NLU design, even though the README still says NLU is 'nothing yet'.
The wake-word story is unresolved. The README marks Rustpotter as partially implemented, calls the Vosk-based option very slow, and makes Porcupine depend on a Picovoice API key, which is a third-party account dependency in a project that advertises no cloud. Platform reach is thin: the native libraries in lib/ are only for Windows amd64, nearly every command is an AutoHotkey script, and the recognizer only handles Russian today, with English and Ukrainian listed as coming. Anyone on Linux or macOS would need work in the recorder, command and packaging layers first. The license is CC BY-NC-SA 4.0, a content license rather than a software license, and its NonCommercial clause rules out commercial use. That is a bigger constraint than it looks for a repo that reads like a framework. Model weights (model.onnx), Windows DLLs and wake-word files are committed directly into the repository, so clones are large and model versions are pinned by accident rather than by a manifest.