Keep all processing local, and review the exact changes before we merge them.
Recording locallyClean0:00:07
TextEdit
keep all processing local and review the exact changes before we merge them
Live preview · may change
OpenFinish
Illustration recreated from the app: while you speak into TextEdit, Keystorm's floating panel shows “Recording locally”, the Clean mode and a live preview. When you finish, the cleaned sentence is inserted into the document.
How it works
One shortcut. Then talk.
Keystorm listens while you speak and puts the result in the text field you started in, so you don’t have to switch windows.
⌥⇧⌘D
Start
Press the shortcut while you are typing somewhere. You can change it in Settings.
Speak
A small panel shows a live preview. Pause with ⌥⇧⌘P and pick up where you left off.
Done
Press the shortcut again. The text goes where you started, and Keystorm confirms it with a line like “Inserted into TextEdit.”
Languages
Speak in 25 languages.
The on-device speech model recognizes 25 European languages. Keystorm writes down what you said in the language you said it, and never translates unless you ask.
Bulgarian
Croatian
Czech
Danish
Dutch
English
Estonian
Finnish
French
German
Greek
Hungarian
Italian
Latvian
Lithuanian
Maltese
Polish
Portuguese
Romanian
Russian
Slovak
Slovenian
Spanish
Swedish
Ukrainian
Modes
Exactly what you said. Or a little tidier.
Pick Verbatim, Clean or Email before you start. Clean and Email change only punctuation, capitals, line breaks and a few filler sounds like “uh”. Every other word stays, in the order you said it.
You say
uh the build is green and we can ship on friday
→
Keystorm types
uh the build is green and we can ship on friday
The speech model’s transcript, unchanged. No text model is involved, and it is the default. Spoken numbers may come out as digits.
You say
bitte check the Angebot before friday not monday
→
Keystorm types
Bitte check the Angebot before Friday, not Monday.
Punctuation and capitals from a local text model. A sentence that mixes languages stays mixed.
You say
hi anna the slides are ready i put them in the shared folder also can we move the review to thursday thanks max
→
Keystorm types
Hi Anna,
The slides are ready. I put them in the shared folder.
Also, can we move the review to Thursday?
Thanks, Max
Clean, plus paragraphs. It never adds a greeting, a sign-off or a promise you didn’t say.
Your text
Bitte check the Angebot before Friday, not Monday.
→
Translation preview
Please check the offer before Friday, not Monday.
Translate is a preview you make after a recording, and nothing changes until you apply it. Numbers, dates, links and code are copied exactly.
Examples are illustrative. Verbatim works in all 25 languages. The Clean, Email and Translate instructions are written for English and German, and Translate writes English or German.
Privacy
Your voice never leaves your Mac.
Both models run on Apple silicon. There is no account, no cloud service and no analytics. Keystorm goes online only when you choose to download a model.
Model downloads onlychecked against pinned checksums
Careful by design
It checks before it types.
Text goes only into the field you started in. If anything changed while you were talking, Keystorm keeps the result for you to copy.
Where your text goes
TextEditInserted and confirmed
Other appsPasted after the field is checked
TerminalsCopy only
Password managers and password fieldsNever
Outside TextEdit, pasting has been tested in Stickies and Dictionary so far. Browsers and Electron apps are not verified yet. After a paste, Keystorm restores your clipboard when it can.
You stay in control
Block any app or website from dictation.
Keystorm never presses Return or sends anything for you.
It won’t record while secure keyboard entry is on.
Every recording is saved, so a failed insert never loses your words.
More features
Your vocabulary
Learns your words. Only with your OK.
Turn on learning, and Keystorm suggests remembering the names and terms you correct. Nothing is reused until you approve it, and you can undo or forget any entry.
swifft→SwiftApproveForget
Long recordings
Long takes. Fix them later.
Audio is saved as you speak and survives a restart. Pause and resume, save a trimmed copy, or swap a take for an audio file. Summaries are saved as separate versions, and the original is never overwritten.
Details
Built for Apple silicon.
Requires
macOS 27on a Mac with Apple silicon
Disk
0.6 GB to dictateplus 3.1 GB for Clean, Email and Translate
Status
In developmentnot yet signed or notarized for download
Source
Swift and SwiftUIbuilds with Xcode 27
Not released yet.
There is no download yet. The source and progress will be on GitHub.