UltraWhisper
Open-source, context-aware voice transcription for Linux
An open-source alternative to SuperWhisper (Mac-only), combining OpenAI's Whisper speech-to-text with LLM-powered intelligence for smart, accurate transcriptions that adapt to your workflow.
What Makes UltraWhisper Different?
UltraWhisper goes beyond basic speech-to-text by understanding what you're working on and adapting its transcription accordingly. Whether you're coding in VS Code, browsing GitHub, or working in a terminal, it delivers transcriptions that fit seamlessly into your context.
Quick Start
Try It (No Installation Required)
# Run directly with uvx - no installation needed!
# Setup your config
uvx ultrawhisper setup
# Run it
uvx ultrawhisper
Key Features
Context-Aware Transcription
- Automatically detects your active application (VS Code, Chrome, terminal, etc.)
- Adapts transcription to preserve code syntax, technical terms, and domain-specific language
LLM-Powered Correction
- Cleans up Whisper transcription using GPT-4, Claude, or local models
- Applies application-specific prompts for better accuracy
- Gracefully degrades to raw Whisper output if LLM is unavailable
Multi-Provider LLM Support
- OpenAI, Anthropic, Local Models (OpenAI-compatible)
Flexible Input Methods
- Double-tap: Quickly tap a key twice to toggle recording
- Push-to-talk: Hold to record, release to transcribe
Beautiful Terminal Interface
- Interactive TUI built with prompt-toolkit
- Real-time status display showing LLM connection, context, and system state
- Live logs and configuration visibility
Chat Mode (Conversational AI)
- Voice conversations with your AI assistant
- Maintains conversation history across questions
- Context-aware responses based on your active application
- TTS support for spoken responses
- MCP (Model Context Protocol) integration for extended capabilities
- Web search enabled by default
Privacy-First
- Use local LLMs for complete offline operation
- No data leaves your machine when using local models
Installation
For regular use, install from PyPI:
# Install with uv
uv pip install ultrawhisper
# Or with pip
pip install ultrawhisper
# Run interactive setup
ultrawhisper setup
# Run it
ultrawhisper
Configuration
Configuration is stored at ~/.config/ultrawhisper/config.yml. See config.example.yml for a complete example with all options.
Features in Detail
Context-Aware Prompts
UltraWhisper dynamically builds LLM prompts by combining:
- Base prompt from your configuration
- Application-specific prompts (VS Code, Chrome, terminals, etc.)
- Pattern matching against window titles (GitHub, Stack Overflow, etc.)
This ensures your transcriptions are corrected appropriately for your current context.
Mode Switching
Switch between Transcription Mode and Question Mode (soon to be called Chat Mode):
System Requirements
- Python: 3.10 or higher
- Operating System: Linux (X11) for full context detection
- Optional Dependencies:
xdotool- For advanced context detectionx11-utils- For window property detectionespeakorfestival- For system TTS (question mode)
Installing System Dependencies
# Ubuntu/Debian
sudo apt install xdotool x11-utils espeak
# Arch Linux
sudo pacman -S xdotool xorg-xprop espeak
# Fedora
sudo dnf install xdotool xorg-x11-utils espeak
Development
Want to contribute or modify UltraWhisper? Here's how to set up a development environment:
# Clone the repository
git clone https://github.com/casonclagg/ultrawhisper.git
cd ultrawhisper
# Install dependencies
uv sync
# Run from source
uv run ultrawhisper
# Code formatting
uv run black src/
# Type checking
uv run mypy src/
# Linting
uv run flake8 src/
# Build package
uv build
Architecture
UltraWhisper uses an orchestrator pattern where TranscriptionApp coordinates:
- Audio recording via configurable backends
- Whisper transcription (local or API)
- Context detection from active window
- LLM correction with context-aware prompts
- Text output to clipboard or active window
License
MIT License - See LICENSE for details
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Author
Cason Clagg - GitHub
Acknowledgments
- Built with OpenAI Whisper
- Uses faster-whisper for optimized inference
- Powered by OpenAI and Anthropic LLMs
- Terminal UI built with prompt-toolkit
Metadata
Release files for ultrawhisper 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ultrawhisper-1.0.1.tar.gz | 240.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ultrawhisper-1.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 323.5 kB
Release files / ultrawhisper-1.0.1.tar.gz
| Download URL | ultrawhisper-1.0.1.tar.gz |
|---|---|
| Size | 240.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fafd0d618eaf5657ae8659d8b46ff0d71c9498f74a78b35bf6b53bcd30c17c99
|
|
BLAKE2b-256 checksum How to use checksums |
7e01a977aee585600abb0b4979f2de1f6c15a6b1425c3582fe49a8fc7e0a72be
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.13
|
Release files / ultrawhisper-1.0.1-py3-none-any.whl
| Download URL | ultrawhisper-1.0.1-py3-none-any.whl |
|---|---|
| Size | 82.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3a958bce6881f642580f9c667d31564063c8e75356ebc9d06e29f27304685655
|
|
BLAKE2b-256 checksum How to use checksums |
1fa181fb67544997afb2a79bab45c5ffaecc9cfc662af671b35922485936f1b5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.13
|