Murmure: local speech-to-text with Parakeet TDT and LLM post-processing
Fully local, private and cross platform Speech-to-Text with LLM Post-processing
At a glance
- What is it?
- Murmure is a Rust and Tauri desktop app that transcribes speech on-device with NVIDIA's Parakeet TDT 0.6B v3 model, supports 25 European languages, and ships installers for Windows, Linux and macOS. The trade-off is packaging and OS permission plumbing, not transcription itself.
- Who is it for?
- Adopt Murmure if you dictate into editors and chat windows all day and want the audio to stay on the machine, and if you accept that a desktop app needs microphone and accessibility permissions and, on GNOME Wayland, a manually configured shortcut. Skip it if you need a server-side API, a headless transcription pipeline, or a language outside the 25 listed.
- Can I use it commercially?
- Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly Rust, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 1, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What Murmure actually replaces
Murmure is a desktop dictation tool. You launch it, speak, and text appears in whatever window has focus, with no network round trip. The README frames the intended uses narrowly: dictating into AI prompts (it names Cursor, ChatGPT, Mistral and Claude code), writing notes hands-free, capturing ideas, and post-processing text with a local LLM to translate or fix grammar. That last item is where the project's description goes beyond plain transcription, since the LLM step is also local.
The audience is people who already type into an editor or a chat box for hours and who do not want their voice leaving the machine. The README makes the privacy claim explicit: all processing happens locally, there is no telemetry, and no network connection is required for computation. That rules out the hosted transcription services by design rather than by configuration, which is a stronger position than an opt-out setting.
The language coverage is the constraint to read carefully. The README lists exactly 25 languages, all European: Bulgarian, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, German, Greek, Hungarian, Italian, Latvian, Lithuanian, Maltese, Polish, Portuguese, Romanian, Slovak, Slovenian, Spanish, Swedish, Russian and Ukrainian. If your dictation is in Japanese, Mandarin, Arabic or Hindi, this is not the tool, and no amount of configuration changes that.
How the Rust core and the Tauri shell divide the work
The repository layout puts the transcription engine in src-tauri/, a Rust crate, and the interface in src/, a Vite and React front end. The package.json scripts confirm the split: clippy, fmt and the dictionary evaluation test all run with cd src-tauri && cargo, while build runs tsc and vite build. The desktop shell is Tauri, invoked through the tauri script. So the audio capture, the model inference and the system-level shortcut handling live in Rust, and the settings UI, which is built from Radix UI primitives and @lobehub/ui components, lives in TypeScript.
The model is NVIDIA's Parakeet TDT 0.6B v3, linked from Hugging Face in the README. The README describes it as running entirely on-device for low-latency transcription. What it does not document is the download path for the weights: the README never states when the model is fetched, how large the download is, or where it is cached. That is the first thing a new user will wonder about, and the answer is not in the README.
The front end is not a single bundle. There is a second Vite configuration, vite.smartmic.config.ts, built by the build:smartmic script, and postinstall runs that build automatically after pnpm install. The name suggests a separate microphone-related bundle, but the README does not describe what SmartMic is or how it differs from the main window. Treat that as an undocumented internal split rather than a feature you can plan around.
The dictionary evaluation is a real, if narrow, quality signal. The eval:dictionary script runs cargo test --release dictionary_eval -- --ignored --nocapture, meaning the test is marked ignored by default and must be requested explicitly. There is no general test suite: the test script prints "No tests configured". So the project's automated correctness checking is limited to that one dictionary path, and the rest of the behaviour is exercised by hand.
Installing Murmure on Windows, Linux and macOS
Installation differs per platform, and the README treats Windows as the primary target. It requires Windows 10 or later; the README warns that older versions such as Windows 8.1 are unsupported and may fail with missing system libraries, naming dxcore.dll as an example. The Microsoft Visual C++ Redistributable is also required, and the README gives the specific error to expect if it is absent: MSVCP140.dll was not found. WinGet is the shortest path:
winget install Kieirra.MurmureThe README notes that --scope user will be available in the future, so the current install is not per-user scoped. Alternatively, download Murmure_x64.msi or Murmure_x64-setup.exe from the release page and run the wizard. The README also records that some users reported Kaspersky blocking Murmure, with the suggested fix being an antivirus exclusion.
On Debian-based Linux, the quick install is a shell script piped to sh:
curl -fsSL https://raw.githubusercontent.com/Kieirra/murmure/main/install.sh | shThe README also documents the .deb route, sudo dpkg -i Murmure_amd64.deb, and an AppImage that needs chmod +x Murmure_amd64.AppImage before it runs.
On macOS, download Murmure_aarch64_darwin.dmg for Apple silicon or Murmure_x86_64_darwin.dmg for Intel, drag the app to Applications, open it from there, grant microphone and accessibility permissions, then restart Murmure for the permissions to take effect. The README is unusually blunt about one upgrade path: if you are coming from 1.6.0 and shortcuts stop working, you must fully remove Murmure from Privacy & Security → Accessibility and from Input monitoring (removing, not untoggling), install the new version, launch it, re-grant Accessibility, re-grant Input monitoring, and restart. The README's own explanation is that 1.6.0 has the same name but is not detected as the same application.
For a first real use, the README's usage section is minimal: launch it, start recording, and the text appears. There is no documented hotkey, no documented output mode, and no documented model selection. What is documented is configuration import for fleet deployment:
murmure import config.murmureThat command imports a .murmure configuration file, and a --strategy merge option keeps existing settings. The README points to the CLI documentation for details, which is where you would look for the file format.
Wayland shortcuts are the sharpest edge
The Linux section is where the README is most specific about a limitation, and it is worth reading before you install. Two shortcut modes exist on Wayland. KDE Plasma 6, Hyprland and Sway use the xdg-desktop-portal GlobalShortcuts portal and need no manual setup. GNOME defaults to CLI mode, where you must configure a custom OS shortcut before using Murmure, and the README states plainly that Push-to-talk is not available in that mode.
That is a functional gap, not a cosmetic one. Push-to-talk and a toggle shortcut are different interaction models, and if you are on GNOME Wayland you get the second one only. The README defers to two documentation pages, the Linux installation guide and the shortcut configuration guide, rather than explaining the setup inline, so a reader of the README alone cannot complete the GNOME configuration without leaving the repository.
The macOS permission model is the other edge. Microphone and accessibility permissions are required, and the README instructs a restart after granting them. Accessibility permission is what lets an app inject text into other windows, which is exactly the mechanism dictation depends on, and it is also the permission users are most reluctant to grant. The 1.6.0 upgrade note shows what happens when that grant goes stale: the app is present, the permissions look set, and the shortcuts do nothing.
Murmure against a hosted transcription API
The obvious alternative is a hosted speech-to-text API, and the difference is architectural rather than a matter of quality. A hosted service takes an audio upload and returns text; Murmure takes audio from your microphone, runs Parakeet TDT 0.6B v3 through the Rust core, and injects the result into the focused window. The hosted route gives you a network dependency, a per-minute cost and a data-processing question, and in exchange it gives you nothing to install, no GPU or CPU budget to manage locally, and no OS permission prompts.
Murmure inverts every one of those. There is no network requirement for computation, which the README states directly, and no data collection. The cost moves to the client: a desktop app per machine, a model that has to be present locally, and platform packaging that the README handles with an MSI, a setup.exe, a WinGet package, a .deb, an AppImage, and two macOS DMGs. For a single user on one laptop that is a one-time setup. For a fleet, the murmure import command with --strategy merge is the mechanism the project offers, and the README points to separate CLI documentation for it.
There is a second alternative worth naming: running the same Parakeet model yourself behind a local HTTP server, with your own client for hotkeys and text injection. That keeps the privacy property and drops the desktop packaging problem, but you then own the shortcut handling, the permission prompts and the text insertion, which is precisely the work Murmure's Tauri shell and Rust core already do. Whether that trade is worth it depends on whether you want a dictation app or a transcription service.
Licence, maintenance and what an upgrade costs
Murmure is licensed under AGPL-3.0. For an end user running the official installers, that is a familiar open source arrangement. For anyone embedding the code in a product or offering it as a network service, the AGPL's source-availability obligations are the part to read in the LICENSE file and, if it matters commercially, with a lawyer. This is a description of the licence identifier, not legal advice.
Maintenance is visible in the release cadence: 1.11.3 on 2026-08-31, 1.10.1 on 2026-07-07, and 1.9.0 on 2026-05-29, with the last push to the repository on 2026-09-09. The roadmap in the README is a checked list of fixes rather than planned features, including a macOS fix for reopening the main window when the Dock icon is clicked and an audio fix for restoring output streams that were recreated while dictating. That style of changelog suggests maintenance focused on platform behaviour rather than new capability.
Upgrade cost is uneven across platforms. On Windows and Linux, replacing the installer is the whole job. On macOS, the README documents one painful transition, from 1.6.0, where the app must be fully removed from Accessibility and Input monitoring and both permissions re-granted in order. The README says this will not recur with the next version, because the cause was an application identity mismatch specific to 1.6.0. Beyond that, the packaging surface is wide: five install formats plus a WinGet package and a shell installer, all of which have to keep working across three operating systems.
Editorial conclusion
Adopt Murmure if you dictate into editors and chat windows all day and want the audio to stay on the machine, and if you accept that a desktop app needs microphone and accessibility permissions and, on GNOME Wayland, a manually configured shortcut. Skip it if you need a server-side API, a headless transcription pipeline, or a language outside the 25 listed. Before committing, verify the Parakeet model download and the first transcription on your own hardware, and check the Linux shortcut mode for your compositor, since the README states Push-to-talk is unavailable in GNOME's CLI mode. The last push to the repository was on 2026-09-09, and release 1.11.3 dates from 2026-08-31.
Frequently asked questions
How do I use Murmure?
Launch the application and start recording your voice; the README states the text appears instantly, processed on your computer. The README's listed uses are dictating into AI prompts, hands-free notes, capturing ideas, and post-processing with a local LLM.
How do I install Murmure on Windows?
Run winget install Kieirra.Murmure, or download Murmure_x64.msi or Murmure_x64-setup.exe from the release page and run the wizard. Windows 10 or later and the Microsoft Visual C++ Redistributable are required.
Which languages does Murmure support?
The README lists 25 European languages, including English, French, German, Spanish, Italian, Polish, Russian and Ukrainian. Languages outside that list are not supported by the bundled Parakeet TDT 0.6B v3 model.
Does Murmure send my audio anywhere?
No. The README states that all processing happens locally, that no data leaves your computer, and that there is no telemetry or analytics. It also states no network connection is required because all computation is local.
Why do Murmure shortcuts stop working after upgrading on macOS?
The README documents this for upgrades from 1.6.0 and gives a fixed order: fully remove Murmure from Accessibility and from Input monitoring, install the new version, launch it, re-grant both permissions, then restart. The README attributes it to 1.6.0 having the same name but not being detected as the same application.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/kieirra-murmure)