GitHub ↗

1bit JARVIS

The reference voice assistant that ships with the engine. Every stage is in-process and pure C++, and the LLM runs on any backend. The engine is the app.

mic VAD STT LLM TTS speaker

One process. No Python.9 files · ~1,300 lines in tools/jarvis/

one process

The in-process BackendManager replaced the old HTTP link to a second server. No wire, no orchestration, no service to babysit.

pure C++

The only subprocesses are arecord, aplay, and piper, the same fork/exec idiom as the engine's own NPU worker. Zero Python anywhere.

default stack

Zyphra, by default: ZR1 routing into the ZAYA / BlackMamba / Zamba2 LLMs. Point the engine at any model instead, and JARVIS runs it.

# the one binary is the app
$ ./build/1bit jarvis --model "Qwen3-0.6B" --text            # text chat
$ ./build/1bit jarvis --model "Qwen3-0.6B" \
    --whisper models/whisper-tiny.gguf \
    --piper-model ~/piper/en_US-lessac-medium.onnx         # voice

Honest status.measured, not promised

VAD

Energy-based, 20 ms frames, lookback and ramp-down. Kept from v1.

STT

GPU-accelerated when a HIP device is present, scalar CPU fallback, WHISPER_GPU=0 to force scalar. Verify on hardware before you trust it.

Barge-in

Not yet. Utterances during a reply are dropped (P1).

Etc: STT on an engine backend (for NPU), sentence streaming, barge-in (P1). Codec voice as a stock voice and native ALSA audio (P2).