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

pip install trnscrb
trnscrb install

Or with uv:

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.1.tar.gz (25.6 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.1-py3-none-any.whl (28.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: trnscrb-0.1.1.tar.gz
  • Upload date:
  • Size: 25.6 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.1.tar.gz
Algorithm Hash digest
SHA256 59267355b6031204217c4efe86e1679d4ddf9eb359d0f806e1331783450c5a16
MD5 9669391f7cb72c25799e14574857d5f5
BLAKE2b-256 97b93cbb7fbe780c9e27adbf7e0500dbce178b717ad7f7a79a22a59a47be6dc8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: trnscrb-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 28.6 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 46e679e19629ebeab6797dc5f254616119b059dc09939ac69fc10fa991fa3f48
MD5 6abe4e17fe2f8d06e41a213979461ee0
BLAKE2b-256 ea8093eaa625765be6952d02007bc09f41282c64df56c82f1e03c5ba46d4ade0

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