Open-source, privacy-first AI note-taking app. Records meeting audio, transcribes speech to text with Whisper, and generates structured meeting notes using any LLM — all running locally on your machine. No cloud. No subscriptions. Your data stays yours.
Most AI meeting note apps send your audio to the cloud. Murmur runs entirely on your machine — your conversations never leave your computer.
- Local-first AI transcription — OpenAI Whisper, faster-whisper, or MLX Whisper (Apple Silicon GPU)
- Any LLM provider — Ollama (fully local), Anthropic, OpenAI, Gemini, Groq
- One command —
murmur notesrecords, transcribes, and summarizes in a single pipeline - Auto-meeting detection — detects Zoom, Teams, WebEx, Slack, FaceTime and starts recording
- Speaker diarization — identifies who said what using pyannote.audio
- Live transcription — see real-time text while recording
- Export anywhere — PDF, DOCX, or clipboard
- Interactive TUI — terminal dashboard with keyboard shortcuts
- Works with any meeting app — Teams, Google Meet, Zoom, Slack, Discord, etc.
| Feature | CLI | TUI | Description |
|---|---|---|---|
| Record audio | murmur record |
r |
Captures mic + system audio |
| Transcribe | murmur transcribe |
t |
Speech-to-text via Whisper |
| Summarize | murmur summarize |
n |
Structured notes via LLM |
| Full pipeline | murmur notes |
— | Record + transcribe + summarize |
| Copy to clipboard | murmur copy |
c |
Copy notes/transcript |
| Export PDF/DOCX | murmur export |
e |
Export notes to file |
| Auto-record meetings | murmur watch |
w |
Detect meeting apps, auto-record |
| Speaker labels | --diarize |
— | Who said what |
| Backend selection | --backend faster |
— | Choose transcription engine |
| Live transcript | — | automatic | Real-time text during recording |
| Interactive dashboard | murmur tui |
— | Full TUI with keybindings |
git clone https://github.com/GauravRatnawat/murmur.git
cd murmur
./setup.shThe setup script lets you pick an LLM provider, installs dependencies, configures your API key, and walks you through macOS audio device setup.
For a completely offline, privacy-first setup using Ollama:
pip install -e ".[ollama]"
# Make sure Ollama is running: ollama serve
echo "LLM_PROVIDER=ollama" > .env
murmur notes# Full pipeline: record, transcribe, summarize — one command
murmur notes
# Use a specific LLM provider
murmur notes --provider gemini
murmur notes --provider ollama # fully local, no API key needed
# Individual steps
murmur record # record until Ctrl+C
murmur record -t 60 # record for 60 seconds
murmur transcribe # transcribe latest recording
murmur summarize # summarize latest transcript
# Faster transcription (4x faster on CPU)
murmur transcribe --backend faster
# Speaker diarization (who said what)
murmur transcribe --diarize
# Export and share
murmur copy # copy notes to clipboard
murmur export # export to PDF
murmur export -f docx # export to DOCX
# Auto-record when meetings start
murmur watch # detects Zoom, Teams, etc.
# Interactive TUI dashboard
murmur tui
# Utilities
murmur devices # list audio devices
murmur ls # list all saved files| Provider | Cost | Local? | API Key | Install |
|---|---|---|---|---|
| Ollama | Free | Yes | No | pip install -e ".[ollama]" |
| Groq | Free tier | No | Yes | pip install -e ".[groq]" |
| Google Gemini | Free tier | No | Yes (no credit card) | pip install -e ".[gemini]" |
| Anthropic (Claude) | Paid | No | Yes | pip install -e ".[anthropic]" |
| OpenAI (GPT) | Paid | No | Yes | pip install -e ".[openai]" |
| Backend | Speed | Hardware | Install |
|---|---|---|---|
whisper (default) |
Baseline | CPU | Included |
faster |
~4x faster | CPU (CTranslate2) | pip install -e ".[faster]" |
mlx |
GPU-accelerated | Apple Silicon | pip install -e ".[mlx]" |
Meeting audio ──→ Record ──→ Transcribe (Whisper) ──→ Summarize (LLM) ──→ Markdown notes
│ │ │
▼ ▼ ▼
data/recordings/ data/transcripts/ data/notes/
*.wav *.txt *.md
All data is stored locally in the data/ directory. Nothing is sent to the cloud unless you choose a cloud LLM provider.
murmur/
├── murmur/
│ ├── cli.py # Click CLI commands
│ ├── tui.py # Textual TUI dashboard
│ ├── config.py # Settings (audio, model, paths)
│ ├── recorder.py # Audio recording via sounddevice
│ ├── transcriber.py # Speech-to-text orchestration
│ ├── summarizer.py # Meeting notes via LLM
│ ├── llm.py # Multi-provider LLM dispatch
│ ├── watcher.py # Auto-meeting detection (psutil)
│ ├── diarizer.py # Speaker diarization (pyannote)
│ ├── live_transcriber.py # Real-time transcription
│ └── backends/ # Pluggable transcription engines
│ ├── _whisper.py # OpenAI Whisper
│ ├── _faster_whisper.py # faster-whisper (CTranslate2)
│ └── _mlx_whisper.py # MLX Whisper (Apple Silicon)
├── tests/ # 87 tests
├── data/ # Local data (gitignored)
└── docs/
└── setup_audio.md # macOS audio setup guide
Murmur captures both your microphone and system audio (e.g., the other person on a Zoom call). On macOS, this requires BlackHole (free, open-source virtual audio driver).
brew install blackhole-2chSee docs/setup_audio.md for the full setup guide.
- Set System Settings > Sound > Output to Multi-Output Device
- Run
murmur notes(ormurmur watchfor auto-detection) - After the meeting, switch output back to normal speakers
pip install -e ".[clipboard]" # pyperclip — clipboard copy
pip install -e ".[export]" # pypandoc — PDF/DOCX export
pip install -e ".[faster]" # faster-whisper — 4x faster CPU transcription
pip install -e ".[mlx]" # mlx-whisper — Apple Silicon GPU transcription
pip install -e ".[watch]" # psutil — auto-meeting detection
pip install -e ".[diarize]" # pyannote.audio — speaker diarization
pip install -e ".[tui]" # textual — interactive TUI dashboard
pip install -e ".[all]" # everything (except mlx and diarize)MIT