Ubunatic Coding

Linux voice input

voxi types what you say, as you say it.

High-quality speech-to-text dictation for Linux and Wayland, with continuous eager sentence streaming, physical modifier-key safety and direct typing into the active window. Audio stays on your machine; after a one-time model download, transcription runs locally on the CPU.

Voice input in action

Start dictation with a desktop shortcut. Voxi listens for speech, transcribes locally, and types each sentence into the active window.

Dictation that stays out of your way

Continuous eager streaming

A circular pre-roll buffer preserves the first sounds. Voxi segments speech on natural pauses and transcribes phrases in short bursts.

Hotkey-safe typing

Kernel-level monitoring detects held Ctrl, Alt, Super and Shift keys. Typed output is buffered while a modifier is down, preventing collisions with desktop shortcuts.

Local speech recognition

The default Cohere Transcribe model runs on your CPU through crispasr. Audio remains local; the model downloads once and then works offline.

Direct Wayland input

Voxi uses dotool for synthetic keystrokes, with clipboard fallback for layouts and applications that need it.

Live resource monitor

Inspect audio levels, transcription latency, hardware load and daemon health in a btop-style terminal dashboard.

Transcript corrections

Keep local replacement rules, stop words and silence artifacts to correct recognition without sending personal vocabulary anywhere.

Inspect every part of a dictation session

Start dictation from a keyboard shortcut

Bind voxi record toggle to any desktop shortcut. On GNOME, voxi shortcut setup configures the standard Super+X binding.

Install and start dictating

Install the latest Linux release and configure the user services with the project installer.

curl -fsSL https://ubunatic.com/voxi/install.sh | bash

Check the background agent, then toggle recording or open the live monitor.

systemctl --user is-active voxi-agent.service
voxi record toggle
voxi monitor --watch

Linux and Wayland components

Speech recognition
crispasr with Cohere Transcribe by default; optional local Whisper models
Audio capture
PipeWire (parec) or ALSA (arecord)
Keyboard input
dotool and dotoold, with wl-clipboard as fallback
Modifier gating
Optional voxi-modifierd system service for physical key state

Local dictation and the sample store

The purpose-based sample store separates dictation, noise and consent-gated voice material. Read the engineering story for the design and microphone recovery work.

At a glance

Stack
Go 1.26.5, Cobra, YAML specs, Linux/Wayland, evdev, PipeWire/ALSA, systemd, dotool, crispasr/Cohere Transcribe, optional Whisper, JavaScript/CSS GNOME Shell extension
Milestones
Purpose-based sample store (#170) · Sample management commands (#172) · Microphone diagnosis and recovery (#177, 31c4a4c)
Commits
572