ParrotFlow vs VoiceInk

Two GPL-3.0 dictation apps for the Mac that can transcribe on your machine. VoiceInk has more models and AI modes. ParrotFlow is free and you program it.

Pick VoiceInk if

  • You want to see the text while you speak.
  • You want many speech models, on your Mac or in the cloud.
  • You want AI cleanup that changes by app or by website.
  • You also dictate on an iPhone or iPad.

Pick ParrotFlow if

  • You want a free, signed app without building it yourself.
  • You want PR links (#478), Slack mentions (@siobhan) or your own rules and scripts.
  • You want each name checked against the sentence, with no large language model.
  • You want to test your config from the terminal before you dictate.

Feature by feature

VoiceInkParrotFlow
Basics
PriceFrom $25 once. Free to build.Free
Speech becomes textOn your Mac, or a cloud providerOn your Mac
Works offlineYes, with a local modelYes, after the models download
PlatformsmacOS 15 or later, iPhone and iPad (beta)Mac with Apple silicon, macOS 15 or later
LanguagesMany, depending on the modelEnglish and French
Source codeOpen, GPL-3.0Open, GPL-3.0
Cleanup
Filler words“um”, “uh” removed✓ Yes✓ Yes
Stutters and repeats“the the prompt” → “the prompt”Not documented✓ Yes
Stray full stops after a pause“a parrot. At the top” → “a parrot at the top”Not documentedYes, in English
Numbers, dates and money“nine fifteen AM” → “9:15 AM”Not documented✓ Yes
AI rewrite of your wordsOptional AI Enhancement, set per ModeOnly if you add a prompt step
Names
Learns words you correctYes, an AI model reviews your edits✓ Yes
Right name by contextMik the developer, Mick the guitaristNot documented✓ Yes
Spells names from the screen“carrot anchor” → CaretAnchorScreen text (OCR) goes to AI EnhancementAny app, except password managers and System Settings
Your own steps
PR links“PR 478” → #478One row per numberYes, one rule you add
Slack mentions“Siobhan” → @siobhanOne word replacement per nameYes, add your roster and press S
Different rules per appYes, Modes by app or website✓ Yes
Your own scriptstext in on stdin, text out on stdoutA Custom Command reads stdin and must paste its own result✓ Yes
Prompts on a model you chooseOllama, cloud providers or custom endpointsOllama, OpenAI or Anthropic
Actions by key or voice after dictatingpress B for a bug reportSpoken trigger words and Mode shortcuts✓ Yes

What VoiceInk does well

VoiceInk gives you a choice of speech models. On your Mac it runs Parakeet, Nemotron, Whisper, Cohere Transcribe, SenseVoice Small and Apple Speech. In the cloud it connects to Groq, Deepgram, ElevenLabs, Gemini and others. With Parakeet, Nemotron and several cloud models, it shows the text while you speak.

A Mode sets the speech model, language, prompt, context and output for one kind of work. Modes were called Power Mode before v2.0. VoiceInk picks a Mode from the app in front, or from the website in Safari, Chrome, Arc and other supported browsers. Firefox is not supported. You can also pick a Mode by a spoken trigger word or a shortcut.

AI Enhancement can clean up or rewrite each dictation. It runs on VoiceInk Refine on your Mac, on Ollama, on a cloud provider, or on a command-line tool such as Claude or Codex. VoiceInk Refine needs Apple silicon and 16 GB of memory.

The built app costs $25 for one Mac, $39 for two or $49 for three, once, with a 7-day trial. There is also an app for iPhone and iPad, free while it is in beta. A Mac license does not cover it.

How each one changes the text

VoiceInk’s word replacements map one or more plain phrases to one result. Matching ignores case and does not change letters inside a longer word. The docs do not mention regular expressions. A Custom Command gets the final text on stdin and must finish within 10 seconds. VoiceInk does not paste its output, so the script must copy and paste the result itself. VoiceInk ships templates that do this. Local CLI is the other way to run a program. It runs as the enhancement step and gets the whole prompt on stdin, not only your words.

ParrotFlow runs your steps in the order you write in config.yaml. A step is a replace table, a script or a prompt. A replace table takes regular expressions, so one rule covers every pull request number:

You say

“PR 478”

ParrotFlow writes

#478

One replace: rule with a regular expression. In apps that accept formatted text, it links to the pull request.

A script reads your text on stdin and writes the new text on stdout. The slack_mentions script ships with ParrotFlow. Fill its roster, dictate, then press S:

You say

“Siobhan”

ParrotFlow writes

@siobhan

After you press S on the pill.

A step can carry app:, when: or unless:, so it runs only in some apps or only when the text matches. app: reads the app in front, not the URL. So a step for Gmail in Chrome runs in every Chrome tab. ParrotFlow --pipeline runs a pipeline file on a sentence with no microphone, so you can test a rule first. See programmable dictation.

How each one handles names

VoiceInk’s Vocabulary is a list of words to recognise. Its docs say it guides speech models and AI Enhancement, and does not force one word to become another. Dictionary Auto Learn watches your edits to inserted text. An AI model you pick, such as one in Ollama or a cloud provider, decides which edits become entries. Auto Learn is on by default. You can set it to wait for your approval before it adds anything.

ParrotFlow matches a taught name by spelling and by sound. Then it checks the sentence before it writes the name.

You say

“upgrade view”

ParrotFlow writes

upgrade Vue

You say

“re-render the whole view”

ParrotFlow writes

re-render the whole view

Same sound, ordinary word. ParrotFlow leaves it alone.

If ParrotFlow writes a name where you meant the word, change it back. ParrotFlow keeps that sentence as a counter-example and does not make a reverse rule. When you fix a word, the pill offers to learn it. You can also say “hey parrot” to open a panel and teach a word. The panel needs no language model. See custom vocabulary and teach ParrotFlow a word.

What each one does with your screen

VoiceInk can capture selected text, the clipboard and screen text when you start recording. It reads the active window with OCR, so it needs the Screen Recording permission. This context goes to AI Enhancement. With a cloud provider, it leaves your Mac. A Mode without enhancement does not send it.

ParrotFlow uses the screen to spell names, on your Mac. It is on by default. When you press the key, it reads the window you dictate into. Since version 0.18.0, it does this in any app. It skips password managers, System Settings and password fields. It reads text through Accessibility, so it needs no Screen Recording permission. If it cannot read the window, it uses the text above the caret.

You say

“caret anchor”

Model heard

carrot anchor

ParrotFlow writes

CaretAnchor

Claude Code had just written CaretAnchor in the terminal.

See screen context and local dictation. To install, see download.

Also compare ParrotFlow with Wispr Flow and Superwhisper.

Sources, checked 23 October 2026

VoiceInk

ParrotFlow