Muesli: local dictation and meeting transcription for macOS
Muesli: agent-native local meeting transcription + dictation for macOS (Granola + WisprFlow alternative)
At a glance
- What is it?
- Muesli combines hold-to-talk dictation and Granola-style meeting capture in one native Swift app for macOS 14.2+ on Apple Silicon. The interesting part is the provider list and the fallback logic, not the marketing line.
- Who is it for?
- Muesli suits Mac users on Apple Silicon who want dictation and meeting capture in one app and are willing to accept that some features (Quill, summaries, hosted dictation) call out to OpenAI, OpenRouter, or a local Ollama instance. It is the wrong tool if you are not on macOS 14.2+ with Apple Silicon, if you need a cross-platform client, or if you cannot tolerate that hosted fallback keeps the local recording only until a compatible on-device model takes over.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly Swift, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
The problem Muesli targets: two tools, one hotkey
Dictation apps and meeting note-takers usually live in separate windows with separate hotkeys. Muesli's pitch is that both run inside one native macOS app, and that dictation and meeting transcription happen on-device by default. The README describes it as a lightweight native macOS app combining WisprFlow-style dictation with Granola-style meeting transcription. The target user is someone on Apple Silicon macOS 14.2+ who already uses a Mac for calls and writing, and who does not want microphone audio leaving the machine unless they explicitly opt in. The README states that iCloud sync transfers text and sync metadata, never audio, and that hosted cleanup, Quill, summaries, and Computer Use send input only when those features are selected. That is a narrower privacy claim than "nothing leaves your Mac", and it is the honest one: the app has hosted paths, they are opt-in, and the README says so.
How the dictation and meeting pipelines actually differ
Dictation is a hold-to-talk loop. Hold the hotkey, or double-tap for hands-free mode, speak, release, and the transcribed text is pasted at the cursor. The README quotes roughly 0.13 second latency via Parakeet TDT on the Apple Neural Engine. By default this runs on an on-device model. If you opt into OpenAI Speech-to-Text with your own key, the README says microphone audio streams directly to OpenAI over a Realtime WebSocket; OpenRouter dictation instead sends the completed recording through OpenRouter to the selected upstream model. The fallback detail matters: Muesli keeps the local recording only long enough to fall back to a compatible installed on-device model if the hosted request fails, and streaming-only models are excluded from fallback. So a hosted failure is not automatically recoverable unless you already have a compatible local model installed.
Meeting transcription is a different shape. Muesli captures your mic as You and system audio as Others at the same time, using a CoreAudio process tap by default with ScreenCaptureKit as fallback. VAD-driven chunking runs during the meeting at speech boundaries, diarization labels remote speakers as Speaker 1, Speaker 2 and so on, and the README claims the transcript is ready in seconds after you stop. Live transcription is a separate, off-by-default mode with two explicit behaviors. Nemotron 3.5 and Apple Speech supply live captions plus the final raw transcript before diarization and note generation, and the recorded-audio pipeline remains available for missing or incomplete streaming results. Parakeet Realtime EOU instead provides provisional previews while a separately selected meeting model writes the final transcript. The README says Settings always shows which model owns the final transcript, which is the right place for that disclosure.
Installing Muesli and running a first dictation
The README does not include a build-from-source section in the excerpt available here, and the repository has a native/ directory plus scripts/ and a vercel.json, which suggests the app is built from the Swift sources rather than installed via a package manager. The README does point to the project homepage at muesli.works. Treat that as the place to get the app, and treat the model downloads as a separate step inside the app.
The first real use is dictation. After launching, open Models and download an on-device speech model, then hold the hotkey and speak. The README describes the loop as hold, speak, release, and the text pastes at the cursor.
# No install command is documented in the README excerpt.
# Get the app from the project homepage, then download a model in-app:
# Models -> download an on-device ASR model (for example Parakeet TDT)
# Then hold the hotkey, speak, releaseMeeting capture is the second step, and it needs one settings change if you want live captions. The README gives the path explicitly: choose Apple Speech, or download Parakeet Realtime EOU or Nemotron 3.5 from Models, then select one under Settings → Meetings → Transcription. The waveform-hover preview is a separate toggle in the same section. The README is clear that making a live model available does not activate it automatically.
# In the app, not a shell:
# Models -> download Parakeet Realtime EOU or Nemotron 3.5
# Settings -> Meetings -> Transcription -> select the live model
# Optional: enable the waveform-hover preview in the same sectionFor scripting, the README lists six preconfigured Apple Shortcuts and Siri actions: Start/Stop Dictation (latched hands-free mode, same as double-tapping the hotkey), Start/Stop Meeting Recording, Get Last Dictation, and Get Last Meeting Notes. The README gives the Siri phrasing as "Start a meeting recording in Muesli" and suggests triggering them from Spotlight, Siri, keyboard shortcuts, or Shortcuts automations.
Where Muesli's defaults can bite you
The first limitation is the platform floor. The README badge says macOS 14.2+ and Apple Silicon optimized, and the whole inference stack is described as in-process CoreML/ANE, Metal, and LiteRT-LM. There is no Windows or Linux client in the repository layout, and no web client mentioned. If your team is not all on Apple Silicon Macs, this is a personal tool, not a team tool.
The second is the hosted/local split. The README says hosted cleanup, Quill, summaries, and Computer Use send the input needed for those features when selected. Quill is the clearest example: it supports local and hosted models, and the README says that if a required local model is missing or a selected account is signed out, Muesli prompts you to download the model or sign in before use. That is a reasonable guardrail, but it means Quill is not purely local unless you have configured a local model.
The third is live transcription. It is off by default, and the two modes behave differently. If you pick Parakeet Realtime EOU, what you see during the meeting is provisional and the final transcript comes from a separately selected meeting model. If you pick Nemotron 3.5 or Apple Speech, the live model owns the final raw transcript. The README states that Settings shows which model owns the final transcript, so the failure mode here is not silent, but it is easy to misread if you assume the preview text is the finished output. Apple Speech also depends on macOS 26+ for the system-supported language set, so older Macs get the narrower option.
Muesli vs Granola, and vs a plain Whisper setup
Granola is the obvious comparison because the README names it. The README positions Muesli as a Granola alternative, and the architectural difference it emphasizes is that meeting transcription runs locally on Apple Silicon by default, with summary generation available through OpenAI, free OpenRouter models, your ChatGPT Plus/Pro subscription, or local Ollama models. So the split is: capture and transcription local, note generation either hosted or Ollama. If your objection to Granola is where the audio and transcript live, Muesli's answer is the on-device ASR pipeline plus iCloud sync that transfers text and sync metadata but never audio. If your objection is that you want the notes generated without any network call at all, Muesli can do that only if you point summaries at local Ollama models, which is a configuration choice rather than the default.
The other real alternative is assembling Whisper plus a hotkey tool yourself. Muesli's provider list is the honest comparison point: Apple Speech, Parakeet TDT, Nemotron 3.5, Cohere Transcribe 2B, multilingual Whisper Tiny/Small/Large Turbo via WhisperKit, Qwen3 ASR, SenseVoice Small, Bodhan Core/Flex for Indic and English speech, and experimental Gemma 4 E2B. A DIY setup gives you one model and full control over the plumbing. Muesli gives you a switcher, diarization, a meeting capture path that taps system audio including Bluetooth/AirPods, and Shortcuts actions, at the cost of a larger surface area and an app you did not write. The 0.8.4 release notes also add S1-mini English cleanup and Bodhan for Indic languages with code-switching, which a single Whisper install does not match out of the box.
Maintenance, licence, and what an upgrade costs you
The repository is not archived, and the last push was on 2026-09-14, one day before the date used for this review, so the project is being pushed to frequently. The release cadence visible here is v0.8.3 on 2026-08-18, then v0.8.4-preprod.1 and v0.8.4 on 2026-09-09. That is roughly a monthly minor release with a preprod tag before the stable one. The practical upgrade cost is not the app binary; it is the models. A release that adds providers (0.8.4 adds Quill, Bodhan, live meeting transcripts, re-summarize, and BYOK dictation) also adds download and settings surface. If you pin a workflow to a specific model, check the release notes under docs/release-notes/ before upgrading, because the README shows that live transcription ownership can differ between modes.
The licence is MIT, and the repository ships a LICENSE and a separate NOTICE file. MIT covers the code in this repository. It does not automatically cover model weights you download from elsewhere, and the README lists models from several sources including NVIDIA Parakeet and Nemotron, Cohere Transcribe, and Whisper variants. If you redistribute Muesli or bundle weights, read the NOTICE file and the upstream model licences yourself; this article is not legal advice. The README also links a Buy Me A Coffee page, which is funding, not licensing.
Editorial conclusion
Muesli suits Mac users on Apple Silicon who want dictation and meeting capture in one app and are willing to accept that some features (Quill, summaries, hosted dictation) call out to OpenAI, OpenRouter, or a local Ollama instance. It is the wrong tool if you are not on macOS 14.2+ with Apple Silicon, if you need a cross-platform client, or if you cannot tolerate that hosted fallback keeps the local recording only until a compatible on-device model takes over. Before adopting, verify three things in the repository: which models you actually need to download from Models, whether live transcription is enabled under Settings → Meetings → Transcription (it is off by default), and what the MIT LICENSE plus NOTICE file say about the model weights you plan to ship or redistribute.
Frequently asked questions
How do I use Muesli for dictation?
Hold the hotkey, or double-tap for hands-free mode, speak, and release. The README says the transcribed text is pasted at your cursor, with roughly 0.13 second latency via Parakeet TDT on the Apple Neural Engine by default.
How do I use Muesli for meeting transcription?
Start a meeting recording, and Muesli captures your mic as You and system audio as Others simultaneously, with VAD-driven chunking during the meeting and diarization labeling remote speakers. Live transcription is off by default and must be selected under Settings → Meetings → Transcription after downloading a model from Models.
What is Muesli made of?
The app is written in Swift with AppKit and SwiftUI, and runs in-process CoreML/ANE, Metal, and LiteRT-LM inference. It supports multiple ASR providers including Apple Speech, Parakeet TDT, Nemotron 3.5, Cohere Transcribe 2B, Whisper variants via WhisperKit, Qwen3 ASR, SenseVoice Small, and Bodhan.
Is Muesli healthier than oats?
This question is about the breakfast cereal, not the macOS app. Muesli-HQ/muesli is a dictation and meeting transcription tool for macOS 14.2+ on Apple Silicon and has no nutritional properties.
Community notes