Hold a key, talk,
let go.

Mac: macOS 14+ · Apple Silicon Windows: Windows 10+ · 64-bit For Apple Silicon Macs (macOS 14+) and 64-bit Windows 10+. Send yourself the link. Also for WindowsAlso for MacAll downloads

v3.15.1·Release notes

Waffler turns what you said into clean text and pastes it where you were typing. Free and open source for Mac and Windows, on your own Groq key.

Try the overlay

Download for Mac Download for Windows

No microphone used. Recreated in HTML from Waffler 3.15.1. Names are example data. Hold the key (pointer, Space or Enter) and let go to paste, or click it once to play a take. Esc cancels.

Examples

An emailYour greeting and sign-off stay. The ums don’t.

What you said

Hi, Sam. removed: Um, so, yeah, for the review, can we do Thursday at two? I'll bring theremoved: , uh, updated numbers. Cheers, James.

Waffler wrote

Hi Sam,

For the review, can we do Thursday at two? I'll bring the updated numbers.

Cheers,
James

A spoken listCount it out and it comes back as a list.

What you said

Right, for the launch we need three things. First, fix the pricing page. Second, record the demo. Third, removed: uh, email the beta list.

Waffler wrote

Right, for the launch we need three things.

  1. Fix the pricing page.
  2. Record the demo.
  3. Email the beta list.
A change of mindCorrect yourself mid-sentence and only the correction stays.

What you said

Send it to removed: John, sorry, James, by Wednesday at three.

Waffler wrote

Send it to James by Wednesday at three.

A team messageCasual stays casual. It keeps how you talk.

What you said

Hey team, quick one, the build's gone out, soremoved: , er, shout if anything looks off. Cheers, James.

Waffler wrote

Hey team,

Quick one, the build's gone out, so shout if anything looks off.

Cheers,
James

Your wordsAdd a word to your vocabulary once and it’s spelled your way.

What you said

Can youremoved: , um, check the post-grass (corrected to Postgres) migration on macOS before the release?

Waffler wrote

Can you check the Postgres migration on macOS before the release?

With Postgres in your Vocabulary.

Thinking out loudRambling is fine. It tidies the ums and keeps the thought.

What you said

So I think we shouldremoved: , um, wait on the redesign. Maybe ship the fixes first. I don't know. What do you reckon?

Waffler wrote

So I think we should wait on the redesign. Maybe ship the fixes first. I don't know. What do you reckon?

Download for Mac Download for Windows

Synthetic voices made for this page. Each result is Waffler’s real output for that clip. The apps and names around it are example data.

The app

Journal, example data: 71 words and 4 entries today, 51.4k words in all. Today at 14:32: “Can you send me the updated deck before the call? I want to check the numbers on slide four before we share it with the client.” Today at 11:05: “Reminder to book the dentist, renew the car insurance and order more coffee filters.”

Vocabulary, example data: five words, Isobel, Caitlyn, Sinéad, Hailey, Clubcard, and a box to add a word or phrase.

Settings, example data: Usage estimates $0.01 today, $0.11 this week, $0.46 this month and $2.05 all time across 1284 transcriptions, $1.9722 on Groq and $0.0822 on OpenAI. Spelling is British English, auto-paste is on, and version 3.15.1 checks GitHub Releases for updates.

Example data. Redrawn in HTML, based on Waffler 3.15.1.

Pastes into any app with a text box.

Read the source

If an app blocks pasting, the text is still on your clipboard.

How it works

Hold. Talk. Let go.

Three steps, and you never leave the app you were typing in.

  1. 01

    Hold your hotkey.

    Hold Fn on a Mac or Win + Ctrl on Windows. The golden waffle appears on your screen, over whatever you’re in.

    Example data

    A held hotkey, and the waffle overlay appearing with its cells empty, below a chat where Rosa has asked: “The final deck’s ready. Who should I send it to?” The reply box is empty.
  2. 02

    Talk like you would to a person.

    A correction mid-sentence is fine, and so are ums and stutters. The cells fill with syrup as your voice gets louder, so you can see it’s listening.

    Synthetic example voice

    Example data

    The same chat, the waffle’s cells filling with syrup as you answer out loud. Above it, what you said, word for word: “Send it to John, sorry, James, by Wednesday at three.”, with “John, sorry,” struck through.
  3. 03

    Let go.

    Waffler transcribes it, tidies it up and pastes it at your cursor. It’s on your clipboard too.

    Pasted at your cursor, and on your clipboard

    Example data

    The overlay gone, and the tidied answer, “Send it to James by Wednesday at three.”, pasted in the reply box to Rosa, and on the clipboard.

Three keys. That’s the whole interface.

  • 01

    Your hotkey. Fn on a Mac, Win + Ctrl on Windows. Hold to talk. Let go to paste.

  • 02

    Space. Tap Space while holding the hotkey to lock recording on, then let go and keep talking. Press the hotkey again to stop and paste.

  • 03

    Esc. Esc cancels while you’re recording: nothing is transcribed, pasted or sent, so nothing is spent. The waffle’s X does the same.

Clean-up

It keeps your words. It just loses the ums.

See every rule

Fillers and stutters go. Correct yourself mid-sentence and only the correction stays. Count items out (first, second, third) and you get a numbered list. Your greeting, sign-off and tone stay yours. Its rules forbid adding words, and any em-dash it writes is removed.

Recording

The overlay

Fills with syrup as you talk, and shows over full-screen apps.

Tidy up

What you said

removed: Um, so removed: I I think removed: the the new onboarding isremoved: , like, really close. Can you have a look beforeremoved: , uh, Friday?

Waffler wrote

I think the new onboarding is really close. Can you have a look before Friday?

A spoken list

What you said

Right, for the launch we need three things. First, fix the pricing page. Second, record the demo. Third, removed: uh, email the beta list.

Waffler wrote

Right, for the launch we need three things.

  1. Fix the pricing page.
  2. Record the demo.
  3. Email the beta list.

A change of mind

What you said

Send it to removed: John, sorry, James, by Wednesday at three.

Waffler wrote

Send it to James by Wednesday at three.

Greetings and sign-offs

What you said

Hi Priya, thanks for meeting today, it was really useful. Regards, James.

Waffler wrote

Hi Priya,

Thanks for meeting today, it was really useful.

Regards,
James

Before and after

Four clean-up rules. Each result is Waffler’s real output for that transcript.

  • Changes of mind

    Say “John, sorry, James” and only James makes it in.

  • Lists when you count

    Say first, second, third and you get 1, 2, 3.

  • Greetings and sign-offs

    Hi Sam and Cheers, James stay where you put them.

  • Nothing added

    Its rules forbid adding words you didn’t say. Any em-dash it writes is removed.

prompts/normal.txt

The clean-up rules are public. Read every one.

Read on GitHub

In the app

The bits you’ll notice later. Done properly.

How setup works

Every dictation is kept on your machine and searchable. Teach it the spellings you use. See what your dictations would cost at published paid rates.

Journal

Every dictation, kept and searchable. Copy it again, or see the raw transcript.

Example data

Example data

Usage

Estimates what your dictations would cost at published paid rates, per provider. It’s in Settings.

HeardPasted

  • “Isabel”, pasted as Isobel
  • “Caitlin”, pasted as Caitlyn
  • “Sinead”, pasted as Sinéad
  • “Hayley”, pasted as Hailey
  • “club card”, pasted as Clubcard

Vocabulary

Speech-to-text writes the usual spelling. Add the ones you use, like a name spelled its owner’s way or a word written as one, and Waffler puts it right before it pastes. Matching is loose, so words spelled close to an entry can change too.

  • Over full-screen apps

    The waffle sits on top of full-screen apps. On a Mac it follows your cursor to whichever display you’re working on.

  • A backup, if you want one

    One Groq key runs everything. Add an OpenAI key and Waffler falls back to it if Groq doesn’t answer.

  • One-click updates

    Check for Update downloads, installs and relaunches. Updates come from GitHub Releases.

  • Spells like you

    Spelling can follow yours, or be set to British or American. English only, for now.

Privacy

Private by design, with nothing in the middle.

Your voice goes from your computer to the provider you chose, on your own key. There’s no Waffler account to sign into and no Waffler server for anything to pass through.

Audio goes from your Mac or PC to Groq or OpenAI on your own key. If you add an optional Cerebras key, only the transcript text goes there for clean-up. Text comes back to your cursor. There is no Waffler server in between.

Your Mac or PC

audio, on your key

No Waffler server

text, back to your cursor

Your chosen provider

Groq or OpenAI

Your keygsk_••••••

Transcribes and tidies. Bills you directly, if at all.

Optional Cerebras key: gets the transcript text for clean-up, never audio.

The only other network call is the update check to api.github.com.

  • Microphone

    Open while Waffler runs, holding only the last half-second so your first word isn’t clipped. Nothing is kept or sent until you hold the hotkey, and then only to your provider.

  • Keyboard

    A hook watches for your hotkey, and for Space and Esc while you’re recording. Keystrokes are never recorded or sent.

  • Clipboard

    Finished text is placed there to paste. During first-run setup only, returning to the window checks once for a just-copied API key.

  • On your machine

    Keys, settings, history, your last 10 recordings and any unsent ones live in ~/.waffler-hosted. Delete it whenever you like.

  • Waffler account: none
  • Telemetry: none
  • Waffler servers: none
  • Keys and history: on your machine
  • Other calls: update check
What the app does on your machine

Cost

Waffler is free. You never pay us.

API key guide

You bring an API key and the provider bills you directly, if at all.

Groq free plan

$0

On Groq’s free plan it costs nothing. The free plan has a daily cap of roughly 30 cleaned dictations, and a per-minute limit. Past either, Waffler still pastes your raw transcript but skips clean-up until the limit resets, unless you add a backup OpenAI key, which runs on credit you prepay to OpenAI.

Set up

  1. 1
    Download Waffler

    Open the DMG on a Mac, or run the installer on Windows.

  2. 2
    Get a free Groq key

    The API key guide shows where. Copy it, switch back to Waffler, and setup fills it in. API key guide

  3. 3
    Hold your hotkey

    Setup walks you through permissions, then you talk.

Mac

Hold Fn. Setup asks for Accessibility and Input Monitoring permissions. Signed with an Apple Developer ID and notarised by Apple.

Windows

Hold Win + Ctrl. Signing through the SignPath Foundation is pending, so SmartScreen may warn you. Choose More info, then Run anyway. GitHub records a SHA-256 digest for every file in a release.

Download for Mac Download for Windows

Mac: macOS 14+ · Apple Silicon Windows: Windows 10+ · 64-bit For Apple Silicon Macs (macOS 14+) and 64-bit Windows 10+. Send yourself the link. Also for WindowsAlso for MacAll downloads

Built in the open

One maker, one repo.

I built Waffler to stop paying about £10 a month for dictation. Most of it was written by dictating into Waffler itself. If something breaks or you want a feature, open an issue on GitHub.

James Farrelly, maker

Releases

v3.15.1

Release notes for this version are on GitHub.

  1. v3.14.100

    Window fonts now ship inside the app, so opening it no longer contacts Google. The Mac app declares macOS 14 as its minimum, and vocabulary corrections now catch hyphenated mishearings.

  2. v3.14.99

    Changed the setup key check that Windows Defender flagged: it now runs when you switch back to the window, not on a timer. Windows builds are still unsigned, so SmartScreen may still warn.

  3. v3.14.98

    A dictated “Thank you, James.” sign-off is kept, not dropped.

  4. v3.14.97

    Long recordings keep their ending.

  5. v3.14.96

    Setup asks for one Groq key instead of a choice of three.

Every release is built by GitHub Actions from a version tag. GitHub records a SHA-256 digest for every file in a release.

All releases
  • MIT licence

    Read, fork or change every line.

  • SHA-256 digests on GitHub

    GitHub records one for every file in a release. Check your download against it.

  • Mac: signed and notarised

    Signed with an Apple Developer ID and notarised by Apple.

  • Windows: signing pending

    Signing through the SignPath Foundation is pending, so SmartScreen may warn you. Choose More info, then Run anyway. Why, and what to check

Questions

Fair questions.

Still stuck?

The API key guide covers setup. Anything else, ask on GitHub issues.

Setup

What do I need?

A Mac on macOS 14 Sonoma or later with Apple Silicon (M1 or later), or a PC on Windows 10 or later, 64-bit (x64). You also need a microphone, an internet connection and an API key from Groq (free, starts with gsk_) or OpenAI. The API key guide walks through it. There is no Linux build. There is no phone app.

Do I need an account?

Not a Waffler account. There isn’t one. You do need an account with Groq or OpenAI to make an API key, and both are free to sign up for. Groq’s free plan is enough to start.

How do I get an API key?

Sign up at console.groq.com, create a key and paste it into Waffler when setup asks for it. An OpenAI key is optional: add one if you want a backup for when Groq is down or rate-limited, or to keep clean-up going past the free plan’s limits. OpenAI’s API is prepaid, so a backup key means buying credit up front. The API key guide goes through both, step by step.

Which provider should I use, Groq or OpenAI?

Start with Groq. It has a free plan, it does both jobs (speech to text and clean-up), and Waffler tries it first. An OpenAI key works as a backup: Waffler moves on to it when Groq is rate-limited, down or past the free plan’s limits (about 30 cleaned dictations a day, and a per-minute limit). A backup is not free to keep: OpenAI’s API is prepaid, so you buy credit up front (at least $5), and unused credit expires after a year. You can change the order in Settings.

Can I change the hotkey?

Yes. On a Mac the default is Fn, and you can change it to Command + Shift or Option + Shift, in Settings. On Windows the default is Win + Ctrl, and you can change it to Ctrl + Shift when setup asks for your hotkey.

Does Waffler update itself?

It asks first. Shortly after it starts, Waffler checks GitHub for a newer release and shows a banner if there is one. Click Download there, or use Check for Update in Settings → About, and it downloads the new version, installs it and relaunches. On macOS the update swaps the signed app bundle. On Windows the installer performs a silent upgrade.

Cost

Is it really free?

Waffler itself is free and open source under the MIT licence. You never pay Waffler anything. The only cost is what your API provider charges. On Groq’s free plan that is nothing, up to about 30 cleaned dictations a day. On a paid Groq plan each dictation costs about a sixth of a cent, so 1,000 dictations a month is roughly $1.60. The Usage panel in Settings estimates what your dictations would cost at published paid rates.

What happens when I hit the free limit?

After about 30 cleaned dictations in a day on Groq’s free plan, Waffler still pastes your raw transcript but skips the clean-up until the limit resets. The free plan also limits use per minute, so two dictations within a minute can hit that limit for a moment, with the same result. An OpenAI key as a backup carries on cleaning up, on prepaid credit you buy from OpenAI.

Privacy

Is it listening all the time?

Nothing is kept or sent until you hold the hotkey. So your first word isn’t clipped, Waffler keeps the microphone open while it runs and holds only the last half-second in memory, constantly overwritten. When you hold the hotkey, that half-second becomes the start of your recording, and the recording goes straight to the provider you chose, on your own key.

Is my data private?

Waffler has no servers and never receives your audio. The audio goes straight from your device to the provider you chose (Groq, with OpenAI as an optional backup), using your own API key. If you add the optional Cerebras key, Cerebras may receive the transcript text for clean-up, never the audio. Each provider publishes how it handles API data: Groq and OpenAI. More on the privacy page.

Where does my data live?

On your machine, in ~/.waffler-hosted (%USERPROFILE%\.waffler-hosted on Windows): your API keys, settings, vocabulary, history and logs, and your last 10 recordings. A recording that fails to send is saved to ~/.waffler-hosted/unsent/ and kept until you delete it. Uninstalling leaves the folder in place, so delete it yourself if you want it gone.

Compatibility

Which apps does it work in?

Any app with a text box that accepts a paste. Waffler pastes where your cursor is. If the paste doesn’t land, the text is still on your clipboard, and in the Journal.

Does it work in other languages?

No other languages yet. Waffler works in English, with British or American spelling.

Does it work offline?

No. It needs an internet connection to reach your provider. If a recording can’t be sent, for example because a VPN blocks the connection, Waffler saves it to ~/.waffler-hosted/unsent/ so your words aren’t lost.

Is the app signed?

On Mac, yes. Signed with an Apple Developer ID and notarised by Apple. On Windows, not yet. Signing through the SignPath Foundation is pending, so SmartScreen may warn you. Choose More info, then Run anyway. Every release is built by GitHub Actions from the public source, and GitHub records a SHA-256 digest for every file in it that you can check against your download. Read the code signing policy.

Less typing. More waffling.

Free for Mac and Windows. Bring your own Groq key.

Mac: macOS 14+ · Apple Silicon Windows: Windows 10+ · 64-bit For Apple Silicon Macs (macOS 14+) and 64-bit Windows 10+. Send yourself the link. Also for WindowsAlso for MacAll downloads