Utter
Utter 0.5.2 has a whole new look New

Just talk. Utter types it.

Free, open-source dictation for Mac. Hold a key, speak, let go. Clean text appears wherever you are typing, and your voice never leaves your Mac.

Beta 0.5.2 · Under 4 MB · Apple silicon, macOS 12 or later

Demo: one dictation, with example text

# release chat style
Priya

Build 0.5 passed on CI, nice work everyone.

Sam

Are we still on for Friday? Anything left?

Before Friday we still need to update the changelog, bump the version and tag the release

I can do the changelog today

Still to do before Friday: update the changelog, bump the version, tag the release.

I'll do the changelog today.

New message email style
To
Sam
Subject
Friday release

Hi Sam,

Before Friday we still need to update the changelog, bump the version and tag the release.

I can do the changelog today.

Hi Sam,

We have three things left to do before Friday: update the changelog, bump the version and tag the release.

I can take the changelog today.

Notes notes style

Friday release

Before Friday we still need to:

  • Update the changelog
  • Bump the version
  • Tag the release

I can do the changelog today.

Before Friday:

  • Update the changelog (mine, today)
  • Bump the version
  • Tag the release
Release.swift code style
import Foundation
 
/// Runs before every tagged build.
func prepareRelease() {
// Before Friday we still need to update the changelog, bump the version and tag the release.Before Friday: update the changelog (mine, today), bump the version, tag the release.
    runChecks()
    try bumpVersion(to: "0.5.0")
}

Heard um so before friday we still need to uh update the changelog bump the version and and tag the release i can do the changelog today

A demo with example text. Nothing is recorded and no speech recognition runs on this page. A still from the demo, with example text.

Types wherever your cursor is

  • Slack
  • Mail
  • Claude
  • Notes
  • Xcode
  • Messages
  • Cursor
  • VS Code
  • Gmail
  • Terminal
  • Obsidian
  • ChatGPT
  • Linear
  • Notion

The film

Your voice, made visible.

0:00 / 0:44

Fast, private, and free for good.

Apps it works in
Any

Slack, Mail, Claude, your code editor. The text goes wherever your cursor is.

Audio uploaded
None

Speech becomes text on your Mac, with whisper.cpp on the GPU. Nothing is recorded or kept.

Price
Free

No account, no subscription, no trial. Nothing to sign up for, ever.

Licence
MIT

Every line is on GitHub. Read it, change it, or build the app yourself.

How it works

One key tidies. Another rewrites.

Choose sentence by sentence, by which keys you hold. Both can be changed, and dictation can be the fn key on its own.

Tidy

Keeps your words. Takes out the ums, repeats and false starts, fixes the punctuation, and breaks a long dictation into short paragraphs.

Changes Removed: um, so, uh and like. Added: capital letters and a full stop.
Typed I think we should push the release to Thursday and tell the design team.
chatemailcodenotesprompt

Rewrite

Says what you meant, better, in a style you pick or one you write yourself. With text selected, it changes that text the way you ask.

Heard um so i think we should uh push the release to thursday and like tell the design team
Typed Let's move the release to Thursday and tell the design team.
ClearerShorterProfessionalFriendlyYour own

Or just the fn key.

Hold fn to talk, double-tap it to go hands-free. Utter keeps the emoji picker out of the way while it runs, and gives it back when you quit.

One key

Writes for where you are

Same words. Right for every app.

Utter knows the app in front, and in a browser the site. A chat message, an email, a code comment and a prompt each come out the way they should.

You said

um so can we uh move the call to tomorrow like afternoon and can you send the deck before then

In a browser it reads the site too, so Gmail is an email and claude.ai is a prompt. Anywhere else you get plain, tidy prose.

chat Relaxed, no greeting added

can we move the call to tomorrow afternoon?

and could you send the deck before then

email Full sentences, short paragraphs

Could we move the call to tomorrow afternoon?

Could you also send the deck before then?

code Exact terms, no Markdown
// Move the call to tomorrow afternoon and send the deck before then.
notes Clean prose, lists for lists
  • Move the call to tomorrow afternoon
  • Send the deck before then
prompt Clear and direct, every detail kept

Can we move the call to tomorrow afternoon?

Please send the deck before then.

And everything around it

It learns your words. It gets out of your way.

It learns your words

Fix a word it got wrong and Utter remembers it, with what it misheard. Next time “cloud” becomes Claude, but only when the sentence means it.

Edit by voice

Select text, hold the rewrite key and say what to change. “Make this shorter.” “Fix the grammar.” The result replaces your selection.

Hands-free

Double-tap and talk for minutes with nothing held down. Tap once more to finish.

Names on screen

It reads the names in the app you are in, so it spells them the way the screen does.

History

Everything you said, kept on your Mac only. Search it, copy it again, or switch it off.

Lives in the menu bar

Its icon moves while it listens, so you always know. Fix the last word, add a word or copy your last dictation in one click.

Quiet while it works

A small pill says what Utter is doing and never takes your cursor. When it works, it simply disappears.

Inside the app

Small window. Everything in reach.

Utter's Try it screen
Try it Practise, then see what changed and how long it took.
Utter's Your words screen
Your words Names spelled your way, with what Utter hears instead.
Utter's Hotkey screen
Hotkey Any key combination, or the fn key on its own.
Utter's Cleanup screen
Cleanup Pick a provider, or run a model on your Mac.

Privacy

Your voice stays on your Mac.

Speech is turned into text on your Mac by an open model running on the GPU. Here is everything that ever leaves it.

Audio
Never.
Transcribed on your Mac and then thrown away.
Text
Only if you set it up.
With cleanup by a provider, the transcript goes to that provider with your key. With a local model, nothing leaves at all.
History
Never.
One file on your Mac, readable only by you. Clear it or switch it off.
Your keys
Kept in the Keychain.
Sent only to the provider they belong to, and never shown again once saved.
Anything else
Nothing.
No account, no analytics, no telemetry. Update checks are off unless you turn them on.

Cleanup

Your model, your key. Or none at all.

A language model can tidy each dictation. Which one, and whether to use one at all, is up to you.

Three ways to run it
Nothing set upYou get exactly what was heard.
Stays on your Mac
A local modelOllama on your Mac. No key.
Stays on your Mac
Your own keyText goes to the provider you pick.
Sent to them
ProviderPick any
AnthropicClaude models
OpenAIGPT models
Google GeminiGemini models
GroqFastest replies
OpenRouterMany models, one key
OllamaThis Mac, no key

Or any OpenAI-compatible service. If cleanup ever fails, Utter types what it heard and tells you why.

Open source

Free. Open source. Nothing to sign up for.

Not in Utter
  • No account
  • No subscription
  • No analytics
  • No telemetry

Utter costs nothing and all of its source is public. Read every line, change what you like, or build it yourself.

LicenceMIT
LICENSE
Permission is hereby granted, free of charge, to any person obtaining a copy of this software…

Read the full licence

Install

Up and running in a minute.

For Macs with Apple silicon on macOS 12 or later.

  1. 1

    Download

    Open the DMG and drag Utter into Applications. It's signed and notarised, so it opens like any other app.

  2. 2

    Allow two things

    The microphone, so it can hear you, and Accessibility, so it can type for you.

  3. 3

    Hold and talk

    The speech model downloads while you go. Then hold the key in any app and say something.

Or use Homebrew

One line installs it, and brew upgrade keeps it current.

Terminal
brew install --cask shantirmizi/tap/utter
Or build it yourself

The README lists the tools you need: Rust, Node and pnpm.

Terminal
git clone https://github.com/ShanTirmizi/utter.git
cd utter && pnpm install
pnpm tauri build

Hold the key.
Say the thing.

Free and open source. No account to make and nothing to pay, ever.

Version 0.5.2 · Apple silicon · macOS 12 or later