Skip to main content
otter-transcribe turns microphone audio into text on your machine. It runs as a daemon, records through PipeWire, and transcribes with a local Parakeet GGUF. No network involved.
otter-transcribe ships in otter-shell-extras, not the base otter-shell metapackage. Extras also pulls otter-transcribe-model, the GGUF under /usr/share/otter-shell/models/transcribe. Install with pikman install otter-shell-extras.

Starting the daemon

To use a different GGUF instead of the packaged model, pass --model:
The daemon hot-reloads config changes via inotify. You do not need to restart it after editing otter-transcribe.conf. Theme colors and transcription settings apply immediately. After a model unload, the daemon restarts itself once recording is idle.

Controlling with hotkeys

Send commands to the running daemon with otter-transcribectl:
Bind otter-transcribectl toggle in your compositor config. Wayland clients cannot grab global hotkeys, so compositor-level binding is what you need for capture from any focused window.

Output modes

Where transcribed text goes after each utterance:
Use clipboard or stdout if virtual keyboard injection is blocked by your compositor or application. Chromium and Electron apps use physical evdev keycodes, which focused mode handles.

Recording indicator

While you record, a bottom-center layer-shell indicator shows live PCM level bars so you can see the microphone is open. Set show_indicator = false in the config file to hide it.

Configuration

Edit transcription settings in otter-settings under the Transcribe tab, or in ~/.config/otter-shell/otter-transcribe.conf:
  • stream: true emits each finalized utterance chunk in real time. false returns one final value for the entire recording
  • target: PipeWire audio source. @DEFAULT_SOURCE@ uses the system default microphone
  • max_seconds: maximum recording length in seconds. When reached, the daemon finalizes and stays alive for future commands
  • show_indicator: controls the bottom-center PCM level indicator
The indicator’s colors (background_color, border_color, graph_color, graph_peak_color, text_color) inherit from otter-theme when left unset in the config file.