Voxtty
Private, local-first voice dictation for Linux and Windows. Press Alt+D, speak, and your words are typed into whatever app has focus — transcribed entirely on your own machine.
Site: voxtty.com
Features
- Local transcription — runs faster-whisper on-device; no audio ever leaves your machine
- Global hotkey (Alt+D) — press to start dictating, press again to stop, from anywhere
- Types into any focused app — terminal, browser, editor, chat, anything
- Voice activity detection — knows when you've stopped talking, no fixed timers
- Offline rule-based cleanup — punctuation/capitalization/spacing fixes, on by default, no network calls
- Custom word replacements — teach it names, jargon, and spellings (case-insensitive), applied locally
- System tray icon — runs quietly in the background via a systemd user service, starts on login
- Optional wake word ("hey Jarvis") — experimental alternative to the hotkey; may false-trigger in some environments, Alt+D is the reliable trigger
- Optional AI cleanup — opt-in only, sends the transcript text (never audio) to the Claude API to strip fillers and polish punctuation; off by default, requires your own Anthropic API key
Requirements
- Linux: Ubuntu (Wayland), Python 3.10+,
ydotoolfor typing,portaudiofor audio capture - Windows: Windows 10/11, Python 3.10+
- A microphone
Installation (Linux)
git clone https://github.com/PominausGH/voxtty.git
cd voxtty
./setup.sh
setup.sh installs system dependencies (ydotool, portaudio, etc.), adds you to the input group, creates a Python virtual environment, and installs Voxtty as a systemd user service that starts automatically on login.
Log out and back in after setup for the input group change to take effect. Then press Alt+D anywhere to start dictating.
With pipx
setup.sh is the recommended path because it installs the system packages for
you. If you would rather manage it yourself, three of Voxtty's dependencies
(evdev, PyAudio, webrtcvad) publish no wheels and are compiled at install
time, so you need a compiler and the relevant headers first:
# Debian / Ubuntu
sudo apt install gcc python3-dev portaudio19-dev ydotool
# Fedora
sudo dnf install gcc python3-devel portaudio-devel ydotool
pipx install voxtty
voxtty --install-service # register the systemd user service and start it
Without those system packages pipx install voxtty fails with compiler errors.
Arch Linux
A voxtty-git PKGBUILD lives in packaging/aur/. It is not
on the AUR yet — Arch has suspended new AUR account registration while dealing
with a wave of malicious package uploads — so build it directly for now:
git clone https://github.com/PominausGH/voxtty.git
cd voxtty/packaging/aur
makepkg -si
systemctl --user enable --now voxtty.service
Installation (Windows)
git clone https://github.com/PominausGH/voxtty.git
cd voxtty
.\setup.bat
setup.bat/setup.ps1 creates a Python virtual environment, installs dependencies, and registers a Task Scheduler task (runs at logon, under your own user, no elevation) that starts Voxtty automatically. Press Alt+D anywhere to start dictating.
A few Windows-specific things worth knowing:
- Alt+D is also a built-in "focus the address bar" shortcut in most browsers and File Explorer — both will fire together, same as the non-exclusive hook behavior on Linux.
- A global keyboard hook plus synthetic keystroke injection is a common antivirus/SmartScreen heuristic for keylogger-style tools. Voxtty isn't code-signed yet, so don't be surprised if your AV flags it on first run — it's a false positive from the technique, not the intent.
- Logs and the AI-cleanup API key file both live under
%LOCALAPPDATA%\voxtty(Windows has no XDG-style data/config split).
Usage (Linux)
systemctl --user status voxtty # check status
systemctl --user restart voxtty # restart
systemctl --user stop voxtty # stop
journalctl --user -u voxtty -f # live logs
Logs are also saved to ~/.local/share/voxtty/voxtty.log.
toggle_voxtty.sh can be bound to a custom keyboard shortcut (e.g. in GNOME Settings) as an alternative to Alt+D. This is Linux-only — Alt+D's global hook works uniformly across Windows desktop sessions, so there's no equivalent need on Windows.
Usage (Windows)
schtasks /Query /TN Voxtty # check status
schtasks /End /TN Voxtty # stop
schtasks /Run /TN Voxtty # start
Logs are saved to %LOCALAPPDATA%\voxtty\voxtty.log.
Configuration
Voxtty writes a config.json in the repo directory on first run (git-ignored — your local settings, not committed). Notable options:
whisper_model— Whisper model size (defaultsmall.en)microphone_name— substring to match your preferred input devicewake_word/wake_word_threshold— experimental voice-triggered start, off the hotkeyrule_cleanup_enabled— local, offline punctuation/formatting cleanup (defaulttrue)cleanup_enabled— opt-in AI cleanup pass via the Claude API (defaultfalse)word_replacements— a{"heard": "typed"}map for custom dictionary entries
To enable AI cleanup, set cleanup_enabled: true in config.json and put your Anthropic API key in the env file created by setup (~/.config/voxtty/env on Linux, %LOCALAPPDATA%\voxtty\env on Windows), then restart.
Pricing
This repo is the free, open-source core — full local dictation, no license gate. See voxtty.com/#pricing for the current Pro roadmap.
License
MIT — see LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file voxtty-0.1.0.tar.gz.
File metadata
- Download URL: voxtty-0.1.0.tar.gz
- Upload date:
- Size: 21.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
db1d6c55329a3fb3dd21c3f13febccf4af8db34817b53e439d76b5828e647cdf
|
|
| MD5 |
3f64980113bebb65054d3418820d48e8
|
|
| BLAKE2b-256 |
1623b939c7264823f84c90f8f07193c99bd36e42edf4afc6624e323f26c07d91
|
File details
Details for the file voxtty-0.1.0-py3-none-any.whl.
File metadata
- Download URL: voxtty-0.1.0-py3-none-any.whl
- Upload date:
- Size: 21.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
194e2c0a2040cfc1fe91d41bfd3c570e208dc1d661b4d3abe8e0953aadb35e71
|
|
| MD5 |
c630f8f8325aeb41a500da96e17fe6a6
|
|
| BLAKE2b-256 |
ff6762ea2a6ac457c4da607af87c7170fe48676c98acf18677b2014e266b9bc4
|