Voice → structured prompt
Tap fn and think out loud. Out comes a goal, numbered steps and constraints — pasted wherever your cursor blinks.
Free 8,000 words/week · macOS 14+ · Signed & notarized by Apple
Fidelity
How much polish? Your call.
Um, the deadline is Friday — wait, actually Thursday. Thursday gives us buffer. And, uh, tell design. Anyway, Thursday.
Punctuation only. Every word kept.
Bilingual
Mid-sentence Chinese–English switches aren't an edge case here. They're the point.
这个 PR 的 error handling 有点乱 然后那个 retry logic 也得 refactor
这个 PR 的 error handling 有点乱,retry logic 也得 refactor。
ship 之前记得 update 一下 pricing page 的 copy
Ship 之前记得 update 一下 pricing page 的 copy。
One dictation, two languages, zero mode switching — recognition and cleanup both handle the mix natively.
Reliability
Bad days happen. Your words land anyway.
Privacy, structurally
Recognition runs on Apple's speech engine. Our cleanup service only ever receives text — and with your own key or local Ollama, not even that.
Microphone — hears you only while you hold the trigger. Never records in the background.
Speech Recognition — Apple’s engine turns your speech into text.
Accessibility — catches your trigger key system-wide, pastes cleaned text at your cursor, and briefly re-reads the text it just inserted so it can learn your corrections. It doesn’t log keys, doesn’t read other windows, doesn’t watch your screen. Not a keylogger.
Privacy & permissions, spelled out →
Data flowAudio: nowhere. Recognition runs on Apple’s engine — on-device when your macOS supports it. ListenIn’s cleanup service never receives audio.
Text: one hop. With built-in cleanup, the recognized text — plus optional dictionary terms and settings — goes over HTTPS to our endpoint, keyed to a random device ID. No account, no email. No transcript database exists; the server keeps only anonymous word counts for quota.
Or zero hops. Bring your own key and text goes straight from your Mac to your provider. Pair local Ollama with on-device recognition and the whole flow is zero-cloud.
Voice coding
Use a separate trigger to turn a rough spoken request into a clear instruction for Cursor, Claude Code, Xcode, or your terminal. ListenIn pastes it where you are already working.
Quick Prompts
Save the prompts you reuse. Speak a trigger phrase plus its name — the full text lands at your cursor, in any app.
Correction learning
Every dictation tool gets your product names wrong. Only one notices when you fix them.
Features
Pricing
Every download starts with a 14-day full-featured trial — no card, no account
Core voice workflow, with no expiry
Everything in Free, with more room and stronger cleanup
| Feature | Free | Pro |
|---|---|---|
| Cleaned words per week | 8,000 | Unlimited* |
| Raw dictation, no cleanup | Unlimited | Unlimited |
| Access during high demand | Standard | Priority |
| Dictate · Translate · Ask Anything | ✓ | ✓ |
| Reads the room — tone per app | ✓ | ✓ |
| English + 中文, even mixed | ✓ | ✓ |
| Learns your corrections | ✓ | ✓ |
| Personal dictionary | ✓ | ✓ |
| History — stays on your Mac | ✓ | ✓ |
| Auto-paste at your cursor | ✓ | ✓ |
| Bring your own model | ✓ | ✓ |
| Support | Priority |
* Fair use: soft cap of 60,000 words/week — dictation never hard-stops. Payments handled by Polar (merchant of record)
Under the hood
The engineering behind the three seconds — click any card
Speech-to-text uses Apple’s speech engine — the modern on-device SpeechAnalyzer stack on macOS 26, with the classic engine as fallback. The classic path is allowed to use Apple’s speech service; Apple’s privacy policy applies there.
ListenIn’s cleanup service receives recognized text, never audio. During a dictation, temporary crash-recovery audio and raw text are written locally; normal completion or cancellation deletes the active draft. See every mode and destination →
The cleanup engineRecognizers hear the sounds right and write the wrong word. So the cleanup model reads each sentence for topic, and when a word doesn't belong, it restores the same-sounding word the topic demands — 定价页的「岳父」→「月付」, "Ahader" → "header".
Two gates stop over-correction: the replacement must be what those exact sounds produce, and the context must make the intent obvious — when torn, the transcript stays. Fillers, restarts and self-corrections are resolved under the same rule: every output word must trace to words you said. A regression suite of trap sentences guards all of this on every deploy.
It learns youAfter pasting, ListenIn briefly re-reads the field. If you corrected a word, the fix is harvested into your personal dictionary — which then feeds both the recognizer's biasing and the cleanup model's known-terms list. The loop closes: yesterday's mistake is today's vocabulary.
Context helps too: the tail of your previous dictation (same app, within 5 minutes) tells the model what topic you're on, so ambiguous sound-alikes resolve correctly — at zero extra privacy cost, since that text already went through cleanup.
Trigger & pasteTap fn to start, tap to finish — or hold it like a walkie-talkie. Remap to any key you like. The cleaned text is pasted exactly at your cursor via the accessibility APIs.
Add any OpenAI-compatible or Anthropic endpoint in Settings — including a local Ollama. Requests then go straight from your Mac to your provider; our servers aren't in the loop at all.
The built-in service stays zero-setup: cleanup runs through our backend, which holds the prompt server-side and meters fair use. Two paths, same product — pick per profile and switch with one tap.
Never lose a wordDictation itself never depends on our servers. Offline, over quota, or if cleanup fails — the raw transcript still lands at your cursor, with an honest notice instead of a silent shrug. Everything is also in local history.
Free metering is 8,000 cleaned words a week; Pro's fair-use cap is soft — dictation never hard-stops. When the cleanup service degrades, you see it labeled, never disguised as a result.
ListenIn’s next big capability is in the making — same personal dictionary, same privacy rules, same subscription. Leave your email and get the beta first.
FAQ
The App Store sandbox does not expose the accessibility path ListenIn uses for system-wide trigger and paste. ListenIn is distributed directly, signed with an Apple Developer ID, and notarized by Apple so Gatekeeper can verify each build
You still get the raw transcript inserted at your cursor — dictation itself never depends on us. Cleanup picks back up when you're online
No. 8,000 cleaned words per week, forever. Your first cloud cleanup automatically starts a 14-day everything-unlocked trial, so you see the full product before deciding
Payments are handled by Polar as merchant of record — they take care of invoices, VAT, and refunds. Try everything free for 14 days first; if something's wrong after that, tell us and we'll make it right
macOS 14 (Sonoma) or newer, Apple Silicon and Intel