Documentation

Docs

For clide 2.1.0 · Apple Silicon · macOS 13 or later

What clide is

clide is a dictation utility for macOS. You hold a shortcut, speak, and the text appears in whatever app you were already typing in. Rust owns the microphone, the shortcut, transcription, and insertion; React only draws the window.

It is free and MIT licensed, and everything runs on your Mac. There is no account, no cloud, and no API key to manage. Your audio is never uploaded.

Install

Download the DMG from this site or from the releases page and drag clide into Applications. It runs on Apple Silicon Macs with macOS 13 or later.

Check the download

Compare the file's checksum with the one published on the homepage:

Terminal
shasum -a 256 ~/Downloads/clide_2.1.0_aarch64.dmg

Releases from 2.1.0 on are signed with a Developer ID certificate and notarized by Apple, so macOS opens them without a Gatekeeper warning. The older 0.1.2 preview is not notarized, still contains the removed cloud engines, and has to be updated by hand.

Build from source

Terminal
git clone https://github.com/staraepp/clide_stt clide
cd clide
npm install
npm run app:build -- --debug --bundles app
open src-tauri/target/debug/bundle/macos/clide.app

Use the bundled app rather than npm run app. Permissions are granted to a signed bundle, and the dev binary is not one.

Permissions

clide asks for each permission at the moment it first needs it, never all at once on launch.

PermissionWhat it is for
MicrophoneRecording while you hold the shortcut.
AccessibilityTyping the transcript into other apps.
Speech RecognitionOnly for Apple Speech. macOS treats this as separate consent even though recognition is on-device.

Engines

Three transcription engines, all running on your Mac. Switching between them never changes anything else about your setup.

EngineNeeds
Apple SpeechNothing, it ships with macOS and is forced on-device. The default on a fresh install, and the only engine that can type as you speak
Local WhisperA model you install
Local ParakeetA model you install

If an engine fails, clide tells you what happened and lets you retry or choose another one you have installed. It never changes engines behind your back.

Local models

39 models, 33 Whisper builds and 6 Parakeet, from about 32 MB to 3.1 GB. You choose which to install: open Models, pick one, and press Install. Nothing is downloaded until you do, and you can remove a model whenever you like. There are no file paths to manage.

The Models page ranks them for your Mac. It reads your chip and memory, and the stars come from that plus the model's own declared class. There is no popularity score, because clide has no telemetry and could not know one.

Which to start with

  • Apple Speech: nothing to download. Try this first.
  • Whisper Large v3 Turbo, compressed: the best trade in the catalogue, Turbo's accuracy at roughly a third of the size.
  • Parakeet: very fast, and strong on conversational speech. Compressed builds bring it down to about 670 MB.

Downloads stream to a partial file and only become installed after an atomic rename, so an interrupted download can never be mistaken for a working model.

Processing modes

ModeWhat it does
VerbatimYour words as spoken. Spacing is tidied, nothing else.
PolishedLocal cleanup of fillers, stutters, spacing and capitalisation. No model, no added delay.
RewriteTurns spoken phrasing into written prose, on device, with Apple Intelligence or a local Ollama model.

Rewrite runs the deterministic cleanup first and only then asks the model. If the rewrite engine is off, still downloading or fails, you get the polished transcript, never nothing. Refinement is never allowed to cost you words you already said.

Prefer Ollama? If it is running on your Mac, clide can use one of your installed models. clide only ever talks to Ollama on 127.0.0.1, so the text stays on your machine. Choose the model in Settings, or leave it on automatic.

The shortcut

One shortcut, and you choose how it behaves: hold to talk, or press once to start and again to stop. The default is ⌥ . and you can change it in Settings.

While recording, a small pill appears near the bottom of the screen with a live level meter. It never takes keyboard focus, so your caret stays exactly where you left it. If something goes wrong it grows into a card with your transcript on a draggable chip, so you can drop the text straight into any field. clide can also lower other apps' audio while you record, so it does not talk over your music.

Live typing

With Apple Speech, words appear in the app as you say them instead of all at once when you stop. It is on by default and can be switched off in Settings. Whisper and Parakeet transcribe a finished recording, so they type when you stop. Live typing is off in Rewrite mode, which needs the whole sentence first.

Spoken corrections

Change your mind mid-sentence. Say “scratch that” or “strike that” to delete back to the previous comma or sentence end, or “scratch the last sentence” to remove it. clide also collapses an immediate stutter such as “I want it I want it to”. If you scratch everything, nothing is inserted.

Because live typing has already put the words on screen, corrections apply to batch dictation. A sentence that really contains “scratch that” will be treated as a command.

Dictating code

  • Spoken punctuation: say “comma”, “new line” or “question mark” and clide types the punctuation. It works in every mode and adds no delay.
  • Developer dictation: primes Whisper with technical words so editors, terminals and browsers come out right. Choose Dev apps, Everywhere, or Off. Only local Whisper accepts a vocabulary prompt, so Apple Speech and Parakeet ignore it, and Settings says so.
  • File paths as code: optional and off by default, because backticks are literal characters in a terminal. Turns “open src slash app dot tsx” into `src/app.tsx`.

How text lands

Every transcript is copied to the clipboard first. That happens before any insertion is attempted, so if everything else fails your words are still one paste away.

Then clide tries, in order:

  • Accessibility: writes straight into the focused control, and verifies the text actually changed rather than trusting the API's success code.
  • Typing: sends the text as Unicode keystrokes. This is what reaches Electron and Chromium apps.
  • Paste: a synthetic ⌘V, as a last resort.

Updates

Once a day, clide checks GitHub for a newer release. It never installs anything on its own: when one exists, the Update button appears, and only pressing it downloads the new version. The download is verified against a public key built into the app, so a package that was not signed by the project is rejected wherever it came from. Version 2.1.0 is the first that can update itself. Earlier installs update by hand.

Privacy

  • Recordings are temporary and deleted once the transcription resolves. History stores text, never audio.
  • History is a local SQLite database on your Mac, searchable with full-text search.
  • Your audio never leaves your Mac, and there is no clide server and no account.
  • The only network requests are the model downloads you start, the daily check for new releases, and an update you choose to install.

The full picture is in the Privacy Policy.

Troubleshooting

System Settings shows Accessibility on, but clide says it is not granted

Both are telling the truth. macOS ties the grant to the app's code signature, and a rebuilt preview build has a new one, so the switch you see belongs to a version that no longer exists. Use Repair access in Settings, which clears the stale record and asks macOS to register the running build.

Dictation works, but nothing appears in one particular app

Some apps, Electron and Chromium ones especially, report that they accepted the text and then discard it. clide checks whether the text actually changed and falls through to typing when it did not. If an app still refuses everything, the transcript is on your clipboard: paste it.

Rewrite says unavailable

Apple Intelligence needs to be switched on in System Settings, on Apple Silicon, running macOS 26 or later. The engine list in Settings shows which requirement is missing.

Something else

Open an issue at github.com/staraepp/clide_stt/issues. Settings → About has a copyable build number, and including it makes the report far easier to act on.