Parleq

About

Why Parleq exists.

I'm a software engineer at Posit, where I work on Posit Package Manager — an enterprise product for managing R and Python packages inside large organizations. I've been writing code professionally for a long time, mostly in Go, and the intersection of speech and AI tooling is where I find myself spending more and more of my curiosity these days.

Parleq started, like a lot of these projects, as a workaround.

I'd been a happy user of an AI dictation app on macOS — the kind that listens, cleans up your speech with an LLM, and pastes the result wherever your cursor is. It worked well. Then I tried to use it at work, and ran into a wall: the app routes audio and transcripts through its own SaaS backend, and my employer's policies — like a lot of companies' — require that the infrastructure and models I send work through are on a pre-approved list. A new vendor that hadn't been through that review wasn't something I could keep using day-to-day, no matter how nice the product was.

So I started thinking about what an open-source, local-first version would look like — and what it would take to make it actually pleasant to use, not just defensible on a compliance review.

Two things I really wanted.

Low latency. Dictation falls apart the moment you have to wait for it. If there's a noticeable pause between releasing the hotkey and seeing your text, you stop trusting the tool, and the rhythm of writing-by-speaking breaks. Parleq runs the speech model entirely on the Apple Neural Engine, locally, with no network round-trip. The cleanup pass is the only step that touches a remote service, and even that is optional — you can skip it and just paste the raw transcript if you want.

Post-processing that listens to me. Raw speech-to-text output is rarely what you want pasted into Slack. You want punctuation, capitalization, the right spelling of names you keep saying, the "ums" and "uhs" cleaned up, half-sentences finished. An AI cleanup pass is great at this — but the moment it misreads your intent, you need a way to tell it what to do, not click a fix-it button. So Parleq lets you re-trigger the hotkey while the cleaned text is still on screen and just say what to change. "Make it more professional." "Shorter." "Add a question mark and end with thanks." The overlay shows you the result before it pastes, so you can keep refining until it lands.

That overlay-and-iterate loop is the part of Parleq I'm proudest of. It treats the cleaned text as a draft you talk to, not a final output you accept or reject.

Open-source, bring your own LLM.

Parleq doesn't have a backend. There's no Parleq cloud, no Parleq account, no Parleq subscription, no Parleq SaaS to audit. Speech recognition is on-device. Cleanup runs against an LLM provider you configure — Gemini, Vertex AI, AWS Bedrock, or Azure OpenAI — using your own credentials, your organization's existing cloud accounts, and (where it matters) the same identity and access controls you've already vetted for everything else.

I built it that way partly because it sidesteps a lot of complexity I didn't want to take on, and partly because it's the most honest answer for compliance-sensitive work I could come up with. If your security team has already approved your laptop hitting Bedrock or Vertex directly, then Parleq fits inside that approval — no separate vendor review, no separate data-flow diagram, no new place where transcripts pile up.

The whole thing is on GitHub under Apache-2.0. Audio never leaves your Mac. Logs carry length-only diagnostics, never transcript content. API keys live in the macOS Keychain.

Thanks.

A particular thanks to Jake Struzik, whose Speek showed me what a clean, local-first dictation tool on macOS could feel like. Parleq's design owes a debt to it.

— Jon