Skip to main content

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?

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:

  1. Globe key down → speaking → Globe key up → text appears
  2. 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

  1. Launch the app (see Development or Background sections below).
  2. Press the Globe (🌐) / Function key to start recording.
  3. Speak normally.
  4. 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)

  1. Select text in any app.
  2. Press the Globe / Fn key and speak an instruction, e.g.:
  • “Make this more professional”
  • “Fix the grammar”
  • “Summarize this”
  • “Translate to Spanish”
  1. 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 portaudio is 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)

Source distribution for parakeet-dictation 0.1.6
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)

Table of built distributions (wheels) for parakeet-dictation 0.1.6
File Interpreter ABI Platform Actions
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 log

Release 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 log

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

Select from 2 files

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 log

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

Release history Release notifications | RSS feed

This release

0.1.6 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page