Offline meeting transcription for macOS — no cloud, no subscription.
trnscrb lives in your menu bar, listens for meetings, transcribes them locally with Whisper, and makes every transcript searchable from Claude Desktop via MCP.
brew tap ajayrmk/tap
brew install trnscrb
trnscrb installOr with pip / uv:
pip install trnscrb && trnscrb install
uv tool install trnscrb && trnscrb installtrnscrb install is a guided setup that handles:
- Xcode Command Line Tools (needed to build the audio capture helper)
- ScreenCaptureKit audio helper (captures meeting app audio — no virtual driver needed)
- HuggingFace token for speaker diarization (pyannote)
- Whisper
smallmodel download (~500 MB, one-time) - Claude Desktop MCP config
- macOS permissions (Microphone, Calendar, Screen Recording)
- Launch-at-login agent
trnscrb start # launch the menu bar appWith Auto-transcribe on (the default), trnscrb detects when a meeting starts — Google Meet, Zoom, Slack Huddle, Teams, FaceTime — and begins recording automatically. When the meeting ends, it stops, transcribes, and saves.
You can also trigger manually from the menu bar: Start Transcribing / Stop Transcribing.
| Step | What happens |
|---|---|
| Meeting detected | Mic active for 5 s + meeting app found |
| Recording | Audio captured via ScreenCaptureKit (meeting app) + mic |
| Transcription | Whisper small model, runs locally on Apple Silicon |
| Diarization | Speaker labels via pyannote (needs HuggingFace token) |
| Saved | Plain .txt in ~/meeting-notes/ |
After trnscrb install, Claude Desktop has these tools available:
| Tool | Description |
|---|---|
start_recording |
Start capturing audio |
stop_recording |
Stop and transcribe in the background |
recording_status |
Check if recording or transcribing |
get_last_transcript |
Fetch the most recent transcript |
list_transcripts |
List all saved meetings |
get_transcript |
Read a specific transcript |
get_calendar_context |
Current or upcoming calendar event |
enrich_transcript |
Add summary + action items via Claude API |
trnscrb start # launch menu bar app
trnscrb install # guided setup / re-check dependencies
trnscrb list # list saved transcripts
trnscrb show <id> # print a transcript
trnscrb enrich <id> # summarise + action items (needs ANTHROPIC_API_KEY)
trnscrb mic-status # live mic activity monitor — useful for debugging
trnscrb devices # list audio input devices
trnscrb watch # headless auto-transcribe, no menu barThe enrich command and MCP enrich_transcript tool require an Anthropic API key. Add it to your shell profile:
# ~/.zshrc
export ANTHROPIC_API_KEY="sk-ant-..."Then restart your terminal or run source ~/.zshrc. If trnscrb is already running, restart it with ./restart.sh.
After code changes or environment variable updates (e.g. adding ANTHROPIC_API_KEY to .zshrc), restart trnscrb:
./restart.shOr manually:
pkill -f "trnscrb"
source ~/.zshrc
trnscrb starttrnscrb uses ScreenCaptureKit to capture meeting app audio directly — no virtual audio driver needed. When a meeting is detected, it captures two streams:
- ScreenCaptureKit — the meeting app's audio (remote participants), device-independent
- Microphone — your voice via the default input device
Both streams are mixed into a single recording. This works seamlessly with Bluetooth earbuds, AirPods, or any audio device — you can connect or disconnect devices mid-meeting without interrupting the recording.
Requirements:
- macOS 14 (Sonoma) or later
- Screen Recording permission (granted during
trnscrb install) - Xcode Command Line Tools (to build the audio capture helper on first install)
Meeting: Weekly Standup
Date: 2025-02-18 10:00
Duration:23:14
============================================================
[SPEAKER_00]
00:12 Good morning, let's get started.
[SPEAKER_01]
00:18 Morning! I finished the auth PR yesterday.
Running trnscrb enrich <id> replaces SPEAKER_00 / SPEAKER_01 with inferred names and appends a summary and action items block.
- macOS 14 (Sonoma) or later
- Python 3.11+
- Apple Silicon (M1/M2/M3/M4) recommended — Whisper runs on Metal
- Xcode Command Line Tools (
xcode-select --install)
Everything runs on your machine. No audio or transcripts leave your device unless you explicitly run enrich, which sends the transcript text to the Claude API.
MIT