CLI tool
moona3k/macparakeet avatar
moona3k/macparakeet

MacParakeet: local speech recognition that keeps audio on the Mac

Fast, private, local-first voice app for Apple Silicon Macs — dictation, file/media transcription, meeting recording, Transforms, and a public automation CLI. Free and open-source.

731 stars88 forksSwiftNOASSERTION

At a glance

What is it?
MacParakeet is a Swift app for Apple Silicon Macs that does system-wide dictation, file and media transcription and meeting recording with the audio never leaving the machine, plus a command line tool for automation, and its own source tree is often ahead of the downloadable build.
Who is it for?
MacParakeet fits a Mac user on Apple Silicon with macOS 14.2 or newer who wants dictation, media transcription and meeting capture to work without sending audio to a service, and it fits anyone who wants to script transcription through the macparakeet-cli tool.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly Swift, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

A voice app that runs the model on the machine it is dictating into

MacParakeet is a Swift application for Apple Silicon Macs, and the local-first claim is the whole point of it. All speech recognition happens on your Mac, and the networked AI features are separate and opt-in, so the line between what stays on the machine and what does not is a deliberate boundary rather than an accident of implementation. The app covers three jobs that normally live in three different tools: system-wide dictation, transcription of files and media, and meeting recording, with optional Transforms applied to selected text. On top of that sits a public automation tool, macparakeet-cli, so the same engine can be driven from a script instead of a window. The requirements are strict in a useful way, with the badges stating macOS 14.2 and above, Swift 6, and Apple Silicon only, which tells you this is not a project that tries to run everywhere.

Parakeet v3 by default, WhisperKit when the locale says so

The engine choice is the interesting engineering decision, and it is made partly for the user and partly by the first-run setup. Parakeet v3 is the standard-path local speech engine. But the first-run flow is locale aware: if the Mac has no preferred English language and prefers Korean, Japanese, Chinese or Cantonese, the setup selects WhisperKit instead. Parakeet v2 and Unified, Nemotron Beta, Cohere Transcribe and WhisperKit all remain selectable local choices, and the reason the project gives for keeping several on the menu is that they differ in language coverage, latency, timestamps and accuracy. That is a better answer than shipping one model and hoping, and it also means the app is not locked to a single upstream project even though the default path uses one.

Dictation that fits the keyboard you actually have

Dictation is the feature people notice first. You press a hotkey in any application, speak, and the text gets pasted in. Holding the key gives push-to-talk, while tapping the hands-free shortcut starts and stops longer dictations. The default binding is Fn, and Settings under Dictation can rebind it to external-keyboard-friendly keys such as F13 or F19 or End, to a modifier plus key combination, or to a modifier-only chord like Control+Option. There is also an optional second push-to-talk and hands-free pair under Additional shortcuts that stays active alongside the first, so the Fn key on the built-in keyboard and another key on an external keyboard can both work at once. A beta setting can pause supported Now Playing media while you dictate and resume it when capture stops.

File, URL and podcast transcription without scraping

The Transcribe tab takes input in several shapes: drag one or many audio or video files, drop a folder, use the multi-select picker, or paste a supported media or podcast link. YouTube, X, Vimeo, TikTok, Instagram, Facebook and other sites handled by yt-dlp are supported, subject to upstream site changes, and the card recognises known platforms as you paste. Podcasts are handled differently from video, and the difference is worth noting. Apple Podcasts links resolve through the iTunes lookup API to the episode's audio enclosure, with no scraping involved, and the audio is then downloaded and transcribed locally the same way a YouTube video is. The command line tool also does freetext podcast search, so you can find an episode by subject rather than by URL. There is a Library tab holding saved transcriptions with thumbnails, and the YouTube view pairs the transcript with synced video playback, timestamps, a summary and a chat tab.

Meeting recording that reads the calendar but stays opt-in

Meeting capture is the part with the most settings, and the defaults are conservative. The app reads upcoming meetings from the local macOS Calendar store through EventKit, including Microsoft 365 and Exchange calendars enabled in System Settings under Internet Accounts, and it can show reminders and optionally start recording after a countdown. Auto-start defaults to .off and has to be opted into, and recordings stop manually unless the separate activity-based auto-stop setting is enabled, which also defaults off. During a meeting you get a floating pill and a panel with Notes, Transcript and Ask tabs, and the Ask tab summarises the live meeting with quick-prompt starters. The screenshots also show a Dictation Stats view with a streak heatmap and a list of your top applications, which is a small thing that tells you the app is watching how you use it.

The source tree runs ahead of the stable download

The most useful thing about this project for an evaluator is that it publishes two channels side by side and refuses to blur them. The stable DMG 0.8.9 is the recommended channel and includes local dictation, file and media transcription, meetings, transcript and saved-result editing, dictation retry, faster Library browsing and task-specific AI setup, with Apple Intelligence serving cleanup while longer analysis and Transforms use another provider. It bundles CLI 5.0.0. The development source in the repository prepares 0.8.10 and bundles CLI 5.1.0, and it adds speaker count before transcription, unattributed leftovers, transcript find and replace, a second dictation shortcut, exact chord matching, opt-in meeting URL controls, meeting-microphone recovery and bounded meeting memory. Cross-recording Ask, Voice Control, voice profiles, encrypted share links and in-process MLX remain release-gated, and the README says outright that source presence does not mean availability in the stable app.

Why local beats a cloud transcription service for some jobs

The difference in approach between this app and a hosted transcription service is not that one is better at recognition. It is where the audio goes. MacParakeet runs the speech model on the Mac, so a meeting recording, a voice memo or a podcast episode does not have to leave the machine to be turned into text, and the opt-in boundary means the networked steps are a choice rather than a requirement. That matters for legal or client material, for material under an embargo, and for anyone on an offline machine. The trade-off is the one every local tool carries: the models and the runtime live on your hardware, and the project describes several engines with different latency and accuracy profiles precisely because there is no single model that wins every case. Inside the app, the WhisperKit and Parakeet choices differ in the same way, and the locale-aware first run picks between them for you.

Packaging, tooling and an unclassified licence

The repository is a Swift package with Package.swift, Package.resolved, Sources/ and Tests/ directories, and the toolchain details are pinned in the badges: Swift 6 and macOS 14.2 and above. The build and formatting setup is visible in the tree, with a .swift-format file, an .editorconfig, a .no-mistakes.yaml, scripts/ and diagnostics/ directories, plus benchmarks/ for measurement work. There is a CLAUDE.md and an AGENTS.md for automated tooling, THIRD_PARTY_LICENSES.md for the bundled third party terms, and a spec/ directory that holds the canonical release and feature-gate table the README keeps pointing at. That spec directory is the file to trust when the marketing copy and the build disagree. On the licence, GitHub could not classify it and lists it as a custom licence, while the README badge links to a file labelled GPL-3.0, so read the LICENSE file rather than the badge. The last push was on 2026-10-19, with the 0.8.10 app release and CLI 5.1.0 both tagged on 2026-10-14.

Editorial conclusion

MacParakeet fits a Mac user on Apple Silicon with macOS 14.2 or newer who wants dictation, media transcription and meeting capture to work without sending audio to a service, and it fits anyone who wants to script transcription through the macparakeet-cli tool. It does not fit someone who wants every documented feature today, because the README states plainly that source presence does not mean a feature is available in the stable app, with app-aware AI Formatter profiles, activity-based meeting detection and the in-process MLX LLM all still gated. Before you install, read the release and feature-gate table in spec/README.md to see which surfaces are in the stable DMG and which are in the development source, note that the stable 0.8.9 build bundles CLI 5.0.0 while the source prepares CLI 5.1.0, and check the licence file yourself, since GitHub could not classify it while the README badge points at a GPL-3.0 licence.

Frequently asked questions

Does MacParakeet send my audio to a server?

All speech recognition happens on your Mac, and the networked AI features are separate and opt-in. Apple Intelligence serves cleanup in the stable build, while longer analysis and Transforms use another provider that you opt into.

What are the system requirements for MacParakeet?

The project badges state macOS 14.2 and above, Swift 6 for the build, and Apple Silicon only. It is written in Swift and packaged as a Swift package with Sources/ and Tests/ directories.

Which speech engine does MacParakeet use by default?

Parakeet v3 is the standard-path local engine, and the locale-aware first-run setup selects WhisperKit instead when the Mac has no preferred English language and prefers Korean, Japanese, Chinese or Cantonese. Parakeet v2 and Unified, Nemotron Beta, Cohere Transcribe and WhisperKit stay selectable for different language, latency, timestamp and accuracy needs.

What is the difference between the stable DMG and the source tree?

The stable DMG 0.8.9 is the recommended channel and bundles CLI 5.0.0, while the development source prepares 0.8.10 and bundles CLI 5.1.0 with features such as speaker count before transcription, transcript find and replace and a second dictation shortcut. The canonical release and feature-gate status is in spec/README.md.

Official sources

  1. Issues
  2. moona3k/macparakeet on GitHub
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/moona3k-macparakeet.svg)](https://hysenlabs.com/projects/moona3k-macparakeet)

Was this useful?