Voice
Hold Space and speak. Whisper dictation and Kokoro Read Aloud, both fully on-device, plus terminal voice for headless sessions.
nala hears and speaks without a cloud round-trip. Both voice models run entirely on your machine: faster-whisper for speech-to-text and Kokoro-82M for text-to-speech. No API keys, no per-word bill, and no audio leaves the device.
Dictation (Whisper)
| Control | Behavior |
|---|---|
| Hold Space | Push-to-talk: mic starts instantly, release to transcribe into the focused terminal. |
| Short Space | Still types a normal space. |
| Dictate (bottom bar) | Toggle listening without holding Space. |
| Esc | Cancel the current take. |
The engine is faster-whisper's small model (39 MB, downloaded on first use) running on CPU with int8 compute: good accuracy and speed on ordinary machines, no GPU required. It needs Python 3.10+ on PATH; on first use nala detects Python and offers to install faster-whisper for you.
Environment knobs:
| Variable | Default | Purpose |
|---|---|---|
NALA_WHISPER_MODEL | small | Model name (tiny … large-v3) |
NALA_WHISPER_PYTHON | python / python3 | Python executable |
NALA_WHISPER_PRELOAD | on | Warm the model after app start; set 0 to skip |
Read Aloud (Kokoro TTS)
Paste text and click the speaker icon, or use /read-aloud in the TUI. Kokoro-82M runs fully on-device via ONNX in a worker thread: 14 curated voices, in whatever language you think in. The model (~90 MB) downloads once on first use; after that it works offline.
TTS settings (Settings → TTS): voice selection with preview, speed (0.75x–1.5x), quality (q4/q8/fp16/fp32), volume, and interrupt-on-paste. Two response styles ship live in the app; pick yours.
System-wide dictation
It does not stop at the terminal. One shortcut dictates into any window (a browser tab, a doc, an email) even while nala sits quietly in the tray. Talk through a session when you are done, and the recap lands in that workspace's running notes.
Terminal voice (headless)
With the daemon running, voice works without the desktop window:
nala speak "the migration finished cleanly" # system TTS
nala dictate --wav recording.wav # local faster-whisper
nala voice status # what voice is doing
In the TUI: /speak on|last|stop for TTS control, /voice for dictation control, /play-back for session audio clips. The desktop remains the best path for push-to-talk and Kokoro quality.
Plan capture
The Plan button captures ideas by voice without running a shell command: speak the idea, and it becomes a plan-mode task with a Markdown artifact. The fastest way to get a thought out of your head and into the fleet's queue before it evaporates.
Why on-device matters
A router and a voice in the same process are the two raw parts for building specialized voice agents of your own, and prototyping one costs exactly nothing because the models are already on your machine. It also means voice works on a plane, in a Faraday cage of an office, and in any country your laptop happens to be in.