Skip to main content

Offline meeting transcription for macOS — auto-detects meetings, transcribes locally, saves to Claude Desktop via MCP

Project description

trnscrb

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.


Install

brew tap ajayrmk/tap
brew install trnscrb
trnscrb install

Or with pip / uv:

pip install trnscrb && trnscrb install
uv tool install trnscrb && trnscrb install

trnscrb install is a guided setup that handles:

  • BlackHole 2ch audio driver (captures system audio alongside mic)
  • HuggingFace token for speaker diarization (pyannote)
  • Whisper small model download (~500 MB, one-time)
  • Claude Desktop MCP config
  • Launch-at-login agent

Quick start

trnscrb start       # launch the menu bar app

With 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.


How it works

Step What happens
Meeting detected Mic active for 5 s + meeting app found
Recording Audio captured via mic or BlackHole (system + mic)
Transcription Whisper small model, runs locally on Apple Silicon
Diarization Speaker labels via pyannote (needs HuggingFace token)
Saved Plain .txt in ~/meeting-notes/

Claude Desktop integration

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

CLI

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 bar

System audio with BlackHole

To capture both your mic and the other participants' audio:

  1. Install BlackHole via trnscrb install (or brew install blackhole-2ch)
  2. Open Audio MIDI Setup+Create Multi-Output Device
  3. Check BlackHole 2ch and MacBook Pro Speakers
  4. System Settings → Sound → Output → select the Multi-Output Device

trnscrb auto-detects BlackHole and uses it when available. Without it, only your mic is recorded.


Transcript format

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.


Requirements

  • macOS 13 or later
  • Python 3.11+
  • Apple Silicon (M1/M2/M3/M4) recommended — Whisper runs on Metal

Privacy

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.


License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

trnscrb-0.1.2.tar.gz (25.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

trnscrb-0.1.2-py3-none-any.whl (28.7 kB view details)

Uploaded Python 3

File details

Details for the file trnscrb-0.1.2.tar.gz.

File metadata

  • Download URL: trnscrb-0.1.2.tar.gz
  • Upload date:
  • Size: 25.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for trnscrb-0.1.2.tar.gz
Algorithm Hash digest
SHA256 8ec52014ede1a6f1aecabacd33adbc350b6fc07a30359fc30c2b3dc587e90ac2
MD5 f91ecc4e2585d8720960021b0ed8887c
BLAKE2b-256 d548640f8f63286cd80ac9b453ee491f134e984c54e4d52a7f1406861b4364fa

See more details on using hashes here.

File details

Details for the file trnscrb-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: trnscrb-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 28.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for trnscrb-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e51bb246933bc69c72a1b8125f0653c422049e0d47d83047684e9de1ced78f07
MD5 65effc91a7a46afdd23fa273459675d8
BLAKE2b-256 c39731350dc1a00511965b4a8a541dd4abd23921f27fa2e3c635ddbfaa75cc29

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page