Local dictation for macOS

Dictation for builders.

Names, code and shorthand are spelled right. Everything runs on your Mac, and you can read and change every rule.

brew install znat/tap/parrotflow

Free and open source · macOS 15+ · Apple silicon

How ParrotFlow works

01 · Rules and scripts

Slack mentions, PR links… Add your rules and scripts to a YAML file.

“Siobhan” becomes @siobhan. “PR 478” becomes a link to #478.

02 · Screen context

ParrotFlow uses the names on your screen when they fit what you said.

“carrot anchor” becomes CaretAnchor. “wrecked” stays “wrecked”, even with rect on screen.

03 · Vocabulary

Fix a word once. ParrotFlow learns it.

“view” becomes Vue in “the Vue component”, and stays “view” in “the whole view”.

And more, in the same config file.

Prompts as buttons

Write a prompt and give it a key. After you dictate, press B and your note becomes a bug report.

- name: Bug report
  prompt: Turn this into a bug report.
  offer: true
  key: b

Ask your coding agent

Add the ParrotFlow skill. Say what you want in your own words. Your agent writes the rule and checks the config.

> /parrotflow When I say P zero,
  I want P0.

Your own scripts

Any script that reads text and writes text can be a step, in Python, shell or any other language.

- name: slack_mentions
  command: slack_mentions.py

Pipelines

Run steps in a set order. For example, turn spoken numbers into digits first, so the PR link rule can find them.

pipeline:
  - transform: numbers_en
  - transform: github_refs
  - transform: slack_mentions

Run a step on demand

Start a step from a button on the pill, with a key, or by saying its name.

offer: true
key: s
say: [slack mentions]

Your own model

Only prompt steps use a language model. Pick one on your Mac with Ollama, or one in the cloud.

models:
  gemma:
    api: ollama
    model: gemma4:e4b-mlx

Local

Small models on your Mac.

mmBERT, Qwen3 0.6B and spaCy make small edits to the raw transcript. The rest stays as you said it.

A prompt step uses a language model only when you add one. It runs on the model you choose, local or in the cloud.

Watch the demo.

75 seconds, with sound. Use the chapters to skip ahead.

Install with Homebrew.

brew install znat/tap/parrotflow

Apple silicon and macOS 15+. About 3 GB of disk and 1 GB of memory.

To let your coding agent write rules for you, add the ParrotFlow skill:

npx skills add znat/parrotflow --skill parrotflow