nerd-dictation in 2026: install, Wayland and punctuation

Ask for dictation software in any Linux forum and someone will reply "nerd-dictation" within about four minutes. It is the tool the community has used for years, it is offline, and it is GPL-3.0.
We make a competing product, so read this with that in mind. Below is where nerd-dictation is strong, what it costs you in setup, and where Vibe Typer fits.
TL;DR
- nerd-dictation is a Python script on the VOSK engine that runs on your own machine. You script what gets typed, and you assemble the install, the Wayland input tool and most of the punctuation yourself.
- You want it working in two minutes with punctuation and capitals → Vibe Typer.
- You are on Wayland and do not want to debug input injection → Vibe Typer.
- You dictate prose all day and accuracy is the whole game → Vibe Typer, and it is not close.
- You want to shape the output without writing Python → Vibe Typer: custom instructions in plain English and a custom dictionary.
The comparison
| nerd-dictation | Vibe Typer | |
|---|---|---|
| Engine | VOSK (Kaldi) | Cloud AI transcription |
| Where speech is processed | On your machine | Cloud, in memory, not stored |
| Wayland | Via dotool, ydotool or wtype | Native |
| X11 | Via xdotool | Native |
| Punctuation & capitals | Basic: a capital first word and a stop between dictations, via flags; the rest by your own script | Yes, automatic |
| Install | pip + git clone + model download | One AppImage |
| Configure before first use | Yes (audio tool, input tool, model) | No |
| Shaping the output | A Python hook you write | Custom instructions in plain English, plus a custom dictionary |
| Last update | October 2025 | Ongoing releases |
| Cost | Free | Free tier, then $8 a month billed annually |
Where nerd-dictation wins
It runs on your machine
nerd-dictation downloads a VOSK model to your disk and runs it there, so no audio leaves your machine.
The output is programmable
nerd-dictation reads a Python file, ~/.config/nerd-dictation/nerd-dictation.py, that rewrites the recognised text before it is typed:
def nerd_dictation_process(text):
return text.replace("new line", "\n").replace("semicolon", ";")
If you are dictating code, config or anything with a domain vocabulary, that hook lets you expand abbreviations, fix names the recogniser always mangles and enforce house style, all deterministically, in Python you write and maintain.
It has no daemon and no tray icon
nerd-dictation begin and nerd-dictation end, bound to whatever you like. Nothing runs when you are not dictating. For people who keep a tight process list, that is the point.
Where it costs you
Punctuation is mostly up to you
VOSK returns lower-case words with no punctuation. nerd-dictation adds a little on top: --full-sentence capitalises the first word, and --punctuate-from-previous-timeout puts a full stop or comma before a new dictation that starts soon after the last one. Inside a dictation there is nothing: no commas, no question marks, no capital "I".
For shell commands, that is fine. For an email, it means going back to fix every sentence, or writing rules in your config to turn spoken "comma" and "period" into symbols. VOSK also publishes a separate punctuation and case model (vosk-recasepunc-en-0.22, 1.6 GB), but nerd-dictation does not use it, so wiring it in is your project.
Accuracy is a generation behind
VOSK is Kaldi-based. It was excellent in 2021. Whisper-class models have moved a long way since, particularly on accents, technical vocabulary and noisy rooms. The vosk-model-small-en-us-0.15 in the standard install instructions is 40 MB. Fast and light, and it sounds like it. The full vosk-model-en-us-0.22 (1.8 GB) is noticeably better and worth trying before you conclude the tool is inaccurate.
Setup is a project, not an install
The documented path is:
pip3 install vosk
git clone https://github.com/ideasman42/nerd-dictation.git
cd nerd-dictation
wget https://alphacephei.com/kaldi/models/vosk-model-small-en-us-0.15.zip
unzip vosk-model-small-en-us-0.15.zip
mv vosk-model-small-en-us-0.15 model
Test it with ./nerd-dictation begin --vosk-model-dir=./model &, speak, then ./nerd-dictation end. To stop passing the model path every time, move it to the default location: mkdir -p ~/.config/nerd-dictation and mv ./model ~/.config/nerd-dictation.
Then you still have to pick an audio capture tool (--input with PAREC, SOX or PW-CAT), pick an input tool for your session, and bind the begin and end commands to a hotkey in your desktop environment.
Wayland is the real friction
nerd-dictation itself is fine on Wayland. Getting text into the focused window is the problem, and it is not nerd-dictation's fault. It is Wayland's security model, which deliberately stops one client synthesising input into another. You choose the tool with --simulate-input-tool:
XDOTOOL: the default, X11 only. Does nothing under Wayland.YDOTOOL: works via/dev/uinput, so it needs a daemon running with permission to that device. That is a real privilege decision, not a checkbox.DOTOOL: sameuinputapproach, simpler to run, same permission question.WTYPE: the clean Wayland answer, and it does not work on GNOME, because Mutter does not implement the virtual-keyboard protocol it needs. Since GNOME is the default on Ubuntu and Fedora, that rules it out for most people.
None of these is hard for someone who enjoys this. All of them are a wall for someone who wanted to dictate an email.
It is no longer actively developed
The last commit to nerd-dictation was on 10 October 2025, there are no tagged releases, and the only AUR package was last updated in December 2024. 64 issues and 19 pull requests are open. It still works, and a small Python script does not rot quickly, but if your distribution changes something underneath it, you are the maintainer.
Where Vibe Typer fits
Vibe Typer solves the punctuation, setup and Wayland problems above.
It is a single AppImage. It handles the input injection natively on both Wayland and X11 (including on GNOME) and migrates your settings if you switch session types. Transcription comes back punctuated and capitalised, and Magic Formatter cleans up the "um"s and false starts that you actually say. There is nothing to configure before the first sentence.
It runs in the cloud, with audio processed in memory and not stored. It is free to start with no card, and Pro is $8 a month billed annually for unlimited dictation.
chmod +x ~/Downloads/VibeTyper.AppImage
~/Downloads/VibeTyper.AppImage
Can you run both?
Yes. They use different hotkeys and neither holds the microphone when idle, so you can keep the nerd-dictation scripts you rely on and use Vibe Typer everywhere else: email, chat, documents and prompts in your terminal, punctuated, with no setup.
How to decide
Ask one question first: do you want to build your dictation setup, or just dictate?
nerd-dictation is a kit: a Python hook and a VOSK model, with the install, the Wayland input tool and the punctuation left for you to assemble and maintain. Vibe Typer is the finished app: one AppImage that types punctuated, cleaned-up text into any app on Wayland and X11, GNOME included, with nothing to configure before the first sentence.
If you want to dictate today, download Vibe Typer, set a hotkey and talk.
For the full field (Talon, Vocalinux, VOXD, whisper.cpp, OpenWhispr, Whispering and the rest, with a Wayland column for each), see the best AI voice typing apps for Linux: 16 that actually run. If you came here looking for a Wispr Flow replacement, Wispr Flow for Linux compares the main options. If you have already decided and want the Linux specifics, voice typing for Linux covers the install and the distro notes.
FAQ
What is nerd-dictation?
A free, offline speech-to-text tool for Linux, written in Python and licensed GPL-3.0. It runs the VOSK speech engine on your own machine and types the words into the focused window. You start and stop it with two commands, nerd-dictation begin and nerd-dictation end, bound to a hotkey of your choice.
How do I install nerd-dictation?
Install VOSK with pip3 install vosk, clone the nerd-dictation repository, download a VOSK model such as vosk-model-small-en-us-0.15 and move it to ~/.config/nerd-dictation/model. Then run ./nerd-dictation begin to start and ./nerd-dictation end to stop, and bind both to a hotkey in your desktop settings.
Does nerd-dictation work on Wayland?
Yes, with setup. Its default typing tool, xdotool, works on X11 only. On Wayland, pass --simulate-input-tool with DOTOOL, YDOTOOL or WTYPE. dotool and ydotool need permission to /dev/uinput, and wtype does not work on GNOME, the default desktop on Ubuntu and Fedora.
Does nerd-dictation add punctuation?
Only a little. VOSK returns lower-case words with no punctuation. The --full-sentence flag capitalises the first word, and --punctuate-from-previous-timeout adds a full stop or comma when you start a new dictation soon after the last one. Anything more, such as turning a spoken comma into a symbol, needs your own Python config.
Is nerd-dictation still maintained?
Its last commit was on 10 October 2025, and it has no tagged releases. It still works for many people, but 64 issues and 19 pull requests are open, so expect to fix problems yourself.
What are the best alternatives to nerd-dictation?
Vibe Typer. It is one AppImage that runs natively on Wayland and X11, GNOME included, and types punctuated, cleaned-up text into any app with nothing to configure. Audio is processed in the cloud, in memory, and not stored. Free to start, no card.
Try Vibe Typer free
Voice typing that works in every app on Linux, Windows, and macOS. Free to download: 2,000 words a month, no card.
Download free

