Parakeet Dictation (macOS)
Local, fast, privacy-friendly dictation for macOS using NVIDIA Parakeet (MLX on Apple Silicon) with a push-to-talk hotkey.
Bonus: speak commands to rewrite selected text via AWS Bedrock (Claude).
Table of Contents
- Why this project?
- Features
- Demo
- Requirements
- Installation
- Configuration
- Usage
- Permissions (macOS)
- Run in the background
- Troubleshooting
- Development
- Roadmap
- FAQ
- Credits
- License
Why this project?
Parakeet Dictation gives you on-device speech-to-text on macOS with a single push-to-talk key (Globe/Function). It’s built to be:
- Private: Audio is processed locally on your Mac.
- Fast: Parakeet models are optimized and run great on Apple Silicon via MLX.
- Practical: Dictate into any app, or select text and say how to transform it (“make this more professional”, “translate to Spanish”, etc.)-the app rewrites it via AWS Bedrock and pastes it in place.
Features
- 🖥️ Menu bar app (stays out of your way)
- 🎙️ Push-to-talk: Press the Globe / Fn key to start recording, press again to transcribe & paste
- ⚡ Local ASR with NVIDIA Parakeet (Apple Silicon via MLX)
- ⌨️ Auto-paste at cursor in the foreground app
- ✨ Voice-driven text editing (optional): when text is selected, your speech is treated as an instruction and the selection is replaced with the result (via AWS Bedrock → Claude)
- ✅ Clear recording status via the menu bar icon
- 🧰 Simple background mode (no UI) for power users
Demo
Add a short GIF here showing:
- Globe key down → speaking → Globe key up → text appears
- Selecting text → Globe key → “make this friendlier” → selection is replaced
Requirements
- macOS 12+ (Apple Silicon recommended for speed)
- Python 3.10+
- Microphone
- Accessibility permission (to paste text programmatically)
- PortAudio (for PyAudio)
- Optional (for AI edits): AWS account with Bedrock access (Claude)
Installation
1. Install system deps
brew install portaudio ffmpeg
2. Clone & install Python deps
git clone https://github.com/osadalakmal/parakeet-dictation.git
cd parakeet-dictation
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
Configuration
cp .env.example .env
Edit .env with your AWS region and credentials if you want Bedrock-powered editing.
Usage
Push-to-talk dictation
- Launch the app (see Development or Background sections below).
- Press the Globe (🌐) / Function key to start recording.
- Speak normally.
- Press the key again to stop. The app will transcribe and paste the text at your current cursor position.
Voice-driven text editing (Claude via Bedrock)
- Select text in any app.
- Press the Globe / Fn key and speak an instruction, e.g.:
- “Make this more professional”
- “Fix the grammar”
- “Summarize this”
- “Translate to Spanish”
- Press the key again to stop. The selected text will be replaced with the edited version.
When no text is selected, your speech is treated as dictation and the text is inserted normally.
Menu bar controls
- Start/Stop Listening - toggles recording
- Settings - (future) configuration UI
- Quit - exits the app
Permissions (macOS)
- Microphone: System Settings → Privacy & Security → Microphone → allow your Terminal/app
- Accessibility: System Settings → Privacy & Security → Accessibility → allow your Terminal/app
Without Accessibility permission, the app cannot paste text for you.
Run in the background
pip install -r requirements.txt
nohup ./run.sh >/dev/null 2>&1 & disown
Stop it later:
ps aux | grep 'src/main.py'
kill -9 <PID>
Troubleshooting
- No audio: ensure
portaudiois installed - Nothing pastes: check Accessibility permissions
- Bedrock errors: check AWS credentials and region
- High CPU usage: first run warms up the model
Development
python src/main.py
- Menu bar UI via
rumps - Hotkey via
pynput - Audio capture via
pyaudio - ASR via
parakeet-mlx - Optional Claude-powered edits via Bedrock
Roadmap
- Preferences UI
- Streaming/partial results
- macOS app packaging
- Latency/quality settings
- Crash logging
FAQ
Does dictation send audio to the cloud? No. Local only. Editing uses Bedrock if enabled.
What languages are supported? English.
Intel Macs? Works but slower.
Credits
- Parakeet MLX (NVIDIA Parakeet on Apple Silicon)
- Originally forked from a Whisper-based dictation app
License
MIT
Metadata
Release files for parakeet-dictation 0.1.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| parakeet_dictation-0.1.6.tar.gz | 13.7 kB | With provenance | Details for parakeet_dictation-0.1.6.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| parakeet_dictation-0.1.6-py3-none-any.whl | Python 3 | none | any | Details for parakeet_dictation-0.1.6-py3-none-any.whl |
Total release size: 26.2 kB
Release files / parakeet_dictation-0.1.6.tar.gz
| Download URL | parakeet_dictation-0.1.6.tar.gz |
|---|---|
| Size | 13.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7047b8cb3720c9d68f46ee87c9c8a5bd4fdd7c6ee2cb749ce074faccc8961fe1
|
|
BLAKE2b-256 checksum How to use checksums |
05f5d115e3579782cacae91ba2474055bec4692dfd48bd7f80ad11a334b767f2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 3, 2025.
Transparency logRelease files / parakeet_dictation-0.1.6-py3-none-any.whl
| Download URL | parakeet_dictation-0.1.6-py3-none-any.whl |
|---|---|
| Size | 12.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
067f65b3dba9d538e5b3c3460b1334eaf7568227bc10a9c8f0c3f3dcb1c27ebc
|
|
BLAKE2b-256 checksum How to use checksums |
76aaca68319174854a18a62ac8838f18385fd99e912b89a5ec2c9f220196d6f0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 3, 2025.
Transparency logSecurity for parakeet-dictation 0.1.6
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for parakeet_dictation-0.1.6.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 3, 2025.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.