SpeakoFlow: The Open-Source Voice Assistant That Stays Local
Open Source 8 min read intermediate

SpeakoFlow: The Open-Source Voice Assistant That Stays Local

SpeakoFlow is a free, MIT-licensed local-first voice assistant for Windows, macOS and Linux, built by solo developer Abhishek Barali as a fork of CJ Pais's Handy. It combines hotkey dictation, a 'Hey Flow' generative writing mode, an assistant panel with screen vision, live translation and AI cleanup. Speech-to-text always runs on-device via whisper.cpp and Parakeet; the assistant can run fully offline through a built-in llama.cpp engine, through Ollama or LM Studio, or through any OpenAI-compatible cloud provider with your own key. There is no account and no telemetry. The trade-offs are real: the binaries are not code-signed on Windows or macOS, requiring a manual quarantine-clearing step on Mac, and the project is at v1.0.1 with 126 commits, six GitHub stars and one maintainer.

Marcus Rivera
Marcus Rivera
Aug 7, 2026

Desktop dictation quietly became a subscription category. The tools people actually recommend — Wispr Flow, Aqua Voice, Typeless — are all closed source, all metered, and all route some part of your voice or your text through someone else's servers.

SpeakoFlow is the counter-argument: an MIT-licensed desktop voice assistant where speech-to-text always runs on your machine, there is no account, and there is no telemetry. It landed at #13 on Product Hunt's August 4, 2026 daily leaderboard with 104 points.

It is also a solo project with six GitHub stars and two tagged releases. Both of those things are true at once, and you should know both before you install it.

What it actually does

SpeakoFlow is not just a hotkey that types what you say. There are three distinct modes stacked on top of each other.

Dictation. Hold a hotkey, talk, and words land in whatever app has focus — email, editor, chat, terminal. You can stream them live as you speak or paste them all at once when you stop. Transcription runs on your GPU or CPU.

Generate with Flow. Start a dictation with the phrase "Hey Flow" and it stops transcribing and starts writing. Ask for a reply, an email, a draft, and it pastes the finished result where your cursor is. The trigger phrase is renameable, and per the project's FAQ it is explicitly not an always-listening wake word — nothing fires until you start a dictation yourself.

The assistant panel. A separate floating chat you summon with a second hotkey. Ask by voice or text, get a streaming answer, optionally have it read back aloud. It has screen vision — you can ask about the error or chart in front of you, and you control whether it looks every time, only when a question needs it, or never.

Around those sit the smaller features: live translation into English from spoken Spanish, Hindi, French, or Japanese; AI cleanup that strips filler and matches a tone (Professional, Friendly, Concise, or your own); switchable assistant profiles with per-profile voices; and an optional on-device personal memory that is off until you turn it on.

Default hotkeys

Action Windows macOS Linux
Dictate Left Ctrl + Left Super Option + Space Ctrl + Space
Ask the assistant Left Ctrl + Left Alt Option + Ctrl + Space Ctrl + Alt + Space

Hold to talk, or tap Space while holding to keep recording hands-free. Everything is rebindable in Settings.

The stack is more serious than the star count

This is where SpeakoFlow gets interesting. The architecture is not a wrapper around a cloud API with a nice icon.

  • App shell: Tauri 2, Rust backend, React and TypeScript frontend. The repository is 55.6% Rust and 35.8% TypeScript.
  • Speech-to-text: whisper.cpp and Parakeet with GPU acceleration, plus Silero VAD for voice-activity detection.
  • Assistant: a built-in llama.cpp engine, or any OpenAI-compatible provider you point it at.
  • Text-to-speech: Kokoro running locally, with OpenAI-compatible, ElevenLabs, and Azure available as alternatives.

The project began as a fork of Handy by CJ Pais, also MIT licensed, which supplies the local dictation core. Maintainer Abhishek Barali built the assistant, screen vision, translation, and memory on top — and credits Handy prominently in both the README and the site FAQ. That is the right way to fork something.

Where your data goes

The privacy story is unusually clean, and it is clean because of a design decision rather than a policy page.

Your voice is transcribed on your device and never uploaded. There is no telemetry and no account.

The assistant is the only piece that can reach the network, and you choose what it reaches:

Provider mode What leaves your machine
Built-in (offline) Nothing — a small local model, no API key
Local server Nothing — points at your own Ollama or LM Studio
Cloud Your prompts, to the provider whose key you supplied

Optional web search and personal memory are both off by default. Memory is stored on-device and is editable and erasable.

Installing it: the honest version

Grab a build from the Releases page. Windows gets an .exe installer and an .msi (x86_64), macOS gets a .dmg for Apple Silicon, Linux gets an AppImage and a .deb, each for x86_64 and ARM64. A setup wizard walks you through picking a transcription model.

The binaries are not code-signed. The v1.0.1 release notes say so outright, and Windows will show an "unknown publisher" warning. macOS is worse — it reports the app as damaged, which is Apple's message for anything it can't trace to a paid Developer account. The documented one-time fix, per the project's own FAQ:

xattr -dr com.apple.quarantine /Applications/SpeakoFlow.app

You repeat that once per version installed, not per launch. Code signing for Windows and macOS is the first item on the published roadmap. Until it ships, this is a real barrier for anyone who isn't comfortable clearing quarantine flags by hand.

Building from source needs Rust and Bun:

git clone https://github.com/AbhishekBarali/SpeakoFlow.git
cd SpeakoFlow
bun install
mkdir -p src-tauri/resources/models
curl -o src-tauri/resources/models/silero_vad_v4.onnx https://blob.handy.computer/silero_vad_v4.onnx
bun run tauri dev

Linux users, read this part

The recording overlay has to float above every window, which on Linux is only possible via the wlr-layer-shell protocol or classic X11 "keep above" stacking. Native GNOME/Wayland supports neither — Mutter doesn't implement layer-shell, and Wayland gives no app a way to raise itself. SpeakoFlow detects GNOME-on-Wayland and transparently runs under XWayland instead, which needs no setup from you.

Two more known issues, both documented rather than hidden: the handy-keys keyboard engine reads /dev/input/event* and needs sudo usermod -aG input $USER (Tauri is the default engine on Linux and needs no such permission), and pinch-to-zoom on a touchpad can crash the window — a WebKitGTK bug tracked upstream at tauri#13115, not a SpeakoFlow bug.

The comparison table, with a caveat

SpeakoFlow's own site lines itself up against the paid incumbents, with individual pricing checked July 2026:

Tool Model Price
SpeakoFlow Open source, local STT $0
Wispr Flow Closed, cloud dictation $15/month
Aqua Voice Closed, cloud dictation $8/month billed yearly
Typeless Closed, on-device dictation $30/month

Treat this as the vendor's framing. It is a fair snapshot of list prices, but it doesn't capture polish, support, or the fact that Typeless also runs on-device. The site's other headline number — 150+ WPM speaking versus 45 WPM typing, so 3× faster — is marketing arithmetic, not a measured result for this app.

What's genuinely missing

The Product Hunt thread is more useful than the landing page here, because the maintainer answered critically rather than defensively. Reported friction included back-to-back dictations needing an extra tap on macOS, transcriptions vanishing if no text field is focused (there is a "copy to clipboard" setting under Settings → Dictation that covers this), and the assistant being battery-hungry on laptops — for which the suggested workaround is running a small local model or an API key on battery and a heavier local model on a desktop.

The version story is also muddled: the Releases page still lists v1.0.1 (21 July 2026) as latest, while the download buttons on speakoflow.com point at v1.1.0 binaries. Minor, but the kind of thing that makes you check twice.

And the raw project health is what it is. At the time of writing: 126 commits, 6 stars, 1 fork, 1 open issue, two tagged releases, one maintainer. A Product Hunt day-rank of #13 is momentum, not a community.

The Bottom Line

SpeakoFlow is the most complete open-source answer to paid dictation apps I've seen this year, and the architecture — Tauri 2, whisper.cpp, llama.cpp, Kokoro, all optional-cloud — is the right one. On-device transcription with no account and no telemetry is not a feature the subscription tools can match, because their business model won't let them.

But it is version 1.0.1 from a solo maintainer, the binaries are unsigned on both Windows and macOS, and six stars means nobody has meaningfully audited this yet. If you're comfortable clearing a quarantine flag and reading Rust when something breaks, install it today — it's MIT, you can fork it, and the local-only path costs nothing. If you need something that just works when your manager hands you a laptop, wait for code signing.

More in Open Source

Meetily: The Open-Source AI Notetaker That Runs 100% Local
Open Source

Meetily: The Open-Source AI Notetaker That Runs 100% Local

Meetily is a privacy-first, open-source AI meeting assistant with 27.4K GitHub stars and an MIT license. Built on Rust and Tauri, it runs Whisper or Parakeet transcription and Ollama summarization entirely on your own device, so meeting audio never touches the cloud. It supports macOS and Windows, with flexible summary providers and a commercial PRO tier.

By Marcus Rivera · 5 min · Jul 30, 2026

Bumblebee: Perplexity's Read-Only Dev Endpoint Scanner
Open Source

Bumblebee: Perplexity's Read-Only Dev Endpoint Scanner

Bumblebee is Perplexity's open-source, read-only supply-chain scanner for macOS and Linux developer endpoints, written in Go with zero non-stdlib dependencies under Apache 2.0. It inventories npm, PyPI, Go, RubyGems, Composer and other package managers plus MCP configs, editor extensions, and browser extensions, emitting NDJSON findings against operator-supplied exposure catalogs. Its read-only design never invokes package managers, so it cannot trigger malicious postinstall scripts during a scan.

By Marcus Rivera · 6 min · Jul 28, 2026

Grok Build: xAI Open-Sources Its Rust Terminal Coding Agent
Open Source

Grok Build: xAI Open-Sources Its Rust Terminal Coding Agent

On July 15, 2026, xAI open-sourced Grok Build, the Rust terminal coding agent behind its grok CLI, under Apache 2.0. The release covers the agent loop, tools, TUI, and extension system, and supports a fully local-first config.toml path pointing at self-hosted inference. External PRs aren't accepted and the model stays closed, so it's a source-transparency release, not a community project.

By Marcus Rivera · 6 min · Jul 27, 2026