Skip to content

macOS · runs on your Mac · $19/month

Hold a key. Say it. It is already typed.

Coii Voice turns speech into text in the window you were already working in — a sentence back in about half a second, punctuated, in Chinese or English or both. The model runs on your Mac. The recording never leaves it. There is no account.

Not released yet · 30 days free when it is · then $19/month · macOS 13+, Apple Silicon & Intel

Coii Voice — History

retro
  • Ship the release on Friday, and tell the team.

    SlackQwen3-ASR0.5sVerified

  • 明天下午三点开产品评审会,记得带电脑。

    NotesQwen3-ASR0.5sVerified

  • Move the retro to Thursday so the whole team can be there.

    MailQwen3-ASR0.6sUnverified

  • Add a note about the flaky trigram test before I forget it.

    ChromeQwen3-ASR0.7sCopied

audio kept on this Mac

nothing sent · 0 requests

Listening0:03
  • Nothing is uploaded

    Audio and text stay here

  • No account

    Nothing to sign up for

  • Works with Wi-Fi off

    The model is on your disk

  • $19/month

    30 days free first

How it works

One key, and three things that happen in a fixed order.

No window to switch to, no Send button, no waiting for a server to think. Coii Voice is one process listening for a key you already have.

  1. 01

    Hold ⌥ Space

    The pill appears over whatever you were doing and the level meter moves, so you know it is hearing you before you have said anything worth losing. Where the text will go is decided the moment you press the key, not later — by the time a transcript exists you may be looking somewhere else.

  2. 02

    It writes it down first

    Let go, and the audio goes to disk and a row goes into your history before the engine is asked a single question. That order is the whole safety net: nothing downstream — a slow model, a crashed engine, a paste that never lands — can cost you the sentence.

  3. 03

    It types it where you were

    Straight into the field you left, through the accessibility API where that works and a synthetic paste where it does not, with your clipboard put back afterwards. Half a second for a sentence with the default engine, on the machine we measured it on.

Getting the text into your app

Three outcomes, not two.

Typing into somebody else’s application is the least reliable thing this app does, and it is not reliable anywhere. So it is tried in three ways, and each one is honest about what it can prove.

“Sent, and this app cannot tell you whether it landed” is the ordinary case in a browser or an Electron editor. It gets its own outcome and its own line in the pill rather than being reported as success — and the text stays on your clipboard, because a sentence you can still paste is not a sentence you lost.

The ladder

  • 01

    Accessibility API

    Written into the focused field directly. Read back — so this one can say Verified.

  • 02

    Synthetic ⌘V

    Your clipboard saved, the text pasted, the clipboard restored 180 ms after the check.

  • 03

    Clipboard, and it says so

    Nothing typed. The text is on your clipboard and in your history, and the pill tells you which.

And a step before all three: a password field, a moved focus or a missing permission is refused up front, with the text put somewhere safe rather than typed somewhere wrong.

Features

Built around the ways dictation actually fails.

A model that invents a sentence out of silence, a first word clipped off, a paste that lands in the wrong window, a name spelled four different ways — the awkward cases are the ones that shaped this.

What you said never disappears

The recording is on disk and the row is in the database before the engine is asked anything, and long before another application is typed into. A crashed engine leaves a row that says Transcribe again. A refused paste leaves text one click from the clipboard. This is the first rule the app was built from, and every other decision here is downstream of it.

Four engines, and a model is a file

A model is a JSON manifest, not a hard-coded name — so swapping engines is a click and adding one is a file you drop in a folder. Local speech recognition moves every few months; an app that names today's winner in its source is one that has to be rewritten to change its mind.

Chinese and English in one sentence

The default engine detects the language itself, handles both mixed inside a single utterance, and punctuates the Chinese — which the obvious alternative does not. Ninety-odd more languages are one engine away.

Search that works mid-word

The history is indexed on character trigrams, so a substring finds a sentence in any script with no tokenizer and no word boundaries to get wrong. Type two letters and it falls back to a plain match rather than going blank while you type the third.

It never steals your cursor

The pill is a panel that cannot take focus, on purpose. If it could, the field you were typing in would stop being the focused one the instant you started talking — and the app would be typing into itself.

Your words, cleaned up only where it is safe

Repeated words are collapsed, your own vocabulary is applied so a name the model has never seen still comes out spelled right, and both versions are kept — what the model said and what you got. A filter can be wrong without being destructive, which is why the defaults fix plain artefacts of transcription and leave matters of style alone. Filler removal is off, and stays off.

Engines

Pick the trade-off yourself.

Four models ship with the app and every one of them runs locally. They differ in size, in speed and in which languages they are honest about — so the choice is yours rather than ours, and it is a click, not a reinstall.

  • Recommended

    Qwen3-ASR 1.7B

    llama.cpp · 2.5 GB

    Mixed Chinese and English in one sentence, proper nouns, its own language detection — and the only one of the four that punctuates Chinese.

  • Fast

    Parakeet TDT 0.6B v3

    sherpa-onnx · 0.7 GB

    European languages, and a real hotword list for names the model has never seen. No Chinese.

  • Light

    SenseVoice Small

    sherpa-onnx · 0.24 GB

    For an older Mac, and the model first-run installs when you want words on screen inside a minute.

  • Most languages

    Whisper large-v3 Turbo

    whisper.cpp · 0.57 GB

    Ninety-odd languages, compiled into the app with Metal. Also the path for a Whisper model you bring yourself.

A model the app cannot run on your Mac still appears in the list, greyed, with the reason — a row you have read about and cannot find is worse than one you can see is unavailable.

What it sends

Four rows. None of them carries a word you said.

“Private” is easy to write on a page, and a dictation app is the worst possible place to take it on trust. So here is the complete list instead — every connection the app can make, and the one row that says what it never does.

  1. 01

    When the trial starts

    A HEAD request to cloudflare.com, read for its Date header only, so a wound-back system clock cannot buy free days. It carries no identifier. Offline is not an error — the trial then runs on your own clock.

  2. 02

    When you install an engine

    The model weights are fetched once from Hugging Face, which sees your IP address and which file you asked for. Nothing about you, your subscription or your history goes with it. After that the files are used from your disk and the host is never contacted again.

  3. 03

    While you are subscribed

    Your licence key goes to Lemon Squeezy, plus a device label the first time you activate so a stuck slot can be identified in a support request. Nothing else. Not your audio, not your transcripts, not how often you dictate.

  4. 04

    Everything else

    Nothing. No analytics, no crash reporting, no usage statistics, no advertising identifiers. Not one byte of what you said, or of what it was turned into, is ever sent anywhere.

Dictating with the network off does exactly what dictating with the network on does. That is not a feature we added; it is what is left when nothing has to be sent.

Read the privacy policy

macOS only, and not as a stage on the way somewhere.

Typing into another application goes through the macOS accessibility API, the listening pill is a hand-written AppKit panel that must never take focus, the clipboard is saved and restored representation by representation rather than as a string, and your licence is mirrored in the login keychain. Each of those is a rewrite on another platform rather than a build flag — so rather than put a row on this page that would quietly mean “the same app with its best parts missing”, there is no such row.

Apple Silicon and Intel are two separate builds for the same reason: each is compiled and tested on its own machine, and a cross-compiled half is a half nobody ran a test on.

Pricing

One price. Every engine. Cancel in a click.

Thirty days with everything unlocked, no card and no account. Then $19 USD a month.

Personal subscription

$19USD / month

Billed monthly. Cancel any time, from your own receipt.

  • Every engine and every feature — there is no higher tier
  • 3 devices, and you free a slot yourself
  • Every new version while you are subscribed
  • Commercial use, including work you are paid for
  • 30-day trial first, no card and no account
  • Stop paying and every transcript you made stays yours
How the 30-day trial works

You can subscribe from inside the app at any point in the trial.

Secure checkout via Lemon Squeezy, our merchant of record. Cards and more, tax handled, invoice included.

Lost your key, or want to cancel? Lemon Squeezy’s My Orders does both — sign in with the address that paid, no email to us required.

Questions

The ones worth asking first.

Does anything I say leave the Mac?
No. The recording, the transcript and the search index are files on your disk, and the model runs in a process on your machine. There is no server of ours to send anything to, because we do not run one. The complete list of connections the app can make is on this page, under what it sends — none of them carries audio or text.
What exactly stops when the 30 days are up?
One thing: starting a new dictation. Everything you already said stays exactly where it is and stays fully usable — every transcript readable, searchable, copyable and exportable, with no licence and forever. The history is an ordinary SQLite file on your disk and the recordings are ordinary WAVs; we do not hold them, lock them or hide them, and an expired trial does not change that.
It is a subscription — what happens if I stop paying?
The same thing the end of the trial does, and nothing more. New dictation pauses at the end of the period you paid for; your history, your audio, your custom vocabulary and any model you downloaded all stay on your Mac and stay usable. Cancelling is one click in Lemon Squeezy’s My Orders, it takes effect at the end of the period, and it needs no email to us.
Is there an account to create?
No. No sign-up, no email and no profile. The 30-day trial starts when you first open the app and asks for nothing — no card, no registration, nothing to cancel. When you do subscribe, what you get is a licence key; there is still no account in the app.
Does it work on a plane?
Yes — transcription is entirely local and never needs the network, so every dictation works with the Wi-Fi off. The one thing that wants a connection is the subscription check, and a check that cannot reach anything is not an error: the app keeps working and tries again later.
Which languages, and how good is it?
It depends on the engine you pick, which is the reason there are four. The default, Qwen3-ASR, handles Chinese and English mixed inside one sentence and is the only one of the four that punctuates Chinese; Whisper large-v3 Turbo covers ninety-odd languages; Parakeet is European languages with a real hotword list; SenseVoice is the small one for an older Mac. On our own bench — synthesised speech, so the ground truth is exact — Qwen returns a sentence in about half a second with no character errors. Your microphone and your room are not a bench, so try it on yours: that is what the trial is for.
What if the text does not land in the app I was typing in?
Then it is still one click away, which is the whole design. The recording goes to disk and the row to the history before the engine is asked anything, so a sentence cannot be lost by a failed paste. Injection has three outcomes rather than two — landed and verified, sent but unverifiable, or refused — and in the last two the text is deliberately left on your clipboard.
Does it type into secure fields and password boxes?
No, and it refuses early rather than failing halfway. macOS turns on secure input for password fields; the app sees that and stops before it records anything into another app, putting the text on the clipboard instead so nothing is lost.
How big is the download?
The app itself is small; the model is not, and you choose which one. They run from 0.24 GB to 2.5 GB, they are fetched once from Hugging Face when you pick one, and after that they are files on your disk that nothing contacts again. First run installs the small one by default, so you have words on screen inside a minute and can swap engines later.
Why macOS only?
Not a portability gap waiting to be closed. Typing into another application is done through the macOS accessibility API, the listening overlay is a hand-written AppKit panel that must never take focus, and the licence is mirrored in the login keychain. Each of those is a rewrite elsewhere rather than a build flag, so there is no honest Windows or Linux row to put on this page.
How many machines does one subscription cover?
3. You free a slot from the Mac that holds it — Settings → Deactivate this machine — which is worth doing before you wipe or sell it. If a Mac is already gone, email us and we will raise the limit rather than leave you short a device.
Who am I actually buying from?
Lemon Squeezy is the merchant of record: it takes the payment, issues the invoice, and handles VAT, GST and sales tax. The licence to use the app is granted by Riff Tech, Inc.. Your card statement will say Lemon Squeezy.

You already talk faster than you type.

Thirty days, every engine, nothing to sign up for and nothing leaving your Mac. Dictate one message tonight and see.