Skip to main content

Voice dictation daemon using NVIDIA Parakeet on Apple Silicon

Project description

🐦 Birdword

Contextual voice dictation for macOS. Powered by NVIDIA Parakeet running locally on Apple Silicon via MLX.

Press a hotkey, speak, and your words are transcribed and pasted into whatever app is focused. A small LLM (Qwen2.5-0.5B) post-processes the transcription to fix errors, optionally using project-specific context from a BIRDWORD.md file.

Install

pip install birdword

Or run without installing:

uvx birdword

Requires macOS on Apple Silicon (M1+) and Python 3.10+.

Usage

# Run in the foreground
birdword

# Run in the background
birdword start
birdword stop
birdword status

Hotkeys

Action Default
Toggle recording Right ⌘ + Space
Hold to record Hold Right ⌘ for >1s, release to transcribe

Options

--model MODEL        Transcription model (default: mlx-community/parakeet-tdt-0.6b-v2)
--fix-model MODEL    Post-processor model (default: mlx-community/Qwen2.5-0.5B-Instruct-4bit)
--no-fix             Disable LLM post-processing
--hold-key KEY       Hold key (default: rcmd). Options: rcmd, lcmd, ralt, lalt, rshift, lshift, rctrl, lctrl
--toggle-key KEY     Toggle key (default: space). Options: space, return, tab, escape

Permissions

Birdword needs three macOS permissions, granted to your terminal app:

  • Microphone — to record your voice
  • Accessibility — to paste text and intercept the hotkey
  • Input Monitoring — to detect the global hotkey

Birdword checks these on startup and tells you what's missing.

Context-aware correction

Drop a BIRDWORD.md file in your project directory with domain-specific terms, names, and jargon:

This is a Rust networking project using tokio and hyper.

Key terms: epoll, mio, AsyncRead, TcpListener
Names: Till

When you dictate into a Terminal tab whose shell is in that directory (or a child), birdword feeds this context to the post-processor so it knows not to "correct" your domain terms.

Menu bar

Birdword shows a bird icon in the menu bar:

  • White — idle
  • Yellow — connecting mic
  • Red — listening
  • ✨ Sparkles — transcribing

License

MIT

Project details


Download files

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

Source Distribution

birdword-0.1.0.tar.gz (211.3 kB view details)

Uploaded Source

Built Distribution

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

birdword-0.1.0-py3-none-any.whl (16.7 kB view details)

Uploaded Python 3

File details

Details for the file birdword-0.1.0.tar.gz.

File metadata

  • Download URL: birdword-0.1.0.tar.gz
  • Upload date:
  • Size: 211.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for birdword-0.1.0.tar.gz
Algorithm Hash digest
SHA256 fdf92091f2c1d3c6d9243a13e0a1d637e9e5d77b3828394cf8e2819b8abba28a
MD5 0933f7d4adbc19763a9ed63464cc74fc
BLAKE2b-256 dca375465ca122e3b89a5c01442c2c47aff2e84a53d5ec7acd0030a252ab3a33

See more details on using hashes here.

Provenance

The following attestation bundles were made for birdword-0.1.0.tar.gz:

Publisher: main.yaml on tillahoffmann/birdword

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

File details

Details for the file birdword-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: birdword-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 16.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for birdword-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6461e41b1520bb06c91c1f64c1c56b482e43dc751251495377968371391003ca
MD5 69b6ae014ddae74abaf0481e380be45e
BLAKE2b-256 112bd3b0d10e768b887e8b5e6b9c45cfccb5c68ecf4679e4aae16a181184e1e3

See more details on using hashes here.

Provenance

The following attestation bundles were made for birdword-0.1.0-py3-none-any.whl:

Publisher: main.yaml on tillahoffmann/birdword

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

Supported by

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