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 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 model

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

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.9.0.tar.gz (1.2 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.9.0-py3-none-any.whl (25.2 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for blurt-0.9.0.tar.gz
Algorithm Hash digest
SHA256 07a6f6bb05d8501c7a18c5645cc779d089fee2c7260a59d3c1fe0ca7a05047b0
MD5 9386a042cc109ca1ec2238b13ed29579
BLAKE2b-256 9c0f330a7f55c754d4e69de7b6e745ad1c772f336fd9f834115b900bfea933ad

See more details on using hashes here.

Provenance

The following attestation bundles were made for blurt-0.9.0.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.9.0-py3-none-any.whl.

File metadata

  • Download URL: blurt-0.9.0-py3-none-any.whl
  • Upload date:
  • Size: 25.2 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.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 906e058b83c092b3b1a3e7418239e59338dd638200a9cab548908f37018efc24
MD5 e803b573cf34303cf9c40c20631bd0de
BLAKE2b-256 bcdb2268642509c95c21721a9d1473726652c89584547adf1746f81a21e87182

See more details on using hashes here.

Provenance

The following attestation bundles were made for blurt-0.9.0-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

This release

0.9.0 This release

2 files

0.8.11

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