Updated September 4, 2026 · By Sumbat.T

Dictate on Linux



A Linux build that installs from a .deb
Ubuntu GNOME on Wayland, Ubuntu GNOME on X11 and Mint Cinnamon are listed as released. Or use the Chrome extension, which sidesteps the display server entirely.
Search for Linux speech to text and you will get a list of seven or eight tools, each with a paragraph about its model and its licence. Install the top recommendation and there is a decent chance it transcribes your voice flawlessly and then types absolutely nothing into your editor. Nothing is broken. You have simply hit the thing those lists left out.
Dictation software does not really type. It converts your speech to text and then simulates keystrokes so that the text lands in whatever application has focus. On Windows and macOS that simulation is a documented system service and it is invisible to you. On Linux it is the hardest part of the whole problem, because how you simulate a keystroke depends entirely on which display server you are running.
Under X11, any program can inject input events into any other program. That is what makes xdotool work, and it is also a long-acknowledged X11 security weakness: a keylogger is trivial to write under X11 for exactly the same reason dictation is easy. Wayland deliberately closed that hole. A normal Wayland application cannot shove keystrokes into another application, which is a genuine security improvement and simultaneously the reason your dictation tool sits there doing nothing.
Check this first
Run echo $XDG_SESSION_TYPE in a terminal. If it prints wayland, several of the most-recommended tools on this page need extra configuration before they will type a single character. If it prints x11, nearly everything works out of the box.
This matters more every year, because the major distributions have been moving to Wayland by default. Which means the standard advice on page one of Google is drifting further out of date with each Ubuntu release, and the tools that get recommended most enthusiastically are often the ones with the most setup left to do.
Almost every open-source dictation tool on Linux delegates the typing step to one of four small utilities. Which one you need is decided by your display server, and the amount of setup varies enormously between them. This table is the part of the decision that actually determines whether an evening of installing goes well.
| Backend | Display server | Setup | What to know |
|---|---|---|---|
xdotool | X11 only | One package install | The default for nerd-dictation. Types nothing under Wayland. |
wtype | Wayland | One package install | Handy prefers it, but its README says it does not work on Ubuntu 26.04. |
ydotool | X11, Wayland, TTY | Binary, group, udev rule, systemd | The reliable answer, and by far the most work to set up. |
dotool | X11, Wayland, TTY | Binary plus uinput access | Same uinput approach as ydotool with a simpler interface. |
Source: the projects’ own documentation, read September 2026.
The gap between the second and third rows is the whole story. Adding wtype is one apt install. Adding ydotool means fetching a binary from the project’s releases page, putting it somewhere on your $PATH, adding your user to the input group, and writing a udev rule so that /dev/uinput is writable without root. The nerd-dictation project documents all of this itself, and is candid about why it is not the default: ydotool “requires some system configuration to use conveniently” and “lacks accessible documentation”.
# Which display server am I actually running?
$ echo $XDG_SESSION_TYPE
wayland
# The X11 answer: one package, done.
$ sudo apt install xdotool
# The Wayland answer, short version:
$ sudo apt install wtype
# The Wayland answer when wtype will not do:
$ sudo usermod -aG input $USER
$ echo 'KERNEL=="uinput", GROUP="input", MODE="0660"' \
| sudo tee /etc/udev/rules.d/80-uinput.rules
# then a systemd unit for ydotoold, then log out and back inNone of that is beyond anyone who runs Linux by choice. It is simply worth knowing that it is in front of you before you start, rather than discovering it at the point where you expected to be dictating.
Sorted by how much work stands between installing and dictating, not by preference. The Wayland column is the one to read first.
| Tool | Type | Wayland | Install | Price |
|---|---|---|---|---|
BlabbyAI | Packaged desktop app | Ubuntu GNOME Wayland listed released | .deb, AppImage, snap | $8.49/mo, free tier 60 credits weekly |
Handy | Open-source desktop app | Limited; needs wtype, or ydotool on Ubuntu 26.04 | Prebuilt binaries | Free, MIT |
Speech Note | Standalone window | Not affected, does not type into other apps | Flatpak | Free, MPL-2.0 |
Whispering | Open-source desktop app | Same class of input-backend setup | Prebuilt binaries | Free, bring your own API key |
nerd-dictation | CLI script | Types nothing on default xdotool backend | Clone the repo | Free, GPL-3.0 |
whisper.cpp | Library and CLI | You wire up input yourself | Build from source | Free, MIT |
ibus-speech-to-text | Input method | Works through IBus on GNOME | Distro package | Free |
Source: vendor documentation and project READMEs, read September 2026. GitHub figures via the GitHub API on 2026-09-04.


BlabbyAI is a dictation app rather than a transcription tool: you press a shortcut, speak, and the text appears in whatever field your cursor is in. A toolbar sits at the bottom centre of the screen, and the same build carries custom modes, custom spellings and language selection.
The reason it belongs at the top of a Linux list is narrow and specific: it is packaged. The download is a .deb, an AppImage or a snap, so on a Debian or Ubuntu derivative it is a double-click or one dpkg -i, and the AppImage runs without installing anything system-wide at all. The support matrix on the Linux page lists Mint Cinnamon X11, Ubuntu GNOME X11 and Ubuntu GNOME Wayland as released, with KDE Plasma still in development. That last detail is the one that matters, given everything above.

Source: BlabbyAI Linux app.
What you get for the money
$8.49 a month, unlimited. The free tier is 60 credits weekly with no card, which refills rather than running out permanently, so you can test it on real work over several weeks.
Where it differs from the free tools
Custom modes. A mode is a free-form AI instruction applied to whatever you just said, so the same dictation can come out as a tidied paragraph, a bulleted list or a commit message.
Custom modes are worth a sentence more, because they are the part with no open-source equivalent on this page. The instruction is free text, not a preset, so it does whatever a language model can do to a piece of writing: strip filler, enforce a house style, translate, convert rambling speech into a structured report, or honour spoken commands you define yourself such as saying “new paragraph”. Your speech is the input to the mode, and the mode rewrites it.
The browser route
If most of your writing happens in a browser, the BlabbyAI Chrome extension removes the display-server problem by never participating in it. It runs inside Chrome, so X11, Wayland and uinput are all irrelevant, and it works on any distribution and any desktop environment. There is nothing to install at the system level and no udev rule to write.

Handy is an MIT-licensed, fully offline dictation app written in Rust, and it is the most credible free option in this category by some distance. It works on Windows, macOS and Linux, describes itself as extensible, and its stated principle is that accessibility tooling should not sit behind a paywall. Checked against the GitHub API on 2026-09-04 it has 30,961 stars and was last pushed on 2026-08-31, so it is both popular and actively maintained, which is not a given in this category.
The asterisk is Wayland, and to the project’s credit it is documented in the README rather than buried in an issue tracker. Handy lists “limited support for Wayland display server” and requires wtype or dotool for text input to work. Then comes the line that reframes the whole category:
From Handy's own README
“Ubuntu 26.04: Has Wayland display server by default. wtype does not work, you need to install ydotool and configure systemd.”
Read that against the fact that Ubuntu is the most widely used desktop distribution and that current Ubuntu ships Wayland as standard. The most recommended free dictation tool, on the most common distribution, in its default configuration, needs the heaviest of the four input backends and a systemd unit. That is not a criticism of Handy, which is being unusually honest here. It is the clearest single illustration of why Linux dictation has a reputation for being fiddly.

Speech Note, sometimes called dsnote, is the most complete offline voice application on Linux and it solves the display-server problem by declining to have it. It is a window. You dictate into Speech Note, and the text appears in Speech Note. Because it never tries to inject keystrokes into another application, X11 and Wayland are equally fine, and there is no input backend to install.
It is MPL-2.0 licensed, installs cleanly as a Flatpak, and was last pushed on 2026-09-02 with 1,624 stars, so it is very much alive. It also does more than dictation: offline speech to text, text to speech, and machine translation in one application, with Vulkan GPU acceleration for larger models. If your job is producing a block of text you will then paste somewhere, this is arguably the best tool on the page.
The trade-off, stated plainly
Speech Note is not system-wide dictation. Every sentence involves speaking into its window and then copying the result to where you actually wanted it. That is fine for drafting a document and wearing for a Slack reply. The tools that type directly into your apps are the ones that pay the Wayland tax, and this is the other side of that trade.

Whispering, part of the Epicenter project, is an open-source dictation app whose distinguishing idea is that you supply the transcription backend. It supports local models and a long list of hosted providers, which means the accuracy and the cost are both yours to choose rather than the developer’s to set. Checked on 2026-09-04 the repository had 4,786 stars and was last pushed on 2026-08-30.
It suits one person very well: someone who already has an API key, knows which model they want, and objects on principle to paying a subscription for a thin layer over a model they could call themselves. If that is not you, the provider choice is one more decision between you and dictating, and the same Linux input-backend work still applies on Wayland.
nerd-dictation is a single-file Python script built on the VOSK API, GPL-3.0, and it is genuinely elegant: tiny models under 50MB, almost no resource usage, and hackable by anyone comfortable in Python. It appears in essentially every Linux dictation roundup, including Google’s own AI Overview for this query.
Two things about it are worth stating, because the roundups recommending it generally state neither. The first is maintenance: checked against the GitHub API on 2026-09-04, the repository was last pushed on 2025-10-10, which is close to eleven months without a commit. It is not archived and the code still runs, but it is not under active development in the way Handy and Speech Note are.
The second is the Wayland behaviour, which its own documentation describes more clearly than any article about it does. The default input backend is xdotool, and the project’s ydotool guide says of it, in plain words:
From the nerd-dictation documentation
“It is only compatible with Xorg, not with Wayland. If you want to use Wayland, the program will not type anything.”
The fix is real and documented: pass --simulate-input-tool and choose DOTOOL, YDOTOOL or WTYPE instead. The same guide notes a second xdotool limitation worth knowing if you dictate in anything other than English, which is that it suffers “considerable slowdowns when writing characters not found in the English language, temporarily freezing your computer’s display”.
# nerd-dictation on Wayland: the default will type nothing.
$ nerd-dictation begin --simulate-input-tool=DOTOOL
# ...or YDOTOOL, if you have done the uinput and systemd setup:
$ nerd-dictation begin --simulate-input-tool=YDOTOOL
# Non-English text under xdotool can freeze the display.
# This is documented behaviour, not a bug in your setup.whisper.cpp is the C and C++ port of OpenAI’s Whisper model, and it underpins several of the applications above rather than competing with them. On its own it is not a dictation tool: it turns audio into text, and everything else, the hotkey, the microphone capture, the keystroke simulation, is yours to write.
For a certain kind of Linux user that is the appeal rather than the drawback. Twenty lines of shell tying arecord to whisper.cpp to dotool produces exactly the dictation workflow you want and nothing else, with no telemetry, no account and no update you did not ask for. If you have ever built your own status bar, you already know whether this paragraph is describing a good afternoon or a bad one.
The last option is different in kind. Rather than being an application that types into other applications, it plugs into IBus, the input method framework GNOME already uses for every other keyboard layout and input method. You install the package, add Speech to Text under Input Sources in your keyboard settings, and it becomes available in standard applications the way any other input method is.
Because it works through the input-method layer rather than by simulating keystrokes, it does not run into the Wayland wall in the same way. The constraints are that it is GNOME and Fedora territory in practice, and that it gives you raw transcription with none of the cleanup, formatting or custom instructions that the packaged tools layer on top. As a demonstration that Linux dictation can feel native, it is the most encouraging thing on this list.
The usual advice is to start from accuracy, which is the wrong end. Accuracy is a property of the model, and every tool here can run a comparable Whisper model, so most perceived accuracy differences are model-size differences you picked without noticing. Work through these in order instead.
echo $XDG_SESSION_TYPE. Everything below depends on this answer, and it takes two seconds.Skip the input-backend evening



Install a .deb and start dictating
60 credits every week on the free tier, no card. Ubuntu GNOME Wayland, Ubuntu GNOME X11 and Mint Cinnamon are listed as released, and the Chrome extension works on every distribution.
It is worth naming the underlying asymmetry, because it explains the shape of everything above. Windows ships voice typing on Win+H and macOS ships Dictation. Both are built into the operating system, both work in any text field, and neither asks you to think about how keystrokes are delivered. On those platforms a third-party dictation tool has to beat a decent free default.
No mainstream Linux distribution ships an always-available equivalent. The gap left by that is why seven credible projects exist here, most of them free and several of them excellent, and it is also why they all solve the last mile differently. There is no system service to delegate to, so each project picks its own answer, and the answers do not agree.
What Linux gets right
Genuine choice, real offline processing, and no per-minute billing. Nothing here sends your audio anywhere unless you choose a tool that does, and several are auditable line by line.
What it costs
The last mile. Every tool here has solved speech recognition; what separates them is how much work is left between a working transcript and text appearing where you wanted it.
That is also the fairest way to read this list. These are not seven tools of varying quality. They are seven different answers to one unglamorous engineering question that Windows and macOS answered centrally years ago, and the right one for you depends less on the model than on your display server and where your words need to land.
Not in the way Windows and macOS do. Windows ships Win+H voice typing in the operating system and macOS ships Dictation, and both work in any text field the moment you enable them. No mainstream Linux distribution ships an equivalent that is on by default. GNOME and Fedora users can install the ibus-speech-to-text package and add Speech to Text as an input source, which is the closest thing to a native option, but it is something you install and configure rather than something that is already there. Everywhere else, dictation on Linux means choosing a third-party tool. That is the whole reason this category exists on Linux and barely exists on Windows: the operating system leaves a hole, and seven or eight projects have each filled it a different way.
Because dictation tools do not really "type". They simulate keystrokes, and the way you simulate a keystroke on Linux depends entirely on your display server. Under X11 any program can inject input into any other program, which is what makes xdotool work and is also, incidentally, an X11 security weakness. Wayland deliberately closed that hole: a normal application cannot shove keystrokes into another application. So a dictation tool built on xdotool transcribes your speech perfectly and then types nothing at all, because the mechanism it uses to type has been blocked by design. The workarounds are ydotool and dotool, which operate at the kernel uinput layer below the display server, and wtype, which asks the compositor nicely through a Wayland protocol that not every compositor implements. This is the single most useful thing to understand before you pick a tool, and almost no roundup mentions it.
Modern Ubuntu defaults to the Wayland display server, so the question is really which tools handle Wayland. BlabbyAI ships a Linux build with Ubuntu GNOME on Wayland listed as released, alongside Ubuntu GNOME X11 and Mint Cinnamon X11, and it installs from a .deb, an AppImage or a snap. Handy runs on Ubuntu but its own README states that on Ubuntu 26.04, which is Wayland by default, wtype does not work and you need to install ydotool and configure systemd. nerd-dictation works if you switch its input simulation backend away from the default xdotool. Speech Note works because it is a window you dictate into rather than a tool that types into other apps, which sidesteps the problem entirely at the cost of not being system-wide.
Yes, and Linux is unusually well served here compared to other platforms. Handy is MIT-licensed and free, Speech Note is free under MPL-2.0, nerd-dictation is GPL-3.0, and whisper.cpp is free if you are willing to script around it. All of them run locally, so there is no per-minute charge and no account. The cost is your time: every one of them asks you to pick a model, size it against your hardware, and on Wayland install and configure an input backend as well. Paid tools charge for removing that work. BlabbyAI has a free tier of 60 credits weekly with no card required, so you can compare a packaged tool against an open-source one on your own sentences before deciding which kind of cost you would rather pay.
They get used interchangeably and they describe two genuinely different jobs. Transcription takes an existing audio file and turns it into text, which is what Buzz and whisper.cpp are built for. Dictation types your words into whatever application you are using, live, as part of writing. On Linux the split matters more than it does elsewhere, because transcription tools have no display-server problem at all: they read a file and write a file, and nothing needs to inject keystrokes. Dictation tools are the ones that break on Wayland. If you search for Linux speech to text and land on a tool that works flawlessly but only inside its own window, this distinction is why.
Yes. BlabbyAI ships a Linux desktop app as a .deb package, an AppImage and a snap, so it installs on Debian and Ubuntu derivatives through the package manager, or runs from the AppImage without installing anything system-wide. The support matrix on the Linux page currently lists Mint Cinnamon X11, Ubuntu GNOME X11 and Ubuntu GNOME Wayland as released, with KDE Plasma in development. It works the same way as the Windows app: a keyboard shortcut, a bottom-centre toolbar, and text typed into whichever application has focus, plus custom modes, custom spellings and language selection. The Windows app and the Chrome extension remain the two products we promote hardest, but the Linux build is real and downloadable rather than a waiting list.
This is the most underrated answer to the whole question and it deserves more attention than it gets. A Chrome extension runs inside the browser, so it never touches X11, Wayland, uinput or any display-server plumbing at all. The compatibility problem that dominates every other option on this page simply does not apply. If most of what you write happens in a browser, which for a great many people is Gmail, Google Docs, Notion, Jira, Slack, Linear and every internal web tool at work, the BlabbyAI Chrome extension dictates into all of them on any Linux distribution and any desktop environment, with no package to install and no udev rule to write. It will not type into a native GTK or Qt application, so it is not a full replacement for a desktop app, but for browser-heavy work it removes the hardest part of Linux dictation by not participating in it.
The accuracy is a property of the model, not the operating system, so a given Whisper model produces the same quality of transcript on Linux as it does anywhere else. What differs on Linux is which model you end up running. Open-source tools default to smaller local models sized to run comfortably on ordinary hardware, and a small model is measurably worse than a large one on proper nouns, technical terms and unusual names. So the accuracy gap people report between Linux and Windows dictation is usually a model-size gap they chose without realising, not a platform limitation. If a local tool feels inaccurate, try a larger model before switching tools, and expect it to be slower.
Developers face a specific version of the problem, because the applications you type into most, a terminal and an editor, are exactly where keystroke injection is fiddliest, and because code-adjacent vocabulary punishes small models. Two approaches work well. Run a packaged system-wide tool such as BlabbyAI so that dictation behaves identically in a browser, an editor and a chat window, and use a custom mode to shape spoken text into whatever form you want. Or, if you would rather assemble it yourself, pair whisper.cpp with dotool and script the pieces together. The larger point is that most of a developer day is not writing code: it is pull request descriptions, commit messages, Slack replies, ticket comments and documentation, all of which is ordinary prose that dictates well.
No, but it changes which tools feel usable. Every local option here runs on CPU, and small Whisper models transcribe a short utterance on an ordinary laptop CPU in a second or two, which is fine for dictation-sized chunks. Where a GPU matters is long-form transcription and larger models, and Speech Note specifically advertises Vulkan GPU acceleration for exactly that reason. Cloud-based tools sidestep the hardware question altogether by doing the work on a server, which is why they feel instant on a thin laptop and why they need a network connection. Decide which of those trade-offs you mind less before you judge a tool on speed.
Dictation on Linux without the setup evening
BlabbyAI ships a Linux .deb, AppImage and snap, with Ubuntu GNOME Wayland listed as released, plus a Chrome extension that works on every distribution. Free tier is 60 credits weekly, no card.