Skip to main content

░█▀▄░█░░░█░█░█▀▄░▀█▀
░█▀▄░█░░░█░█░█▀▄░░█░
░▀▀░░▀▀▀░▀▀▀░▀░▀░░▀░
  

Talk to your coding agents.

PyPI Downloads License

demo

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.

Install

brew tap satyaborg/blurt
brew install blurt

Or via pipx:

pipx install blurt

Requires macOS with Apple Silicon.

First run downloads the selected transcription model once. macOS will prompt for Microphone and Accessibility access (System Settings → Privacy & Security).

Usage

Action Description
Press right Start recording
Press right again Stop, transcribe, paste at cursor
Ctrl + C Quit

Models

Mode Model Use case
fast Whisper Base Default, lowest latency
accurate Whisper Large v3 Turbo Higher Whisper accuracy
qwen Qwen3-ASR 1.7B 8-bit Experimental accuracy mode
blurt mode qwen       # use experimental Qwen3-ASR
blurt mode accurate   # return to Whisper Large v3 Turbo
blurt mode fast       # return to the default

Qwen mode downloads an approximately 2.5 GB MLX checkpoint. Custom words and repository file names are passed to Qwen as transcription context. Existing Whisper models remain available when you switch modes.

Custom Words

Teach Blurt words it gets wrong (names, jargon, acronyms):

blurt add "Claude Code"   # add a word
blurt vocab               # list all
blurt rm "Claude Code"    # remove

Words are stored in ~/.blurt/vocab.txt (one per line).

@-mentions

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.

Transcript History

blurt log                 # view recent transcripts

Logs are stored in ~/.blurt/log.txt.

Update

blurt upgrade

Troubleshooting

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

Contributing

git clone https://github.com/satyaborg/blurt.git
cd blurt
uv pip install -e ".[dev]"
pytest

Privacy

Everything 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.

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

blurt-0.8.11.tar.gz (1.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

blurt-0.8.11-py3-none-any.whl (26.1 kB view details)

Uploaded Python 3

File details

Details for the file blurt-0.8.11.tar.gz.

File metadata

  • Download URL: blurt-0.8.11.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for blurt-0.8.11.tar.gz
Algorithm Hash digest
SHA256 2424fb2c935cce955f6dcf667a517cc45608d4791340ad31d07723c59aa20e8f
MD5 90579bc621adf6e777637ae186920f72
BLAKE2b-256 68ddca93883379c6888d2df7762940e814374d7a33c837ec0718f89ce5203e64

See more details on using hashes here.

Provenance

The following attestation bundles were made for blurt-0.8.11.tar.gz:

Publisher: publish.yml on satyaborg/blurt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file blurt-0.8.11-py3-none-any.whl.

File metadata

  • Download URL: blurt-0.8.11-py3-none-any.whl
  • Upload date:
  • Size: 26.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for blurt-0.8.11-py3-none-any.whl
Algorithm Hash digest
SHA256 d4fb5eba5ab1837e71bdaeb2a9524bf94cd905fad87b46c7c396cd31a84f6500
MD5 b5d62d02a09fc558464d33d9bb5bbddc
BLAKE2b-256 cf0dd62f30bc94a777b2557dd78ad327009be21515d06fe1b7d955d820671385

See more details on using hashes here.

Provenance

The following attestation bundles were made for blurt-0.8.11-py3-none-any.whl:

Publisher: publish.yml on satyaborg/blurt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.9.1

2 files

0.9.0

2 files

This release

0.8.11 This release

2 files

0.8.10

2 files

0.8.9

2 files

0.8.8

2 files

0.8.7

2 files

0.8.6

2 files

0.8.5

2 files

0.8.4

2 files

0.8.3

2 files

0.8.2

2 files

0.8.1

2 files

0.8.0

2 files

0.7.7

2 files

0.7.6

2 files

0.7.5

2 files

0.7.4

2 files

0.7.3

2 files

0.7.2

2 files

0.7.1

2 files

0.7.0

2 files

0.6.5

2 files

0.6.4

2 files

0.6.2

2 files

0.6.1

2 files

0.6.0

2 files

0.5.5

2 files

0.5.4

2 files

0.5.3

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

0.4.4

2 files

0.4.3

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.3.9

2 files

0.3.8

2 files

0.3.7

2 files

0.3.6

2 files

0.3.5

2 files

0.3.4

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.9

2 files

0.2.8

2 files

0.2.7

2 files

0.2.6

2 files

0.2.5

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page