Hold 🌐, speak, release.
Clean text in any app.

  • ◉On-device speech
  • ⌘Native macOS
  • { }Apache 2.0
  • ∅No account

Dictation that cleans up after you. Filler words, false starts, and “actually, make that three” are gone before the text hits the page. Your audio never has to leave your Mac.

Get TypeWiser for Mac

Free and open source · macOS 15 or later

Slack · #product
You said raw transcript

TypeWiser pasted cleaned

Your words stay yours.

🎙️→Aa
Apple Speech · on device

Speech never leaves your Mac

Transcription runs on Apple’s on-device Speech framework by default. No server, no model download, nothing uploaded.

0accounts required

Cloud is your call

Want a bigger brain for cleanup? Point it at Bedrock, OpenAI, or Anthropic with your own key. Or keep it all local with llama.cpp.

🔑macOS Keychain

Keys live in the Keychain

API credentials go into the macOS Keychain, not a config file. Nothing about you is sent to us, because there is no “us” server.

typewiserApache-2.0Swift · 140+ tests

Open source. Read every line.

The whole app is Swift you can audit and build yourself, under the Apache 2.0 license.

What you get

Push-to-talk dictation, LLM cleanup, hands-free mode, and a fallback that never eats your words.

Your Mac. Your models.

Pick where speech-to-text and cleanup run. Switch any time; the change applies on your next dictation.

  • Apple SpeechOn deviceDefault · no download
  • whisper.cpp serverSelf-hostedYour own endpoint

It keeps the last thing you meant.

Change your mind mid-sentence and only the correction survives.

You said

“um so let's meet at two, actually no, three, at the usual place”

Pasted

Let’s meet at 3 at the usual place.

It spells names right.

Add the people and jargon you say often. TypeWiser also reads text near your cursor to match spellings already on screen.

Add a name…+ PriyankaKubernetesgRPCFigmaPostgreSQL

Double-tap for hands-free.

Long thought? Double-tap 🌐 and let go. Recording latches on, and typing won’t interrupt it. Tap once to stop.

🌐🌐🔒 Recording latched

Tuned to your accent.

Pick the speech locale that matches how you talk, not just your system language.

🇺🇸 English (US)🇮🇳 English (India)🇬🇧 English (UK)🇦🇺 English (AU)

Works wherever you can type.

Slack, Mail, Notes, Cursor, Claude, a terminal. If the app has a text cursor, TypeWiser pastes into it.

Never loses your words.

If cleanup fails, times out, or returns something that isn’t a rewrite of what you said, you get the raw transcript instead.

Rewrite timed out ↓ Raw transcript pasted

Three seconds to set up a habit.

  1. 1

    Hold 🌐

    A small HUD shows a live waveform so you know it’s listening.

  2. 2

    Speak naturally

    Ramble, restart, correct yourself. That’s what cleanup is for.

  3. 3

    Release

    Clean text is pasted into the focused app, with a soft sound cue.

Common questions

Does my audio get uploaded anywhere?

Not by default. Speech-to-text uses Apple’s on-device Speech framework. Only if you switch to a whisper.cpp server does audio leave the app, and that server is one you run. If you choose a cloud cleanup model, only the text transcript is sent, to the provider you picked, with your own key.

Do I need an account or subscription?

No. TypeWiser is free and open source. Local mode costs nothing to run. Cloud cleanup bills against your own Bedrock, OpenAI, or Anthropic account.

Which apps does it work with?

Anything that accepts pasted text. TypeWiser puts the cleaned text on the clipboard and sends ⌘V to whatever app has focus.

Why does it need Accessibility permission?

To notice the 🌐 key from any app and to paste with ⌘V. Without it, macOS silently drops both. It also lets TypeWiser read text near your cursor so names are spelled the way they already appear.

The emoji picker opens when I press 🌐.

Go to System Settings → Keyboard → “Press 🌐 key to” and choose Do Nothing.

How heavy is local mode?

The local cleanup model runs through llama.cpp and holds around 17 GB of RAM while active. Switching to a cloud model shuts the local server down and gives that memory back right away.

Does it understand my accent?

Choose a speech locale in Settings that matches how you speak, like English (India) or English (UK). It often makes a large difference over the system default.

Can I contribute?

Yes. It’s a Swift package with a fast test suite that never touches the network. Open an issue or a pull request on GitHub.

Talk less like a robot. Type less, period.

Build it from source in a minute. Native Swift, macOS 15 or later.

# one-time: a stable signing identity so permissions stick
./Scripts/create-signing-cert.sh
./Scripts/bundle-app.sh
open build/TypeWiser.app
View on GitHub