A maker at a desk on a balcony, coding above a calm river valley
Free & open sourceYour own Groq keyNo Bulbul servers

Talk. Bulbul types.

A free, open-source dictation app for Windows, Mac, Linux, and Android. Hold a hotkey — or tap the bubble on your phone — speak, release, and cleaned-up text lands where your cursor already is.

Star on GitHub
PS>irm https://bulbultypes.xyz/install.ps1 | iex
Download for other operating systems

Free on Windows · macOS · Linux · Android

What it does

Three things, done quietly well.

No commands to memorize, no dashboard to babysit. Hold, talk, and clean text appears where your cursor already is.

Hold-to-talk, anywhere

Press and hold your hotkey in any window. Bulbul captures while you speak and stops the moment you let go.

Ctrl+Win

Cleanup happens automatically

Filler words, false starts, and stray “ums” are removed. What lands is the sentence you meant to say.

um, so, like let’s ship it.

Learns your corrections

Fix a word once and Bulbul remembers. Names, jargon, and product spellings get more accurate over time.

definatelydefinitely
Messy spoken filler words drifting across a desk and resolving into a clean checklist
your words, tidied on the way out.
Cleanup

From the way you talk to the way you write.

Speech is messy — restarts, hedges, “ums.” Bulbul rewrites it into the sentence you intended, then pastes that.

As spoken

So, um, I basically wanted to, you know, follow up about the, uh, the proposal and honestly I think we should just ship it.

As pasted

I wanted to follow up about the proposal — I think we should ship it.

How it works

Hold, speak, release.

The whole interaction is three moves. Everything technical happens in the half-second between letting go and seeing your words.

  1. 01

    Hold the hotkey

    Press and hold from inside any app — no window switching.

    Ctrl+Win
  2. 02

    Speak naturally

    Talk the way you think. Bulbul listens until you release.

  3. 03

    Release — it’s pasted

    Cleaned text drops straight into the field you were in.

    Pasted
A live waveform and rough speech becoming a clean sentence on screen
press · speak · release
Under the hood
  1. 01Captured locally

    Audio is captured on your device via cpal, then streamed to Groq for transcription.

  2. 02Transcribed

    Groq Whisper, using your API key.

  3. 03Cleaned up

    An 8B-class model polishes the text.

  4. 04Pasted in place

    Inserted where your cursor already is.

Works in any app

Same hold-to-talk. Any window.

Bulbul types into whatever already has focus — your mail client, your editor, your chat box. Pick a destination and watch.

Email, chat, notes, and a code editor open around one laptop
one shortcut, every window.
New message
Tosupport@bulbultypes.xyz
SubjectRe: the Q3 proposal
Ctrl+Win
Listening
Speed

Fast enough to feel like nothing.

Bulbul targets sub-second end-to-end — from the moment you stop speaking to text appearing in the app you’re focused on.

A laptop showing a live waveform, with a transcribe → cleanup → insert timing diagram beside it
release → text, in about 400ms.
Typical timings
Raw
250–400ms
Transcription only — no cleanup
Clean· default
400–600ms
Transcription + fillers & punctuation fix
Polished
500–700ms
Transcription + rewrite for clarity

Most dictation lands between 300 and 500ms — fast enough that you don’t notice the round-trip through the cloud.

Where the milliseconds go
feels-instant · 500ms
0≈ 380ms total · Clean700ms
  1. 01~200ms
    Whisper Large v3 Turbo

    Transcribes the audio

  2. 02~150ms
    Llama 3.1 8B

    Cleans it up — skipped in Raw mode

  3. 03~30ms
    Win32 input injection

    Drops text into your focused app

The “feels instant” threshold for keyboard-equivalent input is roughly 500ms. Bulbul stays under it in normal use.

Key features

More than a microphone button.

Everything is built around one loop — speak, clean, paste — then sharpened with the tools that make daily dictation actually stick.

A desk of dictated notes with hand-marked corrections and checkmarks
every fix, remembered.
Correction memory

Teach it once. It remembers.

Fix a name or a piece of jargon a single time and Bulbul keeps it. Your personal dictionary builds itself from the corrections you actually make.

namesjargonspellingsacronyms
Cards labelled expand, reformat, refine and reuse around a laptop
four ways to reshape.
Transforms

Reshape text, not just dictate it.

Captured something rough? Expand a bullet into a paragraph, reformat a list, or refine a draft — without leaving the app you’re in.

expandreformatrefinereuse

Hold-to-talk dictation

Press and hold to capture, release to insert.

Ctrl+Win

Speak raw, paste polished

Hold the hotkey and just talk — Bulbul pastes the cleaned-up, polished version, never the raw transcript.

Shift+Alt+P

Per-app context

Tone adapts — terse in chat, fuller in mail and docs.

mail · chat · code

Snippets

Reusable blocks — signatures, boilerplate — dropped in by voice.

/snippet

Scratchpad

A local holding space for dictations before they land.

local · private

Insights

Words dictated, time saved, and your most-made corrections.

on-device stats
Privacy & trust

A trust ledger, not a privacy promise.

The honest version of “your data is safe”: here is exactly where everything goes, line by line.

Bring your own Groq key

BYOK

You supply the API key. Bulbul never ships or proxies one for you.

No Bulbul servers

direct

Audio goes from your machine straight to Groq. There is nothing in the middle to trust.

Local storage

SQLite

History, snippets, and settings live in a SQLite file on your PC — not a cloud account. Audio itself goes to Groq via your own API key for transcription; nothing else leaves your machine.

Signed releases

minisign

Every build is signed with minisign so you can verify exactly what you’re running.

Anonymous usage stats are on

on by default

Bulbul is solo-built — counts and error categories help me know what to fix. Never your transcripts, audio, dictionary, or which app you’re typing into. Turn it off anytime in Settings → Privacy.

Source available

open

The code is on GitHub. Read the data path and audit it for yourself.

Comparison

It types what you actually said.

Windows already includes voice typing — but it transcribes literally, so misheard words, shaky punctuation, and filler land in your text as-is. Here’s the line-by-line picture; Bulbul’s column is what ships today, the others reflect well-known traits.

Accurate transcription
Bulbul
Windows Voice Typing
Other providers
Punctuation & casing
Bulbul
Windows Voice Typing
Other providers
Automatic cleanup
Bulbul
Windows Voice Typing
Other providers
Fixes filler & false starts
Bulbul
Windows Voice Typing
Other providers
Learns your corrections
Bulbul
Windows Voice Typing
Other providers
Free to use
Bulbul
Windows Voice Typing
Other providers
No weekly word cap
Bulbul
Windows Voice Typing
Other providers
~2k/wk
No subscription
Bulbul
Windows Voice Typing
Other providers
Open source
Bulbul
Windows Voice Typing
Other providers
Works in any app
Bulbul
Windows Voice Typing
Other providers
Bring your own key
Bulbul
Windows Voice Typing
Other providers
No account required
Bulbul
Windows Voice Typing
Other providers
Local storage
Bulbul
Windows Voice Typing
Other providers
Signed releases
Bulbul
Windows Voice Typing
Other providers
Platform
Bulbul
Win · Mac · Linux · Android
Windows Voice Typing
Windows
Other providers
mostly Mac

varies by tool · Comparison is informational, not a benchmark.

How it’s built

Honest engineering, all the way down.

If you’re going to inspect it, here’s the stack. Native where it matters, open where it counts.

A workspace of open-source notes, architecture sketches, and a code editor
build with care, share freely.
Tauri 2

A native webview shell — not Electron. Small binary, low memory.

Rust core

Audio capture, global hotkeys, and the local store run in Rust.

React 18 + Vite

The interface is React 18, bundled and served by Vite.

Win32 APIs

Global hotkeys and paste-at-cursor go through native Win32.

cpal

Microphone capture via the cross-platform cpal audio crate.

Groq Whisper + 8B

Transcription on Whisper, cleanup on an 8B-class model.

SQLite

Every local record lives in a single SQLite database file.

minisign + updater

Signed builds with a signature-verifying auto-updater.

Install

Up and running in a minute.

Download the signed installer for your OS, or paste one line into your terminal. Windows · macOS · Linux · Android.

GitHub Releases
PS>irm https://bulbultypes.xyz/install.ps1 | iex
Download for other operating systems

On first run, Bulbul asks for your name and your Groq API key. That’s the whole setup — no account, no sign-in.

Bulbul's onboarding — a “you’re all set” screen beside a terminal reading all good
you’re all set.
FAQ

Questions, answered plainly.

No. There’s no sign-up and no login. On first run it asks for your name and your Groq API key, and that’s it.