Local meeting transcription & AI summarization for macOS
100% private — audio never leaves your device.
Features • How It Works • Installation • Configuration • Usage • Pro • Tech Stack • Contributing
Minuta captures audio directly from your microphone and system speakers during any meeting — Zoom, Teams, Google Meet, Slack, FaceTime — and transcribes it in real time using MLX Whisper running locally on Apple Silicon. No audio is ever sent to the cloud. No meeting bot joins your call.
After the meeting, Minuta generates a structured AI summary with key points, action items, and decisions using your choice of LLM provider (Azure OpenAI, Ollama, or Langdock).
Built for professionals who care about privacy.
- Local Transcription — MLX Whisper runs on your Mac's Neural Engine. Zero latency, zero cloud.
- Real-time Dashboard — Watch the transcript appear live in your browser as you speak.
- AI Summaries — Structured meeting summaries with key points, action items, and decisions.
- Speaker Separation — Distinguishes your voice (microphone) from other participants (system audio).
- Edit Everything — Edit meeting titles, summaries, key points, and action items before sharing.
- Meeting Archive — Browse and search all past meetings with full transcripts.
- Meta Fields — Tag meetings with company, project, and domain.
- Dark / Light Theme — Clean design system with theme toggle.
- No Account Required — No sign-up, no login, no telemetry. Just install and use.
- Webhook Integration — Send summaries to any automation workflow via HTTP webhook.
- Notion Export — Automatically create structured Notion pages from meetings.
- CSV / PDF Export — Export transcripts and summaries in multiple formats.
- Auto-Summary — Automatically summarize when recording stops.
1. Start Recording → Click "Start Recording" in the dashboard
2. Live Transcription → Audio captured locally, transcribed via MLX Whisper
3. AI Summary → GPT-4o / Ollama generates structured meeting notes
4. Export → Send via webhook to Notion, or download as Markdown (Pro)
- macOS 13+ (Ventura or later)
- Apple Silicon (M1, M2, M3, M4)
- Xcode Command Line Tools (
xcode-select --install) - ~5 GB disk space (for the Whisper model)
# Clone the repository
git clone https://github.com/robertoslater/minuta.git
cd minuta
# Run the installer
./install.sh
# Start the backend (Terminal 1)
make dev-backend
# Start the frontend (Terminal 2)
make dev-frontend
# Open the dashboard
open http://localhost:3100On first run, macOS will ask for permissions:
- Microphone — System Settings > Privacy & Security > Microphone > Enable Minuta.app
- Screen Recording (for system audio) — System Settings > Privacy & Security > Screen Recording > Enable Terminal.app
If Minuta.app doesn't appear in the Microphone list, run it once manually:
open -a Minuta.app --args --no-system --socket /dev/null
Configuration file: ~/.minuta/config.toml
[general]
language = "de"
[audio]
system_audio = true # Capture system/speaker audio
microphone = true # Capture microphone
[transcription]
model = "mlx-community/whisper-large-v3-mlx"
language = "de" # Transcription language
[summarization]
default_provider = "azure" # azure | ollama | langdock
[summarization.azure]
endpoint = "https://your-resource.openai.azure.com"
api_key = "your-api-key"
deployment = "gpt-4o"
[summarization.ollama]
base_url = "http://localhost:11434"
model = "llama3.2:8b"
[webhook]
enabled = true # Pro feature
url = "https://your-webhook-endpoint.com/..."
basic_auth_user = "user"
basic_auth_password = "pass"
[speaker]
user_name = "Me" # Label for your voice
participant_name = "Participant"Open http://localhost:3100 in your browser.
| Page | Description |
|---|---|
| Dashboard | Overview with stats and recent meetings |
| Recording | Start/stop recording with live transcript |
| Meetings | Browse all past meetings |
| Meeting Detail | View transcript, edit summary, trigger webhook |
| Settings | LLM providers, license management, config |
minuta start # Start the backend server
minuta status # Check if Minuta is running
minuta dashboard # Open dashboard in browser
minuta config # Edit config in $EDITOR| Method | Endpoint | Description |
|---|---|---|
GET |
/api/health |
Health check |
GET |
/api/meetings |
List all meetings |
POST |
/api/meetings |
Start recording |
POST |
/api/meetings/{id}/stop |
Stop recording |
POST |
/api/meetings/{id}/summarize |
Generate AI summary |
PUT |
/api/meetings/{id}/summary |
Edit summary |
POST |
/api/meetings/{id}/webhook |
Send via webhook (Pro) |
WS |
/ws/transcript/{id} |
Live transcript stream |
Minuta is free and open source for local use. Minuta Pro unlocks integration features for professional workflows.
| Free | Pro | |
|---|---|---|
| Local transcription (MLX Whisper) | ✅ | ✅ |
| AI summary (own API key) | ✅ | ✅ |
| Live dashboard | ✅ | ✅ |
| Edit meetings & summaries | ✅ | ✅ |
| Webhook integration | — | ✅ |
| Notion export | — | ✅ |
| CSV / PDF export | — | ✅ |
| Auto-summary | — | ✅ |
| Plan | Price |
|---|---|
| Monthly | CHF 9 / month |
| Yearly | CHF 99 / year |
| Lifetime | CHF 199 (one-time) |
| Early Bird Lifetime | CHF 149 (first 100 purchases) |
| Component | Technology |
|---|---|
| Audio Capture | Swift (ScreenCaptureKit + AVAudioEngine) |
| IPC | Unix Domain Socket (POSIX) |
| Backend | Python 3.11, FastAPI, aiosqlite |
| Transcription | MLX Whisper (Apple Neural Engine) |
| Voice Detection | RMS-based energy detection |
| LLM Summary | Azure OpenAI / Ollama / Langdock |
| Frontend | Next.js 16, Tailwind CSS v4, shadcn/ui |
| Database | SQLite (WAL mode) |
| License | LemonSqueezy |
Minuta is designed with privacy as the top priority:
- Audio never leaves your device. Transcription runs 100% locally via MLX Whisper.
- No telemetry. No analytics, no tracking, no phone-home.
- No account required. No sign-up, no login.
- No meeting bot. Audio is captured directly from your device — participants never know.
- Summary LLM is configurable. Use a local model (Ollama) for fully offline operation, or Azure OpenAI for higher quality.
- GDPR / nDSG compliant by design.
Contributions are welcome! Please open an issue first to discuss what you'd like to change.
# Development setup
git clone https://github.com/robertoslater/minuta.git
cd minuta
make install
make dev-backend # Terminal 1
make dev-frontend # Terminal 2minuta/
├── audiocap/ # Swift CLI for audio capture
├── backend/ # Python FastAPI backend
├── frontend/ # Next.js dashboard
├── landing/ # Landing page (static HTML)
├── Minuta.app/ # macOS app bundle (for permissions)
├── Makefile # Dev commands
└── install.sh # Setup script
MIT — see LICENSE for details.
Pro features are available via Minuta Pro.
