Dikte
Open-source voice typing for Windows and macOS: hold a key, speak, let go, and the words are pasted wherever you are typing. It runs on your own OpenAI API key, about $0.27 for an hour of talking.
- Period
- – Present
- Stack
- C#, .NET 10, Swift, WebView2, OpenAI API, GitHub Actions
- Licence
- MIT, open source
Overview
Dikte is for people who talk to their tools: Claude Code in a terminal, a chat box, an email, a commit message. It sits in the notification area (the menu bar on a Mac), listens only while you hold the shortcut, sends the recording to a speech-to-text model and pastes the result into the window in front of you.
I built it as a replacement for subscription dictation apps, for when you would
rather pay for what you use. With OpenAI's gpt-transcribe an hour of talking
costs about $0.27, and any OpenAI-compatible server can stand in.
What it does
- Hold, speak, let go. Any key, combination or side mouse button can be the
shortcut, picked by pressing it. A tap shortcut or
Spacewhile holding goes hands-free. - Mixed languages. Pick the languages you speak and each word is written in the one it was spoken in: "refactor" stays English inside a Turkish sentence.
- Voice tools (Windows). Translate while you talk, select text and say "shorter" or "more formal" to rewrite it, or say "new line", "send" or "delete that".
- Quiet while you talk. Music and videos are turned down while it listens and come back when you let go.
- Private by design. Audio stays in memory and goes only to the server you set; the API key is encrypted with DPAPI on Windows and kept in the keychain on a Mac; pasted text stays out of clipboard history.
How it is built
Each system gets a native app rather than a cross-platform wrapper, because the hard parts, catching a shortcut anywhere and pasting into any window, are different on each:
- Windows (C#, .NET 10): a low-level keyboard and mouse hook,
waveInrecording at 16 kHz mono, per-app volume through WASAPI,SendInputfor pasting, and an overlay that never takes focus. It ships as one self-contained exe. - macOS (Swift): a CGEvent tap on its own thread, AVAudioEngine, a paste shortcut found through the keyboard layout so Turkish and Dvorak layouts work, and a login item. A universal app for Apple silicon and Intel.
- One window for both: a single HTML page, shown in WebView2 on Windows and WKWebView on a Mac, talking to the app in JSON messages.
The logic that decides what a key press means lives in a core with no platform code, once in C# and once in Swift, and both are unit-tested on Linux in CI. An iPhone keyboard built on the same Swift core is in private testing.
Releases and updates
Bumping the version on main is the release: GitHub Actions builds the Windows
exe and the macOS app and publishes them together. The Windows app checks for a
new release every few hours, downloads it beside itself, keeps it only if its
SHA-256 matches the release's, and swaps it in once you have been idle for a
minute.
Source and downloads at github.com/akancodes/dikte. MIT licence.