local-first · Linux (X11 & Wayland), macOS & Windows · no cloud

NAVA

Hold a key. Speak. Done.

AI voice dictation that runs entirely on your machine — faster-whisper ASR, XTEST injection, no telemetry.

RTF on a 2015 i7
~0.45×
Audio written to disk
0bytes
Telemetry calls home
none·ever
scroll

// what is nava

A voice, injected anywhere

Hold Right Ctrl, speak, release — polished text lands in whatever app has focus. Everything runs on your machine. No accounts, no cloud, no catch. Runs on Linux (X11 & Wayland), macOS, and Windows.

// get it running

Install

Pick your platform below, then follow the numbered steps. The first run downloads the Whisper model (~250 MB for small.en); after that, NAVA is fully offline.

Choose your platform

  1. Download the package

    Debian · Ubuntu · Linux Mint — pulls system deps and builds a venv in /opt/nava.

  2. Install it

    user@nava:~$ — apt
    $ sudo apt install ./nava_0.0.1_all.deb
  3. Set it up

    user@nava:~$ — setup
    $ nava setup     # model · hotkey · cues · dictionary
  4. Run it

    user@nava:~$ — start
    $ nava start     # background daemon; nava enable = auto-start on login
Other install methods (AUR · AppImage · from source)

AUR — Arch Linux

The Python env is created in /opt/nava/venv on first nava run.

user@nava:~$ — makepkg
$ cd packaging/aur && makepkg -si
$ nava setup && nava start

AppImage experimental

Bundles Python + NAVA deps. You still need xdotool xclip x11-utils libnotify-bin on the host.

user@nava:~$ — appimage
# build it (needs: pip install python-appimage)
$ bash packaging/appimage/build_appimage.sh
$ ./build/appimage/NAVA-0.0.1-x86_64.AppImage setup

From source

install.sh handles apt deps + venv + wizard, or do it by hand.

user@nava:~$ — source
$ git clone https://github.com/arasheslamii/nava nava && cd nava
$ ./install.sh        # apt deps + venv + wizard, or:
$ python3 -m venv .venv && . .venv/bin/activate
$ pip install -e ".[hotkey,audio,asr,tui,bench,dev]"
$ sudo apt install -y xdotool xclip x11-utils libnotify-bin libportaudio2
$ nava setup

Build the .deb yourself

build_deb.sh
$ bash packaging/deb/build_deb.sh   # -> dist/nava_<version>_all.deb

Requirements — installed automatically as package dependencies

ToolDebian / UbuntuArchPurpose
xdotoolxdotoolxdotoolXTEST typing + paste + window detection
xclipxclipxclipclipboard backend
xpropx11-utilsxorg-xpropper-app paste policy (terminals)
notify-sendlibnotify-binlibnotifyoptional desktop notifications
PortAudiolibportaudio2portaudiomicrophone capture

Plus Python ≥ 3.10. The table above covers the Linux (X11) build; the Wayland, macOS, and Windows builds pull the equivalent deps automatically through their installer.

// the manual

Commands

One nava binary runs the whole show — foreground dictation, the background daemon, diagnostics, and low-level injection. The same commands work identically across all four builds — Linux (X11 & Wayland), macOS, and Windows.

man nava
CommandWhat it does
nava dictateforeground: hold Right-Ctrl → speak → release → inject
nava start / stop / statusbackground daemon (systemd --user)
nava enableauto-start on login
nava paste-lastre-inject the most recent transcript (bind to a DE shortcut)
nava setup / configTUI wizard / config editor
nava doctordiagnostics (X11, xdotool, clipboard, mic, hotkey, ASR)
echo hi | nava-injectlow-level text injection

// need a hand?

Support & community

Most problems are one command away. When they're not, the community is on GitHub.