Blurt
/github

yet another dictation app™

The world did not need
another voice-to-text app.

We made one anyway.

The category is aggressively crowded — it’s mostly the word “Whisper” with the vowels moved around. Blurt is the one that runs on your GPU, never phones home, and types what you said before you’re done saying it.

no account · no cloud · no “we’ve updated our privacy policy” email

got a server running? grab the Mac app: brew install --cask lightware-dev/tap/blurt

wherever your cursor is

Listening…

tap , ramble, tap again to finish (Esc to cancel). final text lands where your cursor is.

// names we are technically competing with

WhisperWispr FlowSuperwhisperOpenwhisprWhispurOverwhisperWhisperstreamWhisperingWhisperTypingWeesperWillowOpenQuackBlurt

We went with the sound your mouth actually makes. Branding is hard; onomatopoeia is free.

We didn’t need to name ourselves after Whisper. We just run it when you want it — --engine whisper, ~100 languages, same hotkey, same GPU.

So why build #401?

Fair question. Three honest reasons — no “revolutionary”, no “AI-powered”, no “reimagining the way you work.”

01

It’s yours.

Runs on your box. Your voice never touches a cloud, an API key, or someone’s training set. No account. No telemetry. Nothing to leak.

02

It’s stupid fast.

NVIDIA Parakeet on an RTX 5090 turns a normal dictation around in ~75ms, and a 35-second ramble in ~280ms. Any GPU from the 20-series up runs it — there’s an fp16 build for the older cards. Live partials appear as you talk. It finishes before you do.

03

It’s free. Genuinely.

It’s a Python server and a Swift menu-bar app. There is no pricing page, no seat, no Series A, no “Pro” tier dangling the good features.

. Talk. Done.

No “workspace”. No onboarding flow. The entire product is one hotkey and a pipeline that fits in a diagram:

mic
16 kHz PCM16, straight off AVAudioEngine
VAD
Silero splits your speech at the pauses
Parakeet
or Whisper — GPU re-decodes every ~350ms
your cursor
final text pasted into the focused field

VRAM is bounded by your longest single sentence, not the length of the session. It’ll happily run all day.

Two models. Pick one.

One runs at a time — two models resident would double the VRAM this whole thing exists to keep small. Every client sees the same protocol either way, so swapping is a restart, not a migration.

Parakeet

default

NVIDIA’s parakeet-tdt-0.6b-v3. The fast one, and the more accurate one on the languages it covers. Its decoder emits several frames per step, so long clips barely cost more than short ones.

languages
25, European
word error rate
2.99%
typical dictation
~75 ms
vram
1.4 GB · 0.5 GB in 4-bit

Whisper

--engine whisper

OpenAI’s whisper-large-v3-turbo, for the four-times-wider language list — detected per dictation, no setting to flip. It can also translate: talk in one language, get English typed.

languages
~100, auto-detected
word error rate
4.64%
typical dictation
~111 ms
vram
1.7 GB · 0.6 GB in 4-bit

// both take a 4-bit option when the card is the constraint — same word error rate on our corpus, roughly a third of the weights, and slower per word. Parakeet uses NVFP4, Whisper uses NF4; the formats differ because we measured both on each and they lose differently.

// numbers measured on an RTX 5090 over 208 clips / 25.8 min — LibriSpeech read speech, the same clips degraded with noise, and a handful of synthetic ones. Your mileage, your microphone.

Meet blurtd.

The server half is a daemon. We named it blurtd — which is, if you say it out loud, the past tense of what it does. There is a background process on your GPU whose entire identity is “blurted.” It’s fine. It’s happy.

gpu-box — bash
$ systemctl status blurtd
 blurtd — the Blurt daemon
   Loaded: loaded (/opt/blurt/blurtd.service; enabled)
   Active: blurting (running) since you double-tapped ⌥
     Docs: it’s the past tense of “blurted.” we regret nothing.
 Main PID: 1337 (parakeet-tdt-0.6b-v3)
   Listen: wss://0.0.0.0:25878/ws — port spells BLURT on a phone keypad
    Tasks: 1 (listening)
   Memory: 1.4G (0.5G if you ask for 4-bit)
   Egress: 0 bytes — your voice never leaves this box

// port 25878 is not random — 2-5-8-7-8 spells BLURT on a phone keypad (B→2, L→5, U→8, R→7, T→8). override with --port or PORT.

// no, there is no `blurtd stop`. double-tap ⌥ again to finish, or Esc to bail.

~75ms
to transcribe a typical dictation
0.5 GB
VRAM in 4-bit (1.4 GB in bf16)
0 bytes
leave your network
$0/mo
forever. it’s just code.
~100
languages on Whisper (25 on Parakeet — 🇬🇧 + 🇵🇹 either way)

We almost called it something classy.

TrillLoquiParleySottoUtterBlurt

Classy is for products with a sales team. This one is for you and a GPU you already paid for.

Talk faster
than you type.

clone → pip install → build the Mac app → ⌥⌥. that’s the whole funnel.