
Pink Monster Hero
Finished the platformer I started in Game Maker at 13, seventeen years later, with Claude Code.
2008 – 2025
Designed and built a macOS dictation app for prompts that runs on your Mac or through your own API key.
3 min read

SayIt! is a macOS app for dictation. You press a shortcut, speak, and it fixes your grammar and pastes the text where you were typing. I built it for my own prompts in Cursor, Claude Code and Codex. I like to dictate in Czech, and my prompts are sometimes vague, so it translates them and can turn them into better prompts. I always wanted to build a useful app for the Mac, something that serves me and leaves room to be creative with the features I really want. About ten colleagues and friends now use it every day.
01
Press Control+D, speak, press it again. While you dictate, a pill floats above the macOS Dock with a live waveform, then shows the text being processed, then a check when it’s pasted. In the middle of a longer dictation you can pause with Control+P to sort your thoughts, then carry on.
The shortcuts were harder than they look. My first defaults collided with system shortcuts, and the ones the agent suggested were four or five keys at once. I landed on D for dictate and Control for control: “control, dictate”. Command Mode is the same with Shift as the modifier, a modified dictation. They can overlap with other software, and everyone can change them to whatever they want. In my own apps, Slack, Cursor and Codex, there were no conflicts, so I kept them.
02
SayIt! checks which app you’re dictating into. In Cursor, Claude Code, Codex, a terminal or an AI app, the text is a prompt: direct, with no greetings, and every @file reference and slash command kept exactly as said. In Slack or Notes it’s writing: natural sentences and proper grammar. The preview shows which one it picked, and you can switch it.
Translation has two routes, and I use both:


03
SayIt! has three modes:
Speech to text already runs on-device with Parakeet or Whisper. AI refinement runs through an API key for now; on-device refinement is next.
I put a lot of work into the settings, so they’re clear even for people who aren’t technical. Setting up a local model is one click.
The hardest part was what happened before that click. When someone chose a local model without downloading it and started dictating, the app crashed or froze. Now the flow is covered and the pill says what’s happening: it offers to download the model, shows the progress, and says the first dictation on a new model takes longer while it’s prepared for your Mac.


04
I tested SayIt! mostly by using it. When you dictate all day, you fix the hiccups as you meet them. My friends report theirs in a Slack channel, where an AI agent I built in Make catches each report and summarises it into a spec of what to fix.
Some bugs still hide. Custom vocabulary, the words dictation usually gets wrong, didn’t work for weeks before I noticed.
Dan, I’m not touching the keyboard anymore.
05
I decided the whole frontend, the visuals and the UX, and designed every asset in Figma. Claude did the iterations and wrote the code with me, mostly in Cursor and Claude Code. It was my first time working only in the terminal with Claude, and it worked pretty well. Screenshots were the tough part: in the terminal I couldn’t see them the way Cursor, Codex or the Claude app show them. I liked that I still had time to design in Figma and hand that to the agent.

If I started again, I’d begin with local models right away, not later. And as with vibe coding in general, you start slow, then it’s 3 a.m. and you’ve built six overthought, overengineered features.
One day I want to make SayIt! public and open source. It’s still too far away for now.

Finished the platformer I started in Game Maker at 13, seventeen years later, with Claude Code.
2008 – 2025

Designed an iPhone caffeine tracker that took me from 2–3 energy drinks a day to a few a month.
2026 – now

Took Make’s design system from Angular-only to framework-agnostic and agent-ready.
2024 – now

Designed Make’s first AI Assistant, then AI Agents, and brought agent setup back into the canvas.
2024 – 2025

Made a browser that felt like Chrome show what it does, from a customisable new tab to a built-in VPN.
2021 – 2023
Interested in working together? I’d love to hear about your project or team.