macOS 14+ · Apple Silicon · Signed & notarized

Hold a key. Speak. Get finished text.

Koe is a native macOS voice input tool that never opens a window. Trigger it with a hotkey, let cloud or on-device recognition transcribe you, let a model clean the result against your prompts and dictionary, and watch the text land in whatever app you were already using.

$brew install koe --cask

Installs Koe.app and the bundled koe CLI. Launch it once to create ~/.koe/ and start the permission flow.

Listeningfn

The floating status pill is the entire interface. No main window, no Dock icon.

Pipeline

Four steps between the key and the cursor.

01

Trigger

Fn by default, or any modifier, raw keycode, or shortcut you record in Settings.

02

Recognize

Stream to DoubaoIME, Doubao, Qwen, GLM, MiMo, Apple Speech, MLX, or sherpa-onnx.

03

Correct

OpenAI Chat, OpenAI Responses, Anthropic Messages, a compatible gateway, or a local MLX model applies your prompts and dictionary.

04

Paste

The cleaned text goes to the clipboard and is pasted into the focused app — optionally followed by Return.

Design

Built to stay out of the way.

Background-first

No main window and no Dock icon. Koe lives in the menu bar and opens a native settings window only when you ask for one.

Plain-text control

Config, prompts, and dictionary all live in ~/.koe/, so every advanced option stays readable, scriptable, and diffable.

Zero Electron

Objective-C for the native macOS surface, Rust for the core pipeline. No browser runtime shipped for a background utility.

Small footprint

About 19 MB on disk and roughly 13 MB idle. The separate Koe MLX build adds on-device models when you want them.

Triggers

Three ways to start talking.

hold

Hold to talk

Press and hold the trigger key for short, deliberate dictation. Release and the text arrives.

tap

Tap to toggle

Tap once to start hands-free capture, tap again to stop. Best for longer passages.

tap tap

Double tap

Double-tap to begin and single-tap to stop, with guards so ordinary Command shortcuts are never mistaken for a gesture.

Providers

Cloud when it is faster. Local when it matters.

Recognition and correction are configured independently, so you can put transcription in the cloud and keep rewriting on-device, or the other way around.

Speech recognition

DoubaoIMEDoubaoQwenGLMMiMoApple SpeechMLXsherpa-onnx

Text correction

OpenAI ChatOpenAI ResponsesAnthropic MessagesCompatible gatewaysLocal MLX

Details

Why it feels different.

  • A native settings window covers everyday setup while plain files keep every advanced option inspectable.
  • Dictionary entries are plain text, so terminology can be generated, reviewed, and edited in bulk.
  • Most config changes apply on the next hotkey press instead of waiting for an app restart.
  • Releases are signed, notarized, and updated in place through a signature-verified Sparkle appcast.

Name

こえ — the Japanese word for voice.

Written こえ in hiragana and 声 in kanji. It does not mean voice in a cold, technical sense. It carries something immediate and human: a thought leaving the body, crossing a very short distance, and becoming language someone else can receive.

That is the product ideal. Koe should feel light, direct, and nearly invisible — a quiet bridge between speaking and writing, not another app asking for attention.

Specs

Platform
Apple Silicon only
System
macOS 14 or newer
App size
~19 MB
Idle memory
~13 MB
Shell
Objective-C
Core
Rust
Config
~/.koe/
License
Open source

Install it in one line.

Grant microphone, input monitoring, and accessibility once, pick your providers, and the next thing you say is already text.