Murmur · Local voice tools

Talk.It types.

Dictate into your editor, turn meetings into notes, and format code by voice. Murmur runs speech recognition and optional AI processing on your own machine, with desktop apps for Windows, Linux, and macOS.

Available for Windows, Linux, and macOS

  • LocalSpeech + AI
  • 3Desktop platforms
  • MITOpen source
  • v0.27.1Release

Try a piece of the real pipeline

Speak in words. Ship identifiers.

Murmur’s command mode turns spoken formatting instructions into names you can use in code. Edit a phrase and inspect the transformation.

Start with camel, snake, pascal, kebab, constant, or dot. Follow it with a name.

What gets typed
getUserProfile

Inspect the transformation
  1. Recognize the camel instruction.
  2. Split the name into words: get · user · profile .
  3. Apply the casing rule. No language-model call is needed for this step.

This browser demo starts after speech recognition. It runs a JavaScript adaptation of the Rust formatter locally; it does not access your microphone or run Murmur’s speech models.

Read the Rust implementation and its tests

Under the interface

The engineering decisions matter.

A desktop speech tool has to manage latency, predictable output, and access to other applications. Here is how Murmur approaches those constraints.

Keep capture responsive

Constraint
Inference can be expensive. The microphone callback cannot wait for it.
Choice
A lock-free channel separates audio capture from the dedicated speech-recognition worker.
Tradeoff
Model size and hardware still affect how quickly a phrase can be finalized.
Inspect the architecture

Make simple commands predictable

Constraint
A formatting instruction should produce the same identifier every time.
Choice
Explicit parsing and casing rules handle command-mode identifiers. The demo above exposes that step.
Tradeoff
A rule-based formatter understands a defined grammar; it does not infer arbitrary intent.
Read the formatter tests

Connect without a cloud service

Constraint
Editors need access to dictation without uploading speech to another service.
Choice
MCP uses local stdio. The optional WebSocket API binds to localhost and requires a token.
Tradeoff
Editor integrations require local setup. Keystroke and paste delivery remain available for other apps.
Read the local API contract

Four Rust crates separate the engine, desktop app, CLI, and MCP integration.

Inspect CI runs
Connect dictation to an editor

After installing Murmur, run this from a terminal to configure detected compatible clients. Restart the editor after setup.

murmur mcp install

Or connect Claude Code explicitly:

claude mcp add murmur -- murmur mcp
Editor integration guide

Watch the product walkthrough

A short animated introduction to dictation with Murmur.

// What makes it different

Everything local.
Everything fast.

01

Private by default

Speech recognition and optional AI processing run on your machine. Network access is used for model/runtime downloads and update checks.

Audio stays local
02

Live preview

Your words appear as you speak. A caption follows your active window, macOS-style, or sits under the floating pill.

See it before it lands
03

Types into anything

Output strategies deliver text through keystrokes or paste, with fallbacks for terminals and elevated windows. Per-app profiles adapt the behavior.

Editors · terminals · chat
04

Developer dictation

Dictate identifiers, symbols, file paths, and commit messages. Optional codebase vocabulary indexing helps recognize names from your own projects.

Words → code
05

Meetings, kept local

Record microphone and supported system audio, keep a local transcript, and optionally add speaker labels and an on-device summary.

Record · transcribe · summarize
06

Connected to your editor

A local MCP server exposes dictation to compatible tools. An opt-in, token-authenticated localhost WebSocket API supports precise editor integrations.

MCP · VS Code · localhost API

How it works

Audio never leaves the device. The whole pipeline runs locally, from microphone to keystrokes.

  • 1
    MicrophoneCPAL capture
  • 2
    Silero VADspeech gate
  • 3
    On-device STTParakeet · whisper.cpp
  • 4
    Text deliveryKeystrokes or paste

Built with

RustTauri v2whisper.cpp (whisper-rs)ONNX RuntimeSilero VADNVIDIA ParakeetCPALCUDAenigoglobal-hotkeyllama.cpptree-sitterMCP

Get Murmur

Free and open source. Choose your platform on the release page. Windows and Linux AppImage builds support signed auto-updates.

  • Windows 10/11 x64, Linux x64 (X11), or macOS (Apple Silicon and Intel)
  • Windows requires an AVX2-capable CPU; an NVIDIA GPU is optional
  • The default speech model downloads on first launch (about 490 MB)
  • Linux: .deb or AppImage. macOS: unsigned .dmg; right-click → Open on first launch
Download v0.27.1 Source on GitHub Available for Windows, Linux, and macOS