Lispr is a free voice dictation and translation app for Mac and Windows. Hold a key, speak, release. Your words land in whatever app your cursor is in. Speak in ~99 languages and switch mid-sentence. Hold your translation key as well, and the translation lands instead, in any of 32 languages. Median latency 346 ms. The mic is off until you hold the key, and we never store your audio. No account, no model download, free.









Nice one love it! How to you plan to make money ? and the trigger key isn't working on my mac i tried multiple of them. maybe add the possibility to add custom one ?
Lispr
@toukoum Thanks Raphaël! On the trigger key: that's not normal, both left and right Option should work out of the box. We're checking the logs on our side right now. Can you tell me which keys you tried and your macOS version? Also check Lispr's settings menu: you can already pick a custom trigger key there, so if Option conflicts with something on your setup, switch it.
On money: the first 1,000 users got Lispr free forever, and the free tier stays for everyone with normal daily use. Down the road we'll charge heavy users, priced in line with similar tools in this space. Running costs are low, so keeping it free is not a trick.
And since you brought up money: if you have ideas on what you'd pay for, I'd love to hear them. That answer is worth more to us than the upvote.
@toukoum @konstantin_karpushin1 I just launched the app and my first impressions are really positive. It also feels very generous that you’re making it free forever for early adopters — really appreciate that.
I was just curious about one thing: since there are no accounts, how will the app recognize who was among the first 1,000 users and keep that free-forever access active over time?
Lispr
@toukoum @vitalik Thanks Vitalii, glad the first impressions held up! Good question. No accounts today, but every install carries its own install ID on the device. That's the marker we'll use: when optional accounts arrive later, early installs get linked to them and receive a forever-free badge. And to be clear, the free tier itself isn't a trial that expires: normal daily use stays free for everyone. The badge just locks the promise in for the people who trusted us first.
@toukoum @konstantin_karpushin1 Thanks for the clarification, Konstantin! That makes sense. Wishing you lots of success with the product and its continued growth — it’s especially great to see a Ukrainian product being built with such care.
This is the right shape for dictation tools: the trust boundary matters as much as the model. A visible hold-to-talk state, no account, and clear audio handling make it much easier to use in client notes, specs, and prompts without second-guessing the capture path.
Lispr
@krekeltronics Thanks Patrick, you named the design principle better than we did. The trust boundary was a day-one constraint: the mic opens on key-down and closes on release, and macOS's own orange indicator confirms it, so you don't have to take our word for anything. Same reason there's no account. Fewer things to trust means fewer things to audit.
This is a very neat idea. Love the concept. For clarity on Windows, it only uses the right CTRL key right? Which I don't think I ever use for any other purpose so makes a lot of sense!
Just fyi, Chrome is flagging a security risk on download. I wonder if it would be better hosting downloads from a common repository rather than your own site? Although this is obviously an issue that will disappear over time.
Lispr
@martin_tanner Thanks, Martin! Right Ctrl is the default on Windows, but you can remap it in the settings menu. Fair point that this isn't obvious. We'll make the key options easier to find in the UI.
The download flag is a reputation warning. Chrome and Windows show it for any new executable until enough people have downloaded it, wherever it's hosted, so a common repository wouldn't dodge it. We sign every build and it passes the security checks; the warning ages out with download volume, as you guessed. Appreciate the heads-up.
hosted whisper to keep it 3.67mb is a sharp trade — but latency's now a network function. the seam is a flaky link: a partial transcript landing silently is the one failure worse than a keyboard.
Lispr
@qifengzheng Sharp read, and yes, the trade is real: latency became a network function the moment we chose hosted inference. That's why the audio streams while you're still speaking (Opus, 20 ms packets) instead of uploading a file after release, and the connection is pre-warmed on key-down. By the time you release the key, most of the audio is already on the other side. The numbers we publish are production percentiles with the network included: 346 ms median, 1.25 s p99.
@konstantin_karpushin1 streaming opus packets is a smart mitigation for the happy path — the case i meant is upstream drop mid-utterance, backend transcribes what it got, cursor sees a truncated line with no failure signal. an audible cue on connection loss would close that seam.
Uppply
Congrats on the launch!
just wanted to understand how is @Lispr different from Wispr flow?
Lispr
@malikankush Thanks! Two differences matter most.
Speed. Lispr pre-warms the connection when you press the key and streams audio while you speak, so the production median is 346 ms from release to text. Side by side, that's the difference you feel in the first minute.
Translation. Hold a second key and your words land translated, in any of 32 languages. Wispr Flow transcribes in many languages but doesn't advertise translation. The case our users love: vibe coding. Models are trained mostly on English, and English prompts burn fewer tokens. So you think out loud in Ukrainian or Spanish, hold the translation key, and a clean English prompt lands in your terminal.
Also free, no account. Full comparison, including where Wispr Flow wins: lispr.ai/blog/lispr-vs-wispr-flow
Now input method apps basically all have this function, right?
Lispr
@huafeis Fair question! Some apps have dictation built in, yes. But it's different in every app, and missing in plenty of them, so you never build the habit: each tool has its own button, its own behavior, its own quirks. Lispr is one gesture that works identically everywhere you have a cursor: hold the key, speak, release. Same muscle memory in your email, your terminal, your chat, your browser. That's when dictation stops being a feature you occasionally remember exists and becomes how you type.
And the things built-in methods don't do: hold a second key and your speech lands translated into another language (32 targets), mid-sentence language switching, and a Vocabulary that learns your brand names.
Lispr
Hey Product Hunt! CTO here. I wrote most of Lispr's code, so I'll take the technical questions today.
The problem that started this: every dictation flow we tried did the same thing. Record a file, upload it, wait for the transcript. That round trip takes 1.5 to 2.5 seconds, and at that speed you stop trusting the tool and go back to typing.
So we built Lispr around one idea: the network work should happen while you speak, not after. The moment you press the key, we pre-warm the TLS connection. While you talk, audio is compressed to Opus and streamed out in 20 ms packets. By the time you release the key, most of the work is already done. Median latency in production is 346 ms across tens of thousands of dictations. That's the difference between "waiting for a tool" and "it just types."
The app itself is native Swift and AppKit. 3.67 MB, universal binary, runs on macOS 11+, including old Intel Macs. No 2 to 3 GB model download before first use.
The line we will not cross: no account, no transcript logging, and nothing trains a model unless you explicitly opt in. Our relay doesn't store your audio. We built it this way because we dictate our own emails, docs, and code comments through it all day.
Pro tip: nothing types while you speak, and nothing gets sent for you. Text lands at your cursor when you release the key, so in a chat it sits in the input field until you press Enter yourself. Don't like how it came out? Delete it and say it again. And if you hold your translation key as well, what lands is the translation instead, in any of 32 languages.
I'll be in the comments all day. Tell me where it breaks, which app it misbehaves in, and how it runs on your Windows machine. Honest technical feedback is the most useful thing you can give us today.
@myroslav_budzanivskyi Since Lispr relies on a cloud-based pipeline to achieve its ~350ms latency, what technical guarantees such as independent audits or ephemeral processing can you provide to ensure that my audio or transcripts are truly not being logged or used by your ASR providers, especially when I am not in a 'zero data retention' mode?
Lispr
@makimum_dev Fair question, and I'll answer it in two layers, because the honest answer has two layers.
What I can guarantee, because we wrote the code: our relay is stateless. It forwards audio and returns text. It has no storage attached, and no transcript content appears in our logs. There's no account, so there's nothing to attach a profile to. You can watch the traffic yourself: one request out while the key is held, one response back.
What depends on our speech provider: their published policy is retention of audio for up to 30 days for abuse review, then deletion. It is not used for training. That's a policy commitment from a company with enterprise customers, not a cryptographic guarantee, and I won't pretend otherwise.
On independent audits: we don't have one. We're a small team a few months in, and a real audit costs real money. It's on the roadmap along with per-device attestation. If you need audited zero-retention today, an on-device tool is the right call for you, and I mean that without irony. The trade you make there is a 2 to 3 GB model download and slower output.
Nothing trains a model unless you flip an explicit opt-in, and that opt-in is off by default.