Watch ParrotFlow work

A 75-second film of ParrotFlow in Slack, Claude Code and a GitHub issue. Each chapter shows what was said, what was written and the config that did it.

The film has sound. The voices you hear are the dictations, so turn the sound on. Captions are on by default, and you can turn them off in the player.

The Slack workspace and the people in it are made up. The voices are synthetic.

Chapters

Each chapter shows one dictation. It lists what was said, what ParrotFlow wrote and the part of the config that made the change.

Rules and scripts

A Slack channel, #lyrebird-launch. Alex asks where the Lyrebird release is. You answer by voice, in two parts.

Said
“Hey Siobhan! The fix is up on PR four seventy-eight, with the new launch price of forty-nine dollars ninety-nine.”
Written
Hey @siobhan, the fix is up on #478 with the new launch price of $49.99.
Done by
Three steps in config.yaml. The github_refs rule is a replacement. Its regular expression finds “PR 478” and writes a link to pull request 478. The slack_mentions step runs the script slack_mentions.py, which turns the name into a mention. The money_en step runs money.py, which writes the price as $49.99.
- name: github_refs
  replace:
    '[#$1](https://github.com/OWNER/REPO/pull/$1)':
      ['/\bPR\s*#?(\d+)\b/']
- name: slack_mentions
  command: slack_mentions.py
- name: money_en
  command: money.py

Read more about rules, scripts and pipelines.

Screen context

Claude Code, in a terminal. Claude’s last answer names CaretAnchor, a type in the code. You ask for a change by voice.

Said
“Move the fallback out of caret anchor!”
Heard
move the fallback out of carrot anchor
Written
move the fallback out of CaretAnchor
Done by
ParrotFlow reads the words on the screen. “CaretAnchor” is in Claude’s answer, so the misheard “carrot anchor” is spelled that way. You do not write a rule for this.

Read more about screen context.

Vocabulary

Claude Code again. You mean the Vue framework, and the transcript has the word “view”.

Said
“Upgrade view to the latest version first!”
Written
upgrade view to the latest version first
Then
You change “view” to “Vue” by hand. The pill asks “Learn this spelling?” with three keys: Y for yes, N for no, E to edit. You press Y.
Said
“Why does the view component re-render the whole view?”
Written
why does the Vue component re-render the whole view
Done by
The vocabulary entry you saved. The first “view” becomes Vue. The last one means a real view, so it stays.

Read more about custom vocabulary.

Commands

A new GitHub issue in the browser. The title is already there: “Settings crash after the update”. You dictate the description.

Said
“When I open the settings, the app crashes and I lose my changes. It started with the last update.”
Written
The same two sentences, as said.
Then
The pill offers a Bug report button, with the key B. You click it. The pill shows “Writing bug report…”.
Written
A bug report with three sections: Steps to reproduce, Expected and Actual.
Done by
A prompt step in config.yaml. offer: true puts the button on the pill. key: b lets you press B instead of clicking. A prompt step runs on the language model you choose, on your Mac or in the cloud.
- name: Bug report
  prompt: Turn this into a bug report.
  offer: true
  key: b

Read more about prompt steps and commands.

Your agent

Claude Code. You add the ParrotFlow skill, then ask for a new rule by voice.

Typed
! npx skills add znat/parrotflow --skill parrotflow, then /parrotflow
Said
“When I say P zero, P one or P two, I want the number as a digit.”
Done by
Claude adds a priorities rule to config.yaml. Then it runs ParrotFlow --check-config to check the file. From then on, when you say “P zero”, ParrotFlow writes P0.
- name: priorities
  replace:
    'P0': ['P zero']
    'P1': ['P one']
    'P2': ['P two']

The film ends at 1:09 with the install command, brew install znat/tap/parrotflow. See how to install ParrotFlow.

Transcript

These are the words spoken in the film. The first seven lines are dictations, so they are written as they are said. The last two lines close the film.

  1. Hey Siobhan! The fix is up on PR four seventy-eight,
  2. with the new launch price of forty-nine dollars ninety-nine.
  3. Move the fallback out of caret anchor!
  4. Upgrade view to the latest version first!
  5. Why does the view component re-render the whole view?
  6. When I open the settings, the app crashes and I lose my changes. It started with the last update.
  7. When I say P zero, P one or P two, I want the number as a digit.
  8. Dictation for builders.
  9. Install ParrotFlow today!

To set up your own rules, start with the guides or the documentation.