Skip to content
akan.dev
Bayram AkanProjects

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 Space while 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, waveIn recording at 16 kHz mono, per-app volume through WASAPI, SendInput for 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.