Voice to text for Mac.
Speak. It types. Anywhere.

Press Option plus Space in any app, speak, and your words are pasted at your cursor. Record a call or drop in a file to get a transcript, plus optional AI summaries and action items.

v0.2.8Released Release notes

  • Free · source on GitHub
  • Works offline by default
  • No account, no app telemetry
  • Signed & notarized
  • macOS 15+ · Apple Silicon or Intel

Chapter one · dictation, in five beats

What happens when you speak.

One sentence, from the moment you press the key to the moment it appears in the field you were already typing in. Nothing is staged off-screen — this is the whole loop.

  1. Beat 01

    You’re already in the app.

    You don’t switch to VoiceToText to use it. It keeps running in the background, in the Dock and the menu bar (hide the Dock icon to run from the menu bar alone), while you work in Slack, Mail, Cursor, a browser address bar — anything with a text field.

    Nothing to launch first, and no per-app setup.

  2. Beat 02

    Press Option plus Space.

    One global shortcut starts and stops a take. It toggles by default; switch it to hold-to-record if you prefer push to talk. Rebind it to any key with a modifier, a lone F-key, or Right Control on its own, which also needs Input Monitoring.

    In the review panel, pressing the shortcut again pastes.

  3. Beat 03

    Say what you mean.

    A small HUD floats over whatever you are doing, with a live level meter and a timer; pick Small, Medium or Large in Settings. Speak in full sentences, casual or technical; punctuation is inferred. Esc cancels at any point.

    With a local model the audio never leaves your Mac. Text appears while you speak only with the Large HUD and a streaming cloud model.

  4. Beat 04

    Read it before anyone else does.

    The transcript opens in a review panel. Fix a name, cut a sentence, or press ⌘R to resume and add another take at the caret. Optional AI actions such as Clean transcript, Fix grammar, and Improve prompt run with ⌘1–⌘9 on your own OpenAI key, and Undo steps back through them; they stay off until you turn them on.

    In a hurry? Turn review off and it pastes right away.

  5. Beat 05

    It pastes where your cursor was.

    Return pastes the text into the field you were in: the composer, the terminal, the address bar. VoiceToText saves your clipboard, pastes with ⌘V, then puts the clipboard back. macOS calls the permission for that Accessibility; it is also what lets the global shortcut and Esc work anywhere. It is not keylogging.

    Back to work — you never left the app you were in.

Every setting is explained in the Mac setup guide.

Interlude · twenty seconds, unedited

The real app, unedited.

A silent screen recording of VoiceToText turning a spoken request into text inside a coding workspace. One shortcut, no window switching, nothing sped up.

Chapter two · calls and recordings

Record the call.
Keep what was decided.

Conversations records both sides of a call — your voice and everyone you hear — and turns it into a transcript when you stop. It runs on your Mac by default, and nothing joins the meeting.

Today at 10:30 AMConversation12:48GPT-4o Transcribe Diarize
  • Maya: Beta feedback is in. Most of it is about onboarding, not the editor.
  • Dev: Then the empty state goes first. I can have a draft by Thursday.
  • Maya: Good. Sam, can you get the churn numbers before the review?
  • Sam: Yes, I’ll send them Wednesday.
  • Maya: And I’ll share the beta notes with design.

Summary · just now

The team went through the beta feedback and agreed to fix onboarding before more editor work.

Onboarding

  • Most beta feedback is about the first-run experience.
  • Dev is drafting a new empty state first.

Before the review

  • Sam sends the churn numbers; Maya shares the beta notes with design.

3 action items · 1 done

“Rewrite this as meeting minutes”

Product sync

Attendees: Maya, Dev, Sam

Decision: onboarding comes before further editor work.

Actions

  • Dev — empty-state draft, by Thursday
  • Sam — churn numbers, Wednesday
  • Maya — beta notes to design
An example recording in the Conversations pane. Switch tabs to see the summary, the action items and a custom result.
  1. Start it however you like.

    Press Start Recording in Conversations, use the menu bar, or set an optional Conversation shortcut that works from any app. VoiceToText records your microphone and the call audio your Mac plays, so it works with Zoom, Google Meet, Teams, FaceTime, Webex or Discord. No bot joins the call.

    Needs Microphone and Screen Recording permission. Screen Recording is how macOS shares call audio — the screen itself is never recorded.

  2. Or drop in a file.

    Choose Upload File… or drag one audio or video file onto the pane — MP3, M4A, WAV, AIFF, MP4, MOV and the other formats macOS can read.

  3. Transcribed when you stop.

    On your Mac by default, with its own model setting, so calls can use a different model from dictation. Calls over 12 minutes are transcribed in parts of about 10 minutes, each cut at the quietest nearby moment. To see who said what, pick GPT-4o Transcribe Diarize: it labels each speaker, and you rename “Speaker 1” to a real name.

    Speaker labels come from that cloud model only: it runs on your OpenAI key, and the audio goes to OpenAI.

  4. Summary, action items, or your own prompt.

    One click writes a summary, or a checklist of action items with an owner and a due date where someone actually said them. Tick them off, or copy them as a Markdown checklist. Or type your own instruction, like “Rewrite this as meeting minutes” — each recording keeps up to three of those as tabs.

    Optional, and off until you add an OpenAI key. The transcript text, not the audio, is sent to OpenAI on your key.

  5. Kept in History, on your Mac.

    Search across transcripts, summaries, action items and speaker names. Star favorites, play the audio back, or regenerate a transcript with any of the 15 models and keep both versions. Audio streams to disk as you record, so if the Mac crashes the call is waiting in History at next launch, ready to transcribe.

How meeting recording works — permissions, file formats, speaker labels and exactly what is sent where.

Chapter three · where the audio goes

Private by architecture,
not by promise.

In local mode your voice is turned into text on your own Mac. That is not a policy you have to take on faith — it is simply where the code runs, and you can watch the network to confirm it.

Transcription runs on your Mac

FluidAudio and WhisperKit run Parakeet and Whisper directly on your Mac, so your audio never leaves it. Parakeet, the default, and the Whisper models work with the network off after their one-time download.

Cloud is opt-in, with your own key

Pick a cloud model and the audio goes straight from your Mac to OpenAI or ElevenLabs on your key. AI actions and recording summaries send transcript text to OpenAI the same way. VoiceToText has no servers of its own to sit in that path.

Permissions, and what each is for

  • Microphone so it can hear you
  • Accessibility for the global shortcut, Esc and pasting — dictation won’t start without it
  • Input Monitoring only if your shortcut is Right Control on its own
  • Screen Recording only for Conversations — it carries the call audio; the screen is never recorded

Don’t take our word for it: the source is public on GitHub, and you can point Little Snitch at the app and watch it stay quiet while you dictate with Parakeet, the default model.

Network activity — local modetraffic

  • Model download
    once per model, from Hugging Face
    once
  • Update check
    GitHub Releases, at launch and every 24 h; you confirm installs
    daily
  • Your audio
    transcribed on your Mac
    never leaves
  • Your transcripts
    saved in History on your Mac; saving dictations can be switched off
    stays local
  • App telemetry
    no analytics, no crash-reporting SDK
    none
  • Accounts & sync
    no sign-in exists
    none

Only if you opt in

  • Cloud transcription
    audio to OpenAI or ElevenLabs
    your key
  • AI actions & summaries
    transcript text, not audio, to OpenAI
    your key
  • Adding an API key
    one request to verify it with that provider
    once

With local models and no API keys, the first list is complete. Every opt-in connection goes straight from your Mac to the provider you chose, on your own key.

Chapter four · 15 models

Pick the speech-to-text model that fits the job.

Six models run on your Mac, so your audio never leaves it, and once downloaded they keep working with the network off. Nine more are optional cloud models on your own API key. Switch in Settings → Models whenever the trade-off changes — a quick note is not the same job as an hour-long call.

On this Mac · free, audio stays local

  • Parakeet TDT v3DefaultRecommended25 European languages, detected automaticallyQuality score about 7.4 out of 10Everyday dictation on your Mac, in English and 24 other European languages.
  • Whisper Large v3 Turbo99 languages, detected automaticallyQuality score 7.5 out of 10Whisper on your Mac in 99 languages, quicker than Large v3.
  • Whisper Large v3Most accurate99 languages, detected automaticallyQuality score 8.0 out of 10The most accurate model that stays on your Mac, if you can wait a little longer.
  • Whisper Small99 languages, detected automaticallyQuality score about 7.4 out of 10Whisper on a Mac short on disk space, with more mistakes.
  • Whisper Base99 languages, detected automaticallyQuality score about 6.6 out of 10Slow Macs where a small download matters more than accuracy.
  • Whisper Tiny99 languages, detected automaticallyQuality score about 5.6 out of 10Testing your setup. Too many mistakes for daily use.

Offline? Parakeet, the default, works with the network off after its one-time download. Whisper models do too: they transcribe on your Mac, your audio never leaves it, and an installed model loads from disk. The app contacts Hugging Face only to download a model.

Optional cloud models

Bring your own API key · billed by the provider · off unless you choose one

Audio goes straight from your Mac to OpenAI or ElevenLabs, which detect the language on their side (99+ and 90+ languages). Live models stream your audio while you speak. In the Large dictation HUD, Scribe v2 Realtime shows the words one by one, while GPT Live Transcribe and GPT-4o Transcribe Realtime add each phrase after a short pause; GPT Realtime Whisper shows its text only when you stop.

  • Scribe v2 RealtimeLiveElevenLabs$0.39/hrQuality score 8.6 out of 10With the Large HUD, text appears word by word as you speak — dictation only
  • GPT Live TranscribeLiveOpenAI$1.02/hrQuality score 8.2 out of 10With the Large HUD, text appears phrase by phrase, after each short pause — dictation only
  • GPT Realtime WhisperLiveOpenAI$1.02/hrQuality score 7.2 out of 10Streams while you speak; the text appears only when you stop — dictation only
  • GPT-4o Transcribe RealtimeLiveOpenAI$0.36/hrQuality score about 8.1 out of 10With the Large HUD, text appears phrase by phrase, after each short pause — dictation only
  • GPT TranscribeMost accurateOpenAI$0.27/hrQuality score 8.9 out of 10Dictation, conversations and files
  • GPT-4o TranscribeOpenAI$0.36/hrQuality score 8.1 out of 10Dictation, conversations and files
  • GPT-4o Transcribe DiarizeOpenAI$0.36/hrQuality score about 8.1 out of 10Labels who said what — for conversations and files
  • GPT-4o Mini TranscribeOpenAI$0.18/hrQuality score 7.6 out of 10Dictation, conversations and files
  • Whisper-1OpenAI$0.36/hrQuality score 8.0 out of 10Dictation, conversations and files

Quality scores (1–10) are derived from third-party published word error rates — Artificial Analysis AA-WER and the Open ASR Leaderboard, September 2026 snapshot — not from VoiceToText’s own tests. “≈” marks a score built on indirect evidence. The app shows the same numbers in Settings → Models, with filters and sorting. Prices are the providers’ list prices per hour of audio.

Not sure which local model to start with? Compare Whisper and Parakeet on Mac.

Chapter five · no integrations required

If you can paste there,
you can dictate there.

There is no plugin list and no per-app setup. VoiceToText pastes the text at your cursor with a standard ⌘V, then puts your clipboard back the way it was. These are just places people use it.

  • Slack
  • Mail
  • Notes
  • Notion
  • Obsidian
  • Bear
  • Pages
  • Google Docs
  • Microsoft Word
  • Messages
  • Gmail
  • Outlook
  • WhatsApp
  • Discord
  • Linear
  • Safari
  • Chrome
  • ChatGPT
  • Claude.ai
  • Cursor
  • VS Code
  • Xcode
  • Terminal
  • Any text field

Anywhere ⌘V pastes text. Address bars, commit messages, chat composers, spreadsheet cells — press Option plus Space and the words land at your cursor. A field that blocks pasting won’t take them.

Built in, nothing to install

  • History, searchable

    Your conversations, favorites and latest 200 dictations stay on your Mac. Search transcripts, summaries, action items and speaker names.

  • Regenerate, keep both

    Re-run any saved recording with another of the 15 models. Each version stays side by side.

  • AI actions

    Clean transcript, To English, Improve prompt and three more, plus your own — ⌘1–⌘9 in the review panel. Off until you switch them on in Settings → Actions and add an OpenAI key.

  • Automation

    open -g voicetotext://toggle starts or stops dictation from Raycast, Shortcuts, Stream Deck or a script. URL commands

  • Menu bar and Dock

    Start dictation or a recording from the menu bar. Hide the Dock icon to run menu-bar-only; it opens at login unless you turn that off.

  • Survives mic switches

    If AirPods or another mic reconnects mid-dictation, capture restarts on its own. If it can’t, what you said is still transcribed.

  • One-click updates

    Checks GitHub Releases at launch and once a day. You confirm each install, or skip that version.

  • Light, Dark or System

    Follow macOS or pick one. The recording HUD follows too.

Aside · who builds it

Built in public, by these people.

Every commit, issue, and release happens in the open on GitHub. These are the contributors who have shipped code to the project so far.

Pull requests are welcome. The repo, the issues, and every release live on GitHub.

Contribute on GitHubReport an issue

Aside · read next

Guides and comparisons.

Setup notes for private dictation, coding by voice, and meeting transcripts, plus side-by-side comparisons with the apps you might be weighing it against.

Aside · the fine print

What to know before installing.

Straight answers on privacy, permissions, models, languages, and meetings, including the parts that might rule it out for you.

More questions on GitHub

Is VoiceToText free?
Yes. VoiceToText has no paid tier, no account, and no in-app purchases, and its source is available on GitHub. The optional cloud models and AI features bill your own OpenAI or ElevenLabs account at the provider's prices.
Does it work offline? Is my voice data sent anywhere?
Yes, with a local model, Parakeet (the default) or Whisper: after a one-time download it works with the network off, and your audio is transcribed on your Mac and never leaves it. Apart from model downloads and an update check, nothing leaves your Mac unless you opt in: a cloud model sends audio directly to OpenAI or ElevenLabs under your own API key, and AI actions, summaries, and action items send the transcript text to OpenAI. VoiceToText has no servers of its own, so it never receives your audio or your text.
How do I use voice to text on my Mac?
Install from the DMG and allow Microphone and Accessibility. Then press Option+Space in any app, speak, and press it again. The transcript opens in a small review panel: press Return, or the shortcut again, to paste it at your cursor, or Esc to discard it. You can turn review off to paste right away, or switch the shortcut to hold-to-record. It works the same on any MacBook Air, MacBook Pro, iMac, Mac mini, or Mac Studio running macOS 15 or later.
What apps does VoiceToText work in?
Any app where Command-V pastes text: Notes, Notion, Obsidian, Google Docs, Word, Slack, Messages, Mail, Gmail, Outlook, WhatsApp, Discord, browser address bars, ChatGPT, Claude, Cursor, and Terminal. VoiceToText puts the transcript on the clipboard, sends a standard Command-V, and then puts your previous clipboard back, so there is no per-app setup. A field that blocks pasting won't receive the text.
Why does it need Accessibility permission?
macOS asks for Accessibility whenever one app sends keystrokes to another. VoiceToText uses it to paste with Command-V, to run the global shortcut, and to catch Esc so you can cancel, so recording won't start without it. It does not log your typing, read your screen, or read other apps' content. A Right Control shortcut also needs Input Monitoring, and recording calls needs Screen Recording to capture the other participants' audio (audio only, never the screen).
What are the system requirements?
macOS 15.0 or later on an Apple Silicon or Intel Mac. Local models run much faster on Apple Silicon; on an Intel Mac, transcription takes noticeably longer. The default local model is a one-time download of about 470 MB; cloud models need an internet connection and your own API key.
How accurate is it? Which models does it use?
You choose from 15 models. Parakeet TDT v3 is the recommended default: fast, on-device, and 25 European languages. Whisper Large v3 is the most accurate local model; Large v3 Turbo, Small, Base, and Tiny trade accuracy for size. With your own API key, GPT Transcribe tops the cloud list, followed by Scribe v2 Realtime, and GPT-4o Mini Transcribe is the cheapest at $0.18 per hour. The Models pane shows a 1–10 quality score for each, based on published word error rates rather than our own tests, so try two or three on your own voice.
Which languages does it support?
It depends on the model, and there is no language setting to change. Parakeet TDT v3, the default, recognizes 25 European languages automatically. The local Whisper models cover 99 languages, also detected automatically. Or use a cloud model with your own key: OpenAI's models cover 99 or more languages and ElevenLabs Scribe v2 Realtime more than 90, detected automatically.
Can it record meetings and write summaries or action items?
Yes. Conversations records your microphone and the call's system audio from any app, such as Zoom, Meet, Teams, or FaceTime, with no bot joining, and transcribes it when you stop, on your Mac by default. You can also drop in an audio or video file. With your own OpenAI key, any recording can get a summary, an action-item checklist, or the result of your own prompt; that sends the transcript text to OpenAI. Speaker labels need the cloud model GPT-4o Transcribe Diarize.
Do you collect any usage data or telemetry?
No. The app has no analytics, no accounts, and no servers of its own. Without API keys, its only connections are to Hugging Face, for model downloads, and an update check against GitHub Releases at launch and once a day. Adding a key sends a one-time verification request to that provider; after that, a cloud model sends audio, and AI actions or summaries send transcript text, directly from your Mac to the provider. The source is on GitHub if you want to check, or watch the traffic with a tool like Little Snitch. This website uses Google Analytics to count visits; the app contains no analytics code.
VoiceToText app icon

Last beat · the install

Install it in the time it takes to say so.

Free, source on GitHub, signed and notarized, and served from GitHub Releases. If it isn’t for you, drag it to the Trash; its downloaded models and History stay in ~/Library/Application Support until you delete them. With the default local model, nothing you said left your Mac.

v0.2.8 · released · Release notes
macOS 15.0 or later · Apple Silicon or Intel · no account · updates install when you confirm them.

After you download

  1. 01Open VoiceToText.dmg.
  2. 02Drag VoiceToText to Applications and open it.
  3. 03Allow Microphone and Accessibility when macOS asks. The default model downloads once.
  4. 04Press Option plus Space in any app and start talking.

Need it step by step? Read the Mac setup guide.

Get it free