native macOS · on-device · open source

Voice in.Text out.

Spitr is a native macOS dictation tool. Hold the right key, speak, release — and your words are pasted at the cursor, in any app. Fully on-device. No cloud, no subscription, no telemetry.

engine
apple · whisper
privacy
on-device
license
MIT
Claude Code·Mail·Slack·VS Code·Notes·Notion·Messages·Safari·Terminal·Obsidian·Linear·Pages

Built to disappear into your workflow

Every decision points one way: words down, friction gone.

  1. 01

    Writes at your cursor

    No floating panel to copy from. Spitr pastes the transcription into the focused window via ⌘V — and saves and restores your clipboard around it, so nothing is lost.

  2. 02

    Hold one key, nothing more

    The default trigger is the right — a modifier, so holding it never types a character. The mic is live only while you hold the key. Never secretly listening.

  3. 03

    On-device & private

    Transcription runs locally. No network calls, no telemetry, no analytics — ever. Diagnostic logs stay on your Mac and never contain a word of what you dictated.

  4. 04

    Two engines, your call

    Apple Speech is built in and needs no download. Or switch to WhisperKit — it pulls a model once, then runs offline on the Neural Engine for the best German accuracy.

  5. 05

    Learns your words

    Custom vocabulary and a personal dictionary of fixed replacements. A local, deletable history lets you turn any misrecognition into a permanent rule in one tap.

  6. 06

    Open source, yours to audit

    Every line is public under the MIT license. Multilingual UI (de/en/fr/es/it/pl), voice commands, and re-insert your last dictation when focus jumped to the wrong field.

One key, start to finish

Hold, spit, land — a whole dictation, end to end.

Hold

Hold the right from any app. The overlay wakes and starts listening.

Spit

The waveform confirms you're heard. Hold with to speak a command instead.

Land

Let go. Spitr transcribes on-device and pastes the text right at your cursor.

Private by design, verifiable in the source

The whole point is that "nothing leaves the device" is worth checking.

  1. No network calls

    Everything runs on-device. The only exception: WhisperKit downloads its model file once, on first activation — then runs fully offline. Apple Speech needs no download at all.

  2. Three permissions, each explained

    Microphone to capture while you hold the key, Speech Recognition for on-device transcription, and Accessibility to receive the global hotkey and paste via ⌘V.

  3. Non-sandboxed, on purpose

    Typing into arbitrary apps and receiving a global hotkey are incompatible with the macOS App Sandbox. Spitr ships non-sandboxed — a deliberate, necessary trade-off you can read in the code.

get spitr · beta 0.9.0

Stop typing. Start talking.

Download the beta DMG and drag Spitr to Applications — or clone the repo and build it yourself in Xcode. Both free, both open. Requires macOS 26 or newer.

self-signed beta · not notarized — how to open it on first launch ↓

First launch takes one extra click

Spitr is a self-signed beta, so macOS checks with you once before it runs.

The first time you open Spitr, macOS Gatekeeper says "Apple could not verify 'Spitr' is free of malware." That's expected for a beta without a paid Apple signature — not a sign anything is wrong. Approve it once and it opens like any other app from then on.

recommended · no terminal

Allow it in System Settings

  1. In the warning, click Donenot "Move to Trash".
  2. Open System Settings → Privacy & Security and scroll to the Security section.
  3. Next to "Spitr was blocked…" click Open Anyway, confirm, and enter your password.

On macOS 15+ the old right-click → Open trick no longer works for non-notarized apps — this is the supported route.

one line · for terminal users

Or clear the flag yourself

Removes the quarantine attribute so Spitr opens straight away:

$xattr -dr com.apple.quarantine /Applications/Spitr.app

Optional — confirm the download is genuine and unmodified: this prints the file's SHA-256 fingerprint, which should match the checksum published with the release.

$shasum -a 256 Spitr-<version>.dmg

Updating later

Quit the running Spitr first (menu-bar icon → Quit), then drag the new app over the old one and repeat the allow step above — a freshly downloaded build is always quarantined again. There's no auto-update until Spitr is notarized.