How it works

How NovaHUD turns speech into Claude Code commands

Every step below happens on your Mac. There is no cloud service in the loop for any of it.

NovaHUD's voice pipeline has four stages, and all four run locally on Apple silicon.

Your microphone audio is transcribed on-device by whisper.cpp. A local Llama 3.2 3B model running under Ollama works out which session you were talking to and, in Summary mode, condenses that session's output down to the bottom line. The text goes to the right Claude Code session. The reply comes back in that session's own voice, spoken by Kokoro-82M running on the Apple Neural Engine.

Because no stage calls out to a service, there are no API keys, no per-token costs and no rate limits — and no audio ever leaves the machine.

The pipeline, stage by stage

Four stages, one machine.

Stage 1 · Hear

Your microphone audio is transcribed on-device

NovaHUD listens through your Mac's microphone and transcribes what you said using whisper.cpp, an efficient C/C++ implementation of OpenAI's Whisper speech-recognition model that runs locally. The audio buffer stays in memory on your Mac; it is not uploaded, stored on a server, or used to train anything.

It is fast enough that you do not wait for it. On an M1 MacBook with 16 GB of memory, a spoken command of just under three seconds is transcribed in roughly a third of a second — about six times faster than real time. The speech-recognition server stays warm in the background, so there is no model load on each utterance.

Runs on: your Mac
Stage 2 · Route

A local model works out who you were talking to

Transcribed text is not a command yet — "blue orb, are you there?" has to become "deliver this to the session whose orb is blue". A local Llama 3.2 3B model running under Ollama resolves the handle you used, whether that was a name, a nickname, the session title, an orb colour, or the word "everyone".

Runs on: your Mac
Stage 3 · Deliver

The text reaches the right Claude Code session

NovaHUD sends what you said to that session and its floating card updates live. Because each card is permanently bound to one session, what you are looking at is always the session you addressed. Say "everyone" and every session gets it.

Runs on: your Mac
Stage 4 · Speak

The reply comes back in that session's own voice

Output is spoken by Kokoro-82M, an 82-million-parameter text-to-speech model, running on the Apple Neural Engine. Each session gets a distinct human voice, so you can tell two sessions apart without looking. In Summary mode the local Llama model condenses the output first and the reply is attributed by session name; in Read aloud mode the output is spoken in full; in Quiet mode nothing is spoken at all.

Runs on: your Mac (Neural Engine)

Why the Apple Neural Engine matters here

Text-to-speech is the stage you notice. If a reply takes a second to start, a conversation stops feeling like a conversation.

Kokoro-82M runs on the Neural Engine rather than the CPU or GPU, which is what makes speech generation fast enough to keep up with a back-and-forth on a laptop — while leaving the CPU free for the work Claude Code is actually doing.

The difference is not small. Measured on an M1, the same model generates speech four to five times faster than real time on the Neural Engine. The identical model running on the CPU manages about three and a half times real time at full precision, and an int8-quantised build is actually the slowest of the three — slower than real time, and unusable for conversation — because the cost of unpacking the weights outweighs the saving on Apple silicon. Picking the right runtime mattered more than picking the right model.

It also means the voices cost nothing to run. A cloud text-to-speech service bills per character, so a chatty assistant is an expensive one. A local model on dedicated silicon is free after the download.

Speech recognitionwhisper.cpp, on-device (~0.3s per command)
Routing & summarisingLlama 3.2 3B via Ollama
Text-to-speechKokoro-82M on the ANE (4–5× real time)
Audio leaves the MacNever
API keysNone
Per-token costNone
Rate limitsNone

How interruption works

While a session is speaking, NovaHUD is still listening. When it detects that you have started talking, it stops the current utterance immediately — mid-word if that is where you cut in — and starts transcribing what you are saying instead.

You do not need a stop command or a wake word to do this. Talking over it is the stop command, which is the only version of this that survives contact with real use: by the time you have said "Nova, stop", the sentence you wanted to stop has already finished.

What NovaHUD does talk to a server for

Being precise about this is the whole point of claiming it.

The voice pipeline is entirely local. The app does make network requests for one thing only: licensing. It talks to api.novahud.app to check whether your free trial is still running, whether you have an active licence or subscription, and to handle sign-in.

Those requests carry licensing information — not your microphone audio, not your transcripts, and not your code. There is no telemetry endpoint for what you say to your sessions, because there is no server-side voice pipeline to send it to.

The privacy page spells out exactly what is and is not sent.

What you need to run it

macOS 14 or later

NovaHUD requires macOS 14 (Sonoma) or newer.

An Apple silicon Mac

The local models rely on Apple silicon, including the Neural Engine for the voices. Intel Macs are not supported.

Microphone access

macOS will ask for microphone permission the first time you run it. Everything it hears is transcribed on that Mac.

Claude Code

NovaHUD controls Claude Code sessions, so you need Claude Code itself. NovaHUD is an independent third-party app and is not affiliated with or endorsed by Anthropic.

Ollama

The local Llama 3.2 3B model that handles routing and summaries runs under Ollama.

Disk space for the models

The local speech, voice and language models live on your Mac rather than in a data centre, so they take up local disk space.

See the pipeline for yourself

Three days, every feature, no credit card. Requires macOS 14 or later on an Apple silicon Mac.