░█▀▄░█░░░█░█░█▀▄░▀█▀ ░█▀▄░█░░░█░█░█▀▄░░█░ ░▀▀░░▀▀▀░▀▀▀░▀░▀░░▀░
Talk to your coding agents.
On-device voice-to-text for macOS. Press right ⌘, speak, then press it again - your words go straight into Claude Code, Codex, Cursor, OpenCode or any other agent, wherever your cursor is.
brew tap satyaborg/blurt
brew install blurtOr via pipx:
pipx install blurtRequires macOS with Apple Silicon.
First run downloads the selected transcription model once. macOS will prompt for Microphone and Accessibility access (System Settings → Privacy & Security).
| Action | Description |
|---|---|
| Press right ⌘ | Start recording |
| Press right ⌘ again | Stop, transcribe, paste at cursor |
| Ctrl + C | Quit |
| Mode | Model | Use case |
|---|---|---|
fast |
Qwen3-ASR 0.6B 8-bit | Default, lowest latency |
accurate |
Qwen3-ASR 1.7B 8-bit | Higher accuracy |
blurt mode fast # use the default 0.6B model
blurt mode accurate # use the higher-accuracy 1.7B modelThe fast mode downloads an approximately 1 GB MLX checkpoint, while accurate mode downloads an approximately 2.5 GB MLX checkpoint. Custom words and filename-shaped repository terms are passed to Qwen as transcription context.
blurt case original # preserve the model's casing
blurt case lowercase # convert every transcription to lowercaseTeach Blurt words it gets wrong (names, jargon, acronyms):
blurt add "Claude Code" # add a word
blurt vocab # list all
blurt rm "Claude Code" # removeWords are stored in ~/.blurt/vocab.txt (one per line).
Run Blurt from a git repo and spoken filenames automatically resolve to @path/to/file references that coding agents understand. For example, saying "check init.py for the bug" becomes check @blurt/__init__.py for the bug.
blurt log # view recent transcriptsLogs are stored in ~/.blurt/log.txt.
blurt upgrade| Issue | Fix |
|---|---|
| "Microphone access" prompt doesn't appear | System Settings → Privacy & Security → Microphone → enable your terminal |
| "Accessibility" error | System Settings → Privacy & Security → Accessibility → enable your terminal |
| No audio / recording fails | brew install portaudio then restart your terminal |
| Model download stalls | Check available space in ~/.cache/huggingface/ for the selected model |
git clone https://github.com/satyaborg/blurt.git
cd blurt
uv pip install -e ".[dev]"
pytestEverything runs on your Mac. No network calls, no telemetry, no data collection. Audio files are saved locally to ~/.blurt/audio/ and never leave your device.
