⠿⠶ Open source · Free · Local-first

Speak. It types.
Nothing leaves your computer.

Whispy is a private voice-dictation utility for macOS and Linux. Hold your push-to-talk key, talk, and release — or flip on toggle mode and press once to start, once to stop — your words land in whatever app you're using. All transcription runs locally with NVIDIA's parakeet-tdt-0.6b-v3. No cloud, no account, no telemetry.

Free & open source · macOS (Apple Silicon & Intel) and Linux (X11)

Whispy, live in your menu bar

See it work

Hold your push-to-talk key, speak, release — Whispy types into whatever field has focus. Here's the whole loop. Don't want to hold it? Turn on toggle mode: one press starts, the next stops. The trigger is configurable; it defaults to Fn on macOS and Right Ctrl on Linux. On macOS, pick it straight from the menu — Fn, Right Command, Right Option, or F13.

Why Whispy

100% local

Audio is transcribed on-device with Parakeet. Your voice never touches a server.

One key, anywhere

Hold your push-to-talk key to record, release to insert text into any focused field — terminal, browser, editor. On macOS the text is handed over through the clipboard, so accents and punctuation arrive intact whatever your keyboard layout.

Hold or toggle

Not every dictation fits under a held-down key. Flip on toggle mode and one press starts recording, the next press stops it — composable with any trigger.

macOS & Linux

Native on macOS and Linux (X11). OS-specific seams sit behind a ports-and-adapters layer bound at runtime.

Knows what you're speaking

25 European languages, detected automatically — even when you switch mid-sentence. Nothing to configure.

Lives in the tray

Runs quietly as a background daemon in the menu bar (macOS) or system tray (Linux). No window to manage — flip Start at login on macOS, and on Linux the installer enables a user service, so it's there every boot either way.

Fast enough to forget

A two-second phrase transcribes in about 75 ms on an M1 Pro. Text lands as you release the key. In toggle mode, text is typed after each pause while you're still speaking.

Quiet when you are

Tap the key by accident, or hold it in a noisy room, and nothing gets typed. Two gates — loudness, then voice detection — keep non-speech away from the model instead of letting it answer with a stray “Yeah.”

Your names, spelled right

List the names, brands and jargon you actually say in custom_vocabulary, and a near miss is corrected after transcription — wispy comes out as Whispy. Still on-device, like everything else.

How it works

  1. 1

    Hold your key

    A soft chime confirms Whispy is recording — Fn on macOS, Right Ctrl on Linux by default.

  2. 2

    Speak

    Whispy listens — the tray shows it's live (macOS adds an on-screen waveform).

  3. 3

    Release

    Whispy transcribes locally and types the text into the active field.

Prefer not to hold the key? Turn on Toggle mode in Settings — one press starts, the next stops. Text then appears as you speak, pause by pause.

Free, open source, and 100% yours

Whispy exists for one reason: dictation that never ships your voice to the cloud. No servers, no accounts, no subscriptions — just open tools running on your own machine. Zero data leaves your computer — by design, not by promise.

⠿

Open source

GPLv3-licensed and fully auditable. Read every line, fork it, make it yours.

⠶

Free forever

No subscription, no paywall, no “pro” tier. Install it once and it's yours.

⣿

Runs on your machine

Self-hosted by default on macOS or Linux — local inference, nothing to upload, nothing to trust.

One model, no choices

Whispy ships a single model and downloads it on first use. There is no size to pick and no language to set.

Modelnvidia/parakeet-tdt-0.6b-v3, int8 ONNX, CPU
Download639 MB, automatic on first run
Speed~75 ms for a 2-second phrase (Apple M1 Pro)
Memory~1.4 GB resident while loaded
Languages25, detected automatically — Bulgarian, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, German, Greek, Hungarian, Italian, Latvian, Lithuanian, Maltese, Polish, Portuguese, Romanian, Slovak, Slovenian, Spanish, Swedish, Russian, Ukrainian
Non-speechDiscarded before the model — needs both loudness and detected voice
VocabularyNames and terms you list in custom_vocabulary are corrected after transcription

Speech outside those 25 languages will not transcribe. The list comes from the model card.

Install in one line

Runs on macOS and Linux (X11). Audio capture uses sounddevice/PortAudio — no sox needed.

curl -fsSL https://raw.githubusercontent.com/albrones/whispy/main/scripts/bootstrap.sh | bash

On macOS this builds and installs the signed Whispy.app (needs the Xcode Command Line Tools). Autostart is the in-app "Start at login" toggle.

On Linux, install the system deps first (X11 session required — Wayland users pick an "Xorg"/"X11" session at login):

# Debian/Ubuntu — xdotool (text injection), xclip (clipboard delivery), PortAudio
sudo apt install xdotool xclip libportaudio2
curl -fsSL https://raw.githubusercontent.com/albrones/whispy/main/scripts/bootstrap.sh | bash