Offline meeting transcription for macOS with automatic meeting detection
Project description
Meeting Noter
Offline meeting transcription tool for macOS. Captures both your voice and meeting participants' audio, saves to MP3, and transcribes locally using Whisper.
Features
- No setup required - Just install and run
- Captures both sides - Your mic + system audio (meeting participants)
- Offline transcription - Uses Whisper locally, no API calls
- Auto-detection - Detects active meetings (Zoom, Teams, Meet, Slack)
- Multiple interfaces - Menu bar app, desktop GUI, or CLI
- Auto-segmentation - One file per meeting (detects silence)
Installation
pipx install meeting-noter
For corporate/offline environments (bundles Whisper model, no download needed):
pipx install "meeting-noter[offline]"
Upgrading
# Standard
pipx upgrade meeting-noter
# With offline model
pipx reinstall "meeting-noter[offline]"
No system dependencies required - ffmpeg is bundled automatically.
Quick Start
Menu Bar App (recommended):
meeting-noter menubar
Desktop GUI:
meeting-noter gui
CLI Recording:
meeting-noter start "Weekly Standup"
The app will request microphone and Screen Recording permissions on first use.
Usage
Recording
- The menu bar app auto-detects meetings and prompts to record
- Or manually start recording via the GUI/CLI
- Press Ctrl+C (CLI) or click Stop to end recording
Transcription
Recordings are auto-transcribed by default. Or manually:
# Transcribe the most recent recording
meeting-noter transcribe
# Transcribe a specific file
meeting-noter transcribe recording.mp3
# List all recordings
meeting-noter list
Commands
| Command | Description |
|---|---|
meeting-noter |
Launch desktop GUI |
meeting-noter menubar |
Launch menu bar app |
meeting-noter gui |
Launch desktop GUI |
meeting-noter start [name] |
Interactive CLI recording |
meeting-noter list |
List recent recordings |
meeting-noter transcribe |
Transcribe a recording |
meeting-noter devices |
List audio devices |
meeting-noter status |
Check daemon status |
Options
start
- First argument: Meeting name (optional, auto-generates timestamp if omitted)
transcribe
-m, --model: Whisper model size (tiny.en, base.en, small.en, medium.en, large-v3)-o, --output-dir: Directory with recordings
list
-n, --limit: Number of recordings to show-o, --output-dir: Directory with recordings
How It Works
┌─────────────────────────────────────┐
│ Your Meeting App │
│ (Zoom/Teams/Meet/Slack) │
└──────────────────┬──────────────────┘
│
┌─────────────┴─────────────┐
▼ ▼
┌─────────┐ ┌─────────────┐
│ Mic │ │ System Audio│
│(default)│ │(ScreenCaptureKit)
└────┬────┘ └──────┬──────┘
│ │
└───────────┬───────────────┘
▼
┌─────────────┐
│Meeting Noter│
│ (capture) │
└──────┬──────┘
│
▼
~/meetings/2024-01-15_Weekly_Standup.mp3
│
▼ (auto or on-demand)
┌─────────────┐
│ Whisper │ (local)
└──────┬──────┘
│
▼
~/meetings/2024-01-15_Weekly_Standup.txt
Permissions
On first use, macOS will ask for:
- Microphone - For capturing your voice
- Screen Recording - For capturing system audio (meeting participants)
Grant these in System Settings > Privacy & Security.
Configuration
Config file: ~/.config/meeting-noter/config.json
{
"recordings_dir": "~/meetings",
"transcripts_dir": "~/meetings",
"whisper_model": "tiny.en",
"auto_transcribe": true,
"silence_timeout": 5,
"capture_system_audio": true
}
Whisper Models
| Model | Size | Speed | Accuracy |
|---|---|---|---|
tiny.en |
~75MB | Fastest | Good |
base.en |
~150MB | Fast | Better |
small.en |
~500MB | Medium | High |
medium.en |
~1.5GB | Slow | Very High |
large-v3 |
~3GB | Slowest | Best |
Requirements
- macOS 12.3+ (for ScreenCaptureKit)
- Python 3.9+
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file meeting_noter-3.4.2.tar.gz.
File metadata
- Download URL: meeting_noter-3.4.2.tar.gz
- Upload date:
- Size: 165.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
006c13885ded035a4ca13974128dd0f57c430340c9bdc3d9fe144c96af73de08
|
|
| MD5 |
68d70eb2626fbd95469ccb0cf4a85612
|
|
| BLAKE2b-256 |
f805667926dee6ede9c714787a257b79ebf7d9da501b4fb400ae4e87dc22bda1
|
File details
Details for the file meeting_noter-3.4.2-py3-none-any.whl.
File metadata
- Download URL: meeting_noter-3.4.2-py3-none-any.whl
- Upload date:
- Size: 161.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0f3a35d42d758eed9fff457c1301c2ce95a3ed6811a7d7b48c93eb90a616f0f9
|
|
| MD5 |
90ba713bdee3de3bc612f7a7c0e755d4
|
|
| BLAKE2b-256 |
b86118773763f39dbeca8a9baca0ab5ab3c5e580ad3020514d6398629b9a2686
|