For a quick thought.
Keep fn space down while you speak. Let go and it's pasted.
Hold fn space, speak, let go. Dimmela types it wherever your cursor is.
$ brew install --cask mameli/dimmela/dimmela
Try it here
This is how Dimmela works, played in your browser. Hold fn space, let go, and the text lands at the cursor. Want it rewritten? Press shift while you talk and pick a Mode.
Hold fn space on your keyboard, or press and hold it below.
Let go to paste. A quick tap of fn space Locks it: it keeps listening until the next tap. esc cancels.
One shortcut. Nothing to configure.
Recording starts the instant you press, so your first word is never cut off while Dimmela works out what you meant.
Keep fn space down while you speak. Let go and it's pasted.
Tap once and talk hands-free, for as long as you like. Tap again to finish.
Press esc and nothing is pasted, nothing is kept. An accidental tap with no speech costs nothing either.
Modes
Point Dimmela at the folders where you keep prompt files and skills (SKILL.md). Turn on the ones that make sense for dictation and drag them into order: the order is the digit. Edit a file and the next Dictation uses it.
Post-processing goes to any OpenAI-compatible provider, such as OpenRouter or a model running on your own machine. Every Dictation starts with your Default Mode, which can be none. If the provider is unreachable, you get the Transcript and a notification, so you never lose what you said.
Native Swift
Dimmela sits in the menu bar all day and uses almost nothing while it waits.
of memory, with the speech model loaded.
Resident memory with Parakeet v3 loaded, compared with Handy running the same model. The model's weights live with the Neural Engine and aren't counted; even counting them, Dimmela stays well under half.
On-device
Speech is transcribed by Parakeet v3 on the Neural Engine. No account, no server, and it works offline.
The small things
Names and terms that speech recognition gets wrong are fixed in the Transcript, then handed to the LLM too.
Fillers like “uhm” and “mmh” disappear. Words with meaning, like “cioè” or “tipo”, never do.
Your last five Dictations, with their audio. Copy one, or Post-process it again with another Mode.
Speak Italian, English, and other European languages, and mix them, without picking one first.
/ˈdim.me.la/ Italian for “tell it to me.”
$ brew install --cask mameli/dimmela/dimmela