Always-on dictation for macOS

Speak. It types. Anywhere.

No push-to-talk and no window to open. Always sits in your menu bar, hears your voice, and types what you say wherever your cursor is: terminal, editor, chat, or AI agent.

curl -fsSL https://raw.githubusercontent.com/LivioGama/always/main/scripts/install-always.sh | bash

Free and open sourceMac, Linux, WindowsNo account

uploader · agent · zsh

~/code/uploader main

✓ Read src/upload/client.ts

✓ Ran tests · 42 passed

What should we do next?

›
↵Listening

add retry with um exponential backoff to the

Built-in Microphone Speaking⌘
Types into anything with a cursor. XcodeTerminalSlackNotionyour browseryour AI agent

How it works

One sentence, to scale.

There is no key to press. Always waits for your voice, lets you finish the thought, and types it. This is a four-second sentence with the default settings.

Mic
200 ms pause 0.4 s silence 0.9 s
Indicator
Listening Listening Transcribing
Cursor
Typed ↵ after delay

Timings are the shipped defaults. The speech itself is illustrative.

  1. 1

    Your voice starts it

    60 ms of speech opens an utterance. A 200 ms pre-buffer keeps your first syllable.

  2. 2

    Pauses are fine

    A short pause starts transcribing in the background. Keep talking and that draft is thrown away.

  3. 3

    Silence ends it

    0.9 s of quiet closes the sentence. If you sound mid-sentence, Always waits a little longer.

  4. 4

    Cleaned up

    Words the model made up are dropped, your vocabulary is applied, and "um" and "uh" are removed.

  5. 5

    Typed at the cursor

    The text goes into whatever app is in front, the way you would have typed it.

  6. ↵

    Sent, unless you hold ⌘

    Auto-Enter presses Return after a short grace period. Hold ⌘ while you speak to type without sending.

What it does

Made for talking all day, not now and then.

You0.62Typed
TV, next room0.14Ignored
Video call0.22Ignored
Podcast0.09Ignored
Enrolled fromnormallowerlouder3 × 5 s

My Voice

It only types what you say.

Record three short samples and Always learns your voice. The TV, a podcast, a video call, and the person next to you never reach your cursor. Your voiceprint stays on your Mac.

cuber netties→Kubernetes
kit rug trees→git worktrees
super base→Supabase
⌃⌥Wcorrects the last transcript

Vocabulary

Fix a word once.

Correct a mistranscription and Always keeps the fix. Add your project's names and jargon, and they come out spelled the way your team spells them.

  • Thanks for watching!subtitle credit
  • [Music]sound tag
  • you you you you yourepeat loop
  • Thank you.from silence

Filtering

Silence stays silent.

Speech models invent phrases out of room noise. Always catches them before they're typed. If a rule ever blocks something you really said, it goes to your clipboard so ⌘V gets it back.

Apple SpeechAnalyzerThe default on macOS 26. Runs on your Mac with no key and no upload.
on device
Groq cloudAdd your own API key to switch to the cloud.
cloud
Local modelsMoonshine for English, Nemotron 3.5 for 40 language-locales. Works offline.
on device

Engines

On your Mac by default.

On macOS 26, Apple's engine turns speech into text on your Mac, with no account and no key. Add a Groq key for the cloud, or pick a local model. A local model can also take over by itself if a cloud call fails.

Steps aside for calls

When Zoom or another app takes the microphone, Always stops right away and types nothing. It comes back about 3 s after the mic is free.

Rests when you do

After 10 minutes without your voice it pauses itself, and it wakes up when you speak again.

Only in apps you pick

Always types only into the apps you turn on, and stays paused everywhere else. Pause it everywhere at once with ⌃⌥⇧P.

Shortcuts

For the few moments your hands are needed.

hold⌘

Type without sending. Hold it while you speak and Auto-Enter is skipped.

⌃⌥W

Correct the last transcript and teach the fix.

⌃⌥P

Pause or resume dictation.

⌃⌥A

Turn Auto-Enter on or off.

⌃⌥V

Paste raw text, skipping the filters.

⌃⌥⇧P

Master pause. Stays paused until you lift it yourself.

Every shortcut can be changed in Settings › Shortcuts.

Other dictation tools want to be the center of attention. Always wants to disappear.

From the Always README

Privacy

An always-on mic has to earn it.

These promises are written into the product spec as invariants. A change that breaks one counts as a bug, whatever else it improves.

Read the spec ↗
  1. I3

    Nothing is typed unless you said it while it was listening.

    Words count only when they were captured while Always was on and, with My Voice enabled, verified as you. A wrong paste is worse than a missed one.

  2. I1·I2

    You can always see when it's listening.

    The indicator shows above full-screen apps and stays up at least 600 ms, long enough to read. It appears only while something is happening.

  3. I6

    Paused means paused.

    Audio captured during any pause is never transcribed and never typed.

  4. I9

    Your voice stays on your Mac.

    Your voiceprint never leaves the machine, and release builds don't log what you say.

No telemetry No account API keys in the macOS Keychain Cloud mode talks to Groq only Local mode sends nothing
The Always app icon: a microphone inside an infinity loop

Try quitting it after a week.

Then go back to holding a key every time you want to talk.

One-line installermacOS, Linux, and Windows
curl -fsSL https://raw.githubusercontent.com/LivioGama/always/main/scripts/install-always.sh | bash
Packages.tar.gz · .deb · .rpm · .zip

Prefer to install by hand? Every build for Mac, Linux, and Windows is on the releases page.

All downloads ↗
macOS 14+ on Apple SiliconUbuntu 22.04+ · Debian 12+ · Fedora 38+Windows 10 1909+ and 11AGPL-3.0