Hold a key. Speak.
The words are already typed.

Push-to-talk dictation for macOS that runs entirely on your Mac. Release the key and the text lands in whatever app you were already typing in — in about 200 milliseconds.

Free forever · No account · macOS 13+ · Signed & notarized

Listening

Right ⌥ held — Kyanth listens from the menu bar

Measured, not claimed

Fast enough that you stop thinking about it

ggml-base.en on an M1 Max, key release to text on screen. Run bench.py against your own voice and check.

149 ms1-second utterance
208 ms3-second utterance
3.5%word error rate
0bytes leaving your Mac

How it works

Three keys, and nothing to learn

Kyanth lives in the menu bar. There is no window to switch to, no button to find, and nothing to copy and paste.

01

Hold your shortcut

Any key or chord. Modifier-only combinations work best — they cannot be typed, so binding one steals nothing from other apps.

02

Say what you mean

A pill appears showing your live input level, so a microphone that is hearing nothing looks obviously different from one that works.

03

Release

The text is pasted where your cursor already was, and your previous clipboard is put back exactly as it was.

Compare

The same job, without the subscription

Most dictation apps are a thin client over somebody else's speech API. That is the difference that matters, and it is not a feature list.

 KyanthCloud dictation
PriceFree, forever$10–15 / month
Account requiredNoneSign-up, email, billing
Works offlineAlwaysNo
Where your audio goesNowhereTheir servers
Source codePublicClosed

No competitor is named, because the point is structural rather than competitive: a hosted API cannot be private, and a local model cannot bill you monthly.

The app

Built like a Mac app, not a wrapper

Hand-drawn AppKit, both appearances, and a setup process that refuses to call itself finished until it has proof.

It always tells you what happened

Silence is the worst failure a dictation tool can have. Six states, six sentences — listening, transcribing, pasted, left on the clipboard, nothing heard, something went wrong.

The three bars are the meter. The centre carries your live level and the outer two replay it a few frames later, so a syllable travels outward.

It floats above other windows without ever taking focus. An overlay that stole focus would redirect your speech into itself.

Four states of the Kyanth overlay: Listening, Transcribing, Pasted into Mail, and Copied — press Command V.

Setup that verifies itself

Eight checks in three groups, re-evaluated every second — flip a switch in System Settings and the row turns without a relaunch.

The last check is the one that matters: Finish stays disabled until a real dictation has produced real text. Green permissions prove configuration, not function.

The Kyanth setup window: eight checks grouped under Permissions, Hardware and model, and Verification, with a progress ring.

Proof that it is hearing you

Modifiers are side-aware, so Right ⌥ is not Left ⌥, and chords commit when you let go rather than on the first key down.

A live indicator lights the moment Kyanth receives exactly your chord — the only way to tell a wrong shortcut from one another app swallowed first.

Kyanth Settings, Shortcut pane: activation mode, the bound chord, and live indicators for keys and audio arriving.

Everything you have said, searchable

Time, transcription, how long you spoke, where it landed and how long the model took — as columns, not one crushed string.

Search filters as you type. Click a row to expand it in place, with copy, paste-again and delete. Nothing truncates.

Stored as a plain .jsonl file you can read or delete at any time.

Kyanth Settings, History pane: a sortable table of past dictations with time, text, duration, destination app and latency.

Privacy

Nothing leaves your Mac. Not by policy — by construction.

There is no server to trust, because there is no server. The speech model ships inside the app and runs on your own hardware.

No account

Nothing to sign up for. Download it and it works.

No network calls

The only connection is to 127.0.0.1 — the transcription engine inside the app.

No telemetry

No analytics, no crash reporting, no phone-home.

The microphone is released

The device opens on your first press and closes after 30 seconds idle, so the macOS recording indicator is not on while you work.

Your history is a file

Plain JSONL under Application Support, capped at 500 entries. Delete it whenever you like.

Signed and notarized

A Developer ID build that opens with no Gatekeeper warning and keeps its grants across updates.

Try it on your own machine

Self-contained — Python, the speech model and the transcription engine all ship inside the app. No Homebrew, nothing to build.