Open source
Read every line, build it yourself with Xcode, or fork it. Based on the original Better Meeting project.
Apache License 2.0Better Meeting is a lightweight menu bar app that records your screen, system audio, and microphone, then transcribes everything on-device. No account. No upload. No cloud processing.
The Better Meeting menu, shown with sample meetings.
Read every line, build it yourself with Xcode, or fork it. Based on the original Better Meeting project.
Apache License 2.0Lives in the menu bar, with no Dock icon and no main window. The speech model downloads once, when it's first needed.
~11 MB app downloadRecording, transcription, screen text, and meeting titles are all processed on your Mac, and it works offline once set up.
No account · No uploadBuilt with SwiftUI, ScreenCaptureKit, Core ML, Vision, and NaturalLanguage. No Electron, no bundled browser.
Apple silicon · macOS 15+No setup ceremony. Pick a display and microphone once, and every meeting after that is one click.
Click Start recording for screen video, system audio, and microphone. For no video, open its arrow and choose Record audio-only. Live meters show both audio sources.
When you stop, the audio is transcribed on-device with Parakeet or Whisper, with optional speaker labels. You can start the next recording while it works.
Meetings are listed by day. Search matches titles and everything that was said. Click a meeting to open its transcript.
Video, audio, a Markdown transcript, and JSON with timings, languages, and speakers, saved to ~/Documents/Better Meetings.
PROMPT.md. There's no LLM inside Better Meeting, and nothing is sent anywhere.Both run with Core ML on Apple silicon. Models download once from Hugging Face and then work offline.
One fast pass with automatic language detection and punctuation.
Runs through FluidAudio · Model weights CC-BY-4.0, © NVIDIA
For every other language, and for meetings that switch between them.
Runs through WhisperKit by Argmax
Optional. SpeakerKit tells voices apart on your Mac and labels each transcript segment. It adds about 11 MB of models and some processing time.
Shows today's meetings from Calendar, with a button that records and names the next one. Reads events and never edits them. Off by default.
Once another app has used the microphone for half a minute, you get a notification offering to record. Nothing is recorded until you click.
If no audio arrives from either source within 30 seconds, an amber warning appears while there's still time to fix the input.
Whisper reuses finished language passes. Parakeet restarts its single pass. Both can retry from a saved recording after a restart; force quit or power loss can leave an unreadable video.
Unnamed meetings get a title like “Anna — Pricing Review”, found on-device with Apple's NaturalLanguage framework, or from repeated names and topics in languages it cannot tag, such as Ukrainian.
Sparkle checks GitHub and verifies each update before installing it. Automatic downloads and the beta channel are both opt-in.
Your meetings never leave the Mac unless you move them. The network is used for exactly two things.
That's the full list. Better Meeting has no analytics or telemetry and doesn't use an account.
Paste the commands below into Terminal. The cask downloads the release from GitHub and verifies its SHA-256 checksum. Xcode isn't required.
Add the Better Meeting tap, install the cask, and open the app. Its icon appears in the menu bar.
# Add the tap and install the app $ brew tap --custom-remote kremnyi/better-meeting https://github.com/kremnyi/better-meeting-menubar $ brew install --cask kremnyi/better-meeting/better-meeting # Open it from Applications $ open -a "Better Meeting"
Staying current. The app can update itself from Options → App & updates. With Homebrew, quit the app and run brew upgrade --cask kremnyi/.
You'll need Homebrew and:
The app is self-signed and not notarized by Apple. If macOS blocks the first launch, open System Settings → Privacy & Security and click Open Anyway. Managed Macs may not allow this.
Free and open source. Read the code, file an issue, or send a pull request.